我正在尝试使用PayPal & Braintree Official Module(v3.11.6)在Prestashop(v1.7.3)商店中添加PayPal付款,但直到现在还没有成功。
安装并配置模块没有任何问题,但每次我继续付款时,都会向用户显示此错误:
在沙箱和生产环境中测试模块,错误仍然存在。
可能是什么问题?
更新:经过一些调试后,我找到了问题的根源。问题是模块无法通过带有SSL / TLS的cURL连接到PayPal的API。 我在Windows Server中使用Prestashop和IIS,在此环境中,必须通知cURL证书颁发机构所在的位置以建立安全连接。 我从curl website下载了cacert.pem文件,将其存储在我的服务器中,然后在模块文件(PPHtmlConfig.php)中我手动在cURL选项设置中添加了CA位置:
CURLOPT_CAINFO => 'C:\\(...)\\cacert.pem',
现在我可以连接到PayPal的API并成功付款!
我已经联系过该模块的技术支持团队,他们正在分析这个问题。
答案 0 :(得分:0)
在与模块技术支持部门多次接触后,这是他们对该问题的最终回应:
我们不知道您服务器的特性。这不是经常性的 我们模块中的错误。如果CURL找不到CA,则会发生这种情况 证书。一般情况下,我们建议您要求您的服务器进行验证 CA证书已正确配置。否则就是 必须指定路由或curl来查找证书,for 例如,正如您在模块中所做的那样。
目前我们的模块中无法指定此内容 一般。因此,您应该等待Paypal模块的下一次更新。
因此,如果在使用Windows Server环境时遇到同样的问题,请在模块文件中指定完整的CA路径(如问题更新中所述):
我从curl网站下载了cacert.pem文件,将其存储在我的 服务器然后,在模块文件(PPHtmlConfig.php)中我添加了CA. 手动在cURL选项设置中的位置:
CURLOPT_CAINFO => 'C:\\(...)\\cacert.pem',