如何将卷发选项通过 OmniPay 传递给 Guzzle



目前正在整合OmniPay。似乎一切都很好,但是当我使用PayPalExpress网关时,它给了我以下错误:

[curl] 35: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure [url] https://api-3t.sandbox.paypal.com/nvp?VERSION=119.0&USER=...

跟踪事情似乎是PayPal的SSL更新的问题,我需要告诉它使用SSL3和更新的密码列表:

curl_setopt($ch, CURLOPT_SSLVERSION, 3);
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'SSLv3');

但是,我一直无法找到一种方法将这些选项传递给 Guzzle,然后传递给 curl。有人知道我该如何做到这一点吗?

  1. 要传递卷曲或吞咽的选项,您需要在 sendData 函数中执行以下操作:https://github.com/cherrytech/omnipay-paypal/commit/f520a015a91eb1bf2666892d3ef362607a74396f
  2. 您的建议,即将密码列表显式设置为 SSLv3,将不起作用。PayPal已将其服务器更改为需要TLS 1.2,并且任何SSLv3连接都将被拒绝。正确的做法是将系统上的libcurl版本更新到> 7.40,这将自动协商正确的TLS 1.2版本。

最新更新