如何通过OmniPay将curl选项传递给Guzzle?

时间:2016-02-15 17:17:47

标签: php curl paypal guzzle omnipay

目前正在整合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,然后再卷曲。谁知道我怎么能做到这一点?

1 个答案:

答案 0 :(得分:2)

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