代码点火器 CI 商家 SSL 证书验证失败



我在Codeigniter中使用CI商家库,下面是我在var_dump后收到的错误消息$response

protected '_status' => string 'failed' (length=6)
protected '_message' => string 'SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed' (length=146)

下面是我的代码

        $this->merchant->load('paypal_express');
        $settings = array(
            'username' => 'testaccount',
            'password' => 'accountpassword',
            'signature' => 'storename',
            'test_mode' => true
        );
        $this->merchant->initialize($settings);

        //redirect to success/failure of transaction
        $params = array(
            'amount' => $amount,
            'currency' => $currency,
            'return_url' => site_url('membership/complete/'.$memberid),
            'cancel_url' => site_url('membership/fail')
        ); /**/
        $response = $this->merchant->purchase_return($params);

可能出了什么问题?提前感谢您

我不推荐@stormdrain的解决方案,因为它会降低服务器的安全性。真正的问题是PHP无法在Web服务器上找到正确的根CA证书。通常,这是与您的网络主机交谈并让他们解决问题的情况。

或者,您可以升级到Omnipay,这是CI-Merchant的替代品,并且在内部使用与根CA证书捆绑在一起的Guzzle。因此,这个问题会消失。

可能出了什么问题?证书已过期。证书是自签名的。证书已被吊销。只能在不知道要连接到的 URL 的情况下猜测。

可能的解决方法是修改您正在使用的库以忽略该错误:

curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);

我想你已经解决了你的问题,但其他人可能遇到了同样的问题。

确保已将 ci-mercant 库附带的 cacert.pem 签名放入config/目录中。目前在 github 上位于这里

具有相同的响应和完全相同的代码片段。这解决了我的问题。

相关内容

  • 没有找到相关文章

最新更新