【问题标题】:Curl error: SSL connect error卷曲错误:SSL 连接错误
【发布时间】:2016-06-30 22:41:10
【问题描述】:

当我尝试使用 Paypal api 付款时,它会生成此错误
'卷曲错误:SSL 连接错误'
- PHP 版本 5.4
但相同的代码在我的本地机器上工作,我在本地机器上有 PHP 5.6
- 这个或其他东西有版本问题吗?

  • 我的 curl 代码是
    
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_VERBOSE, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    curl_setopt($curl, CURLOPT_URL, $api_endpoint);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $nvp_string);
    $result = curl_exec($curl);
    if(curl_exec($curl) === false)
    {
       echo 'Curl error: ' . curl_error($curl);
    }
    else
    {
      echo 'Curl Execuation Success...';
       } 
    curl_close($curl);
    

【问题讨论】:

  • 产生错误的原因是什么? PayPal 还是 PHP 的 cURL 显示的错误?
  • @MonkeyZeus 我只是更新了我的代码......我不知道是什么导致了这个问题。这个相同的代码在我的本地机器上对我有用。
  • 尝试添加 curl_setopt($curl, CURLOPT_SSLVERSION , 3);
  • 我明白了,请看我的回答
  • This 可能是问题所在。

标签: php ssl curl paypal


【解决方案1】:

你应该得到实际的错误代码

echo curl_errno($curl); // It might display a '59'

https://curl.haxx.se/libcurl/c/libcurl-errors.html 找到“59”,即 CURLE_SSL_CIPHER (59),并阅读有关错误的信息,然后研究如何修复它。


可能的修复

基于https://stackoverflow.com/a/4073567,您应该尝试:

curl_setopt($curl, CURLOPT_SSLVERSION, 3);

但这有潜在的危险,因为它强制使用 SSL3。

【讨论】:

  • 我评论了相同的值,但它可能(应该?)是 6(CURL_SSLVERSION_TLSv1_2,这是 TLS v1.2
  • @Loenix 我想​​知道 OP 的 PHP/cURL/openSSL 版本是否不支持最新的协议。也许 PayPal 的 API 要求对于 PHP 5.4 来说太高了?
猜你喜欢
  • 1970-01-01
  • 2019-01-24
  • 2018-12-24
  • 2014-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 2012-11-18
相关资源
最近更新 更多