【问题标题】:Paypal ssl handshake faliurePaypal ssl 握手失败
【发布时间】:2016-04-29 04:41:14
【问题描述】:

您好,我正在使用 Paypal PHP SDK 与 Paypal Api 进行通信。

在一切正常前 2 天。但是现在我的开发服务器上出现了这个错误。

错误:14094410:SSL 例程:SSL3_READ_BYTES:sslv3 警报握手失败

我在请求时使用以下 CURL 选项:

public static $DEFAULT_CURL_OPTS = array(
    CURLOPT_SSLVERSION => 1,
    CURLOPT_CONNECTTIMEOUT => 10,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_TIMEOUT        => 60,   // maximum number of seconds to allow cURL functions to execute
    CURLOPT_USERAGENT      => 'PayPal-PHP-SDK',
    CURLOPT_HTTPHEADER     => array(),
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_SSL_VERIFYPEER => 1,
    CURLOPT_SSL_CIPHER_LIST => 'TLSv1',
);

这个问题只有在实时模式下使用沙盒模式才会出现,一切正常。

有人知道为什么会这样吗?

谢谢

【问题讨论】:

标签: paypal paypal-ipn paypal-sandbox


【解决方案1】:

我遇到了同样的错误。这是由于 PayPal 最近所做的更新:https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ1766

您可以通过将其添加到 CURL 选项来修复它:

curl_setopt($ch, CURLOPT_SSLVERSION , 1);

CURLOPT_SSL_SSLVERSION => 1

编辑:完成工作设置

curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
curl_setopt($ch, CURLOPT_SSLVERSION , 1);

【讨论】:

  • 您好,谢谢您的回复,但我已经尝试过了。我认为根据您提供的链接,我必须更新我的服务器。
  • 我不确定你,尝试删除这个:CURLOPT_SSL_CIPHER_LIST => 'TLSv1' 并添加 CURLOPT_SSL_SSLVERSION => 1
猜你喜欢
  • 2018-07-28
  • 2016-05-04
  • 2012-10-11
  • 2015-03-16
  • 2021-12-28
  • 2018-10-17
  • 2014-03-05
  • 1970-01-01
相关资源
最近更新 更多