0

我正在使用 prestapaypalplugin 表单http://www.symfony-project.org/plugins/prestaPaypalPlugin。我已经准备好在 redme.txt 文件中给出的动作文件。但我收到此错误“curl_exec 错误 60 Peer 的证书颁发者无法识别”。直接付款和快速结帐两种方式。我尝试了网站支付,它工作正常。

谢谢。

4

2 回答 2

2

这似乎是一个 CA 证书问题。可能这篇文章对你有帮助:

HTTPS 和 SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA 正常

于 2013-05-09T10:30:05.113 回答
1
  1. 下载https://curl.haxx.se/ca/cacert.pem
  2. 将其重命名为 api_cert_chain.crt
  3. 复制到PROJECTDIR /plugins/prestaPaypalPlugin/sdk/lib/PayPal/cert/ (覆盖现有同名文件)

或者,您可以在代码中执行此操作。下载cacert.pem,直接在代码中设置路径即可。像这样的东西:

$caller =& PayPal::getCallerServices($profile);
$caller->setOpt('curl', CURLOPT_CAINFO, '/PATH/TO/cacert.pem');

请注意,您无法通过更新 php.ini 中的路径来修复,因为presta 在PROJECTDIR /plugins/prestaPaypalPlugin/sdk/lib/中使用PROJECTDIR /plugins/prestaPaypalPlugin/sdk/lib/PayPal/cert/api_cert_chain.crt覆盖了 php.ini 默认值贝宝/CallerServices.php:

function CallerServices($profile)
{
  ...
  $this->setOpt('curl', CURLOPT_CAINFO, dirname(__FILE__) . '/cert/api_cert_chain.crt');
于 2016-11-18T05:04:48.007 回答