Opencart 2.0安装Paypal Express时出现error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version错误的解决方案

问题描述

在下的跨境电商网站接到Paypal通知说“Paypal Standard”支付方式即将停止官方维护,建议尽快安装“Paypal Express”。

我的网站使用的Opencart 2.0搭建,按照官方给出文档在后台进行了插件安装,然而安装后Paypal Express使用并不正常,具体表现为,再结算页面最后一步点击付款按钮时,直接跳转到第一步。

一个值得注意的地方是,线上网站会出现上述问题,而我本地的副本安装后则可以正常使用Paypal Express。

排查过程

  1. 通过分析代码,发现Opencart的Paypal Express插件php文件中有以下代码
    file
  2. 进一步跟踪,发现具体的报错内容为:
    error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

    明显说的是和SSL有关的错误。

  3. 由于线上网站会出现上述问题,而我本地的副本安装后则可以正常使用。加之线上网站有SSL证书,本地的是普通http,所以我一开始误以为是https导致的某种错误。经过一系列的网上查询,发现应该不是SSL证书的问题。
  4. 于是进一步再各搜索引擎搜索以下错误代码:
    error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
  5. 通过某篇机器翻译的文章,大概了解到有可能是使用的CURL函数的问题。
  6. 于是查了下服务器PHP环境,发现已经安装了CURL,本地副本也安装了CURL,唯一的区别是两个CURL的版本不同(服务器是php5.3,本地是php5.6,所以自带的CURL版本也不一样)。
  7. 抱着试试看的心态,我把服务器上的php升级为了php5.6,重启后发现问题解决。

解决方案及结论

CURL用于访问某个远程地址,当访问的地址是https地址的时候,低版本的CURL会出问题。
所以解决方案很简单,就是把php升级到5.6版本即可。

P.S.

如果想要修改Paypal Express的图标,请在Opencart语言包中修改。

After Effect中多层视频如何依次按时间轴对齐

问题由来

最经典的需求就是有多个视频,然后希望按一定顺序将这些视频通过AE进行前后拼接,如果把每个视频拖入时间轴后通过手动对齐,那无疑是噩梦般的工作,一是视频多了工作量巨大,二是手工对齐很有可能有瑕疵。
file

解决方案

先依次选择要排序对齐的图层,然后点击右键【关键帧辅助】-【序列图层】
file

在Apache目录浏览时显示出完整的文件名

在httpd.conf和httpd-vhosts.conf中的<Directory>标签中增加,IndexOptions NameWidth=*

然后重启apache即可。

示例如下:

<Directory  "设置你的路径">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    #Require local
    IndexOptions Charset=UTF-8  #编码格式,防止中文乱码
    IndexOptions NameWidth=*    #根据文件名自动调整列宽
    Allow from all
</Directory>

Maven安装方法

1. 前提

Maven基于Java运行,使用Maven前确保系统中已经安装了Java环境。

2. 下载Maven

可以前往Maven官网下载,地址如下:
https://maven.apache.org/

3. 安装Maven

3.1 解压

解压到本地不带空格及中文字符的目录下。这里我以以下地址为例:
F:\apache-maven-3.8.4

3.2 配置环境变量

打开:我的电脑-属性-高级系统设置-环境变量

A. 在【系统变量】中,新增MAVEN_HOME变量,如下:

file

B. 在【系统变量】中,找到path变量,追加如下内容:

F:\apache-maven-3.8.4\bin

3.3 测试安装结果

以上工作完成后,在cmd中输入
mvn -v
如能显示如下内容,证明Maven安装成功!
file

4. 配置本地仓库

我以以下地址为例:F:\MAVEN_Repository
打开F:\apache-maven-3.8.4\conf\setting.xml文件。
<settings>标签里面增加以下内容:
<localRepository>F:\MAVEN_Repository</localRepository>
这样就成功指定了Maven的本地仓库地址,这步还是比较重要的,否则Maven默认会将所有库保存在C盘。

5. 配置阿里云镜像

同样是打开F:\apache-maven-3.8.4\conf\setting.xml文件。
<mirrors>标签里面增加以下内容:

    <mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>Nexus Aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

这一步也很关键,这样配置后,Maven再从云端拉取库的时候,就直接从阿里云拉取了,否则Maven会慢的很。

6. 在Eclipse里面集成刚刚安装的Maven

Eclipse里面本身是有Maven的,但是默认的Maven没法进行定制,所以需要手工绑定自己安装的Maven。

6.1 安装

A. 打开Eclipse后,在Window-Preferences-Maven-Installation中点击【Add】,如下:

file

B. 点击【Directory】后选择Maven的根目录,如下:

file

C. 勾选刚刚添加的Maven。

file

6.2 选择配置文件

Window-Preferences-Maven-User Settings中点击【Browse】,选择setting.xml的所在位置。
file

6.3 保存配置

最后别忘了点击【Apply and Close】按钮保存。

7. 视频教程

内容基于以下教程:
https://www.bilibili.com/video/BV1Te411W7N6

Windows Server2012服务器上配置PHP调用PowerPoint COM组件方法

弄这做啥?

  1. 实际的需求是:要通过PHP程序将PPT文件(.ppt,.pptx)按页转为.jpg图片的功能。
  2. 代码不难写,网上有很多。本地测试也容易,很快就搞定,但是到了服务器上,配置了很久。
  3. 每个人的服务器环境不同,我写的方法不一定适应你的情况,但是大同小异,多试试应该就OK。

配置步骤

1. Windows服务器。

我的服务器是安装的Windows Server 2012版本。

2. 安装Office。

想要调用PowerPoint的com组件,必须要在服务器上安装office,我选择的是安装office 2013 64位版本。
安装过程中,报了数次错误,我大概看了下,都是和日志写入什么的相关的,应该不会影响com组件,所以遇到错误我也一概忽略了。

3. php.ini配置。

我的php用的是7.2版本。
在php.ini文件中:
A. 将com.allow_dcom = true前面的#去掉。
B. 增加一行:extension=php_com_dotnet.dll
注意:老版本php中,extension=php_com_dotnet.dll是默认加#写在php.ini文件中的,7.2版本中没有写,但是我去php的ext文文件夹中看了一眼,是有php_com_dotnet.dll这个文件的,所以就放心的把extension=php_com_dotnet.dll加上了。

4.DCOM配置

在DCOM配置的问题上,网上有两个版本,我都列出来。
两个版本都需要先在cmd中输入dcomcnfg,然后会打开【组件服务】的窗口。
点击左侧树形目录中的【DCOM】后,再右侧找到Microsoft PowerPoint幻灯片后,在上面点击右键选择【属性】,会弹出属性窗口,切换到最右侧的【标识】标签,如下图所示:
file
要注意的是,如果你的服务器上没有安装Office PowerPoint,这个服务是找不到的。

版本1:【交互式用户】版本(有瑕疵)。

  1. 在【标识】标签里面选择【交互式用户】。
  2. 这时测试一下,会出现 ERR: Failed to create COM object powerpoint.application': 拒绝访问。的错误。
  3. 这时就需要进行下面的配置:
    切换到【安全】标签下。
    我的做法是在三个权限配置的地方都选择自定义:
    file
    然后,将以下几个用户都添加进去,并赋予全部权限:
    Everyone、NETWORK、SERVICE、Internet来宾用户(IUSER)、IIS、站点用户。

    问题:这样配置后的问题是,在远程桌面连接的情况下,程序运转是正常的,但是如果关闭远程桌面,则会报“因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码”的错误。所以这个版本的解决方案并不完美。

版本2:【下列用户】版本。

  1. 在【标识】标签里面选择【下列用户】。
  2. 然后通过【浏览】的方式选择Administrator用户,并输入密码。
    file
  3. 在版本1的基础上,再增加Administrator用户和Administrators用户组。

    其中的一个插曲是,当我选择了一个用户并输入密码想要保存的时候,报“8000401a”错误,网上查了下,需要在services.msc中开启server服务才可以。

6. 重启IIS,关掉安全狗。

以上配置完成后,重启IIS还是不能正常使用。我怀疑是服务器安全狗进行了限制,于是关掉了安全狗服务,但还是不行。

7. 重启服务器。

最后想到了重启大法,重启后,程序可以正常运转了。

总结

  1. 安全狗似乎不会对服务器调用DCOM组件做限制,至少我没有遇到。
  2. 重启后才生效的问题。有可能是因为安装了office后需要重启,也有可能是因为做完权限配置后需要重启。
  3. 除了上面提到的用户外,由于我的网站是通过nginx配置的SSL,所以我还加了很多用户,不知道是否有用,都列出来备查吧。
    file
  4. 还有就是在方案2中,添加Administrator账户时,似乎必须通过【浏览】按钮添加,如果直接写Administrator似乎会有问题。
  5. 网上还有说要在web.config中添加<system.web><identity impersonate="true" userName="用户名" password="密码" /></system.web>的,至少在我的服务器环境下这个方案没用。

参考过的文章:
https://blog.csdn.net/weixin_30520015/article/details/99214214
https://blog.csdn.net/taoyuanjsj/article/details/5319582
http://www.wangyang.me/2018/study_01/70.shtml
https://blog.csdn.net/luochuan/article/details/8806705
https://www.heiyu100.cn/news114.html

WAMP3.2.3通过cer证书安装SSL实现https方法

写在前面

SSL的证书有cer,crt,key,pem等多种格式,别问这些格式的证书有什么区别,我也不知道,也没兴趣去研究。
我的情况是,甲方给了个cer证书,要通过这个cer证书实现wamp上SSL功能。具体做法如下。

操作环境

WAMP版本:3.2.3 64位
证书格式:cer

操作步骤

  1. 编辑httpd.conf文件。
    文件位置:
    E:\wamp64\bin\apache\apache2.4.46\conf\httpd.conf
    将文件中这一行:
    LoadModule ssl_module modules/mod_ssl.so
    前面的#去掉。

  2. httpd.conf文件末尾添加下面这行内容:
    Include conf/ssl.conf

  3. E:\wamp64\bin\apache\apache2.4.46\conf目录下新建一个ssl.conf文件,并将如下内容粘贴进去。

    Listen 443
    SSLStrictSNIVHostCheck off
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLProtocol all -SSLv2 -SSLv3
    <VirtualHost *:443>
    DocumentRoot "E:/wamp64/www/"
    ServerName class.blcu.edu.cn
    ServerAlias class.blcu.edu.cn
    SSLEngine on
    SSLCertificateFile "E:/wamp64/bin/apache/apache2.4.46/conf/ssl/star.cer"
    </VirtualHost>
  4. 将cer证书文件复制到如下路径。
    E:/wamp64/bin/apache/apache2.4.46/conf/ssl

  5. 打开php openssl 扩展,在php.ini文件中。
    去掉;extension=php_openssl.dll前面的;

特别注意

重要的事情说三遍!!!
编辑E:\wamp64\bin\apache\apache2.4.46\conf内容时,行首不能有空格或者tab。
编辑E:\wamp64\bin\apache\apache2.4.46\conf内容时,行首不能有空格或者tab。
编辑E:\wamp64\bin\apache\apache2.4.46\conf内容时,行首不能有空格或者tab。

在中国商标网注册新账户时出现“未安装控件”该怎么办?

1. 中国商标网网址

最新的中国商标网网址是:http://sbj.cnipa.gov.cn/

2. 无需通过中介,自己也可以申请商标

网上随便找家商标申请代理公司,一个商标没1000元是别想注册下来的。
其实,国家知识产权商标局早已经开放了企业自己申请商标的入口。只需注册账户,便可以实现网上申请、网上缴费一条龙服务。
然而,很多人至今未能享受到这个便利,主要原因是想在中国商标网注册个新用户,确实有点难。

3. 申请注意事项

3.1 一台电脑只能申请和使用一个软证书。

也就是说,如果你有两家公司,两家公司都想在中国商标网注册用户申请商标,那么你必须有两台电脑才可以。这是官方给出的提示:

3.2 安装软证书需要重启电脑。

在填写申请信息前,确保已经安装了软证书。软证书的安装包可以在这里下载:

安装完成后需要重新启动电脑后才能生效。

3.3 主体资格证明文件扫描件问题。

再填写注册信息的时候,最后一项提交的内容是“上传主体资格证明文件”。官方对这项资料的说明是这样的:
“请上传主体资格证明文件(中文)彩色扫描件,格式为PDF,大小不超过2M。自然人申请的需申请人签名,法人或其它组织申请的需加盖公章”。

这句话其实表达的及其不好,证明文件的彩色扫描件很容易被认为是营业执照的彩色扫描件,而后面还说了一句要加盖公章。难倒要在营业执照上加盖公章后再扫描吗?
其实处理方式很简单:营业执照复印件上加盖公章然后彩色扫描就可以了。
唉~把话说清楚有这么难吗?

3.4. 注册用户时出现“未安装控件”

下面是重点了,安装了软证书后,你在网页里面里面填写完了所有的信息点击提交的时候,竟然又弹出来了“未安装控件”的提示框。这时有两种可能。

3.4.1 情况一:浏览器配置问题

安装完控件后,需要根据商标局官网的提示进行浏览器的配置,简单来说就是三点:
A. 将商标局官网加入安全名单。
B. 将浏览器ActiveX运行安全性完全放开。
C. 如果浏览器提示要运行ActiveX插件,放行。

具体做法可以参考以下页面方法:
先点击飘窗【重要提示】

然后点击【问题二】

3.4.2 情况二:浏览器选择问题

商标局网站已经明确说明了,火狐、谷歌浏览器无法正常使用商标局网站。
360和IE8以上浏览器可以使用。
然而,必须要注意的是,如果使用的IE浏览器,则必须是32位的IE浏览器,64位的不可以。

如果你选择64位的IE浏览器,你把电脑拆了也别想注册成功!

4. 总结

在线申请商标本是便民之举,却搞得如此复杂晦涩。
也许有人会说这样搞是为了提高安全性,但是我想问一句,难倒支付宝安全性比商标局网站差吗?肯定不会,但也没见支付宝网站有这么难搞。
是没能力搞好吗?我想不是,究其原因大家自己去体会吧!

超简单方法将webp转jpg图片

1. 关于webp文件

能看到这篇文章的人都是已经下载了webp文件却发现无法使用或者通过Photoshop编辑的人,所以纠结webp文件是什么的朋友请自行百度吧。
简单来说,webp就是Google搞的,在网页中替代jpg图片的一种东西。
然而,webp文件无法直接在Photoshop中编辑,也无法在Word文档一类的软件中使用。所以将webp转为jpg图片就成为了一种普遍需求。

2. 解决方案

网上有很多在线将webp转jpg的网站。这里介绍一种更简单的方法。
打开Windows自带的【画图】工具,将webp拖入画图工具,然后直接另存为jpg图片就OK了。
如下图所示:
file
以上方法在Windows10中的画图工具中亲测有效,Window7没有试过,大家可以自行尝试!