代码之家  ›  专栏  ›  技术社区  ›  Lonnie

如何通过OmniPay向Guzzle传递卷曲选项?

  •  1
  • Lonnie  · 技术社区  · 9 年前

    目前正在整合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 回复  |  直到 9 年前
        1
  •  2
  •   delatbabel    9 年前
    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版本。