Paypal SSL 握手失败

7

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

两天前一切正常。但现在在我的开发服务器上出现了以下错误:

error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

在请求时,我使用以下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',
);

在实际模式下,一切正常,但在沙盒模式下才出现此问题。有谁知道为什么会发生这种情况吗?

谢谢!


也许这些链接可以帮到你:
  1. https://dev59.com/loTba4cB1Zd3GeqP4ExG
  2. https://dev59.com/AF8d5IYBdhLWcg3w1VI1
- Aamir Sarwar
1个回答

3
我遇到了同样的错误。这是由于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);

你好,谢谢您的回复,但我已经尝试过这个方法了。根据您提供的链接,我认为我需要更新我的服务器。 - Muhammad Umair
我不确定你是否尝试过,可以尝试去掉这个:CURLOPT_SSL_CIPHER_LIST => 'TLSv1',然后加上 CURLOPT_SSL_SSLVERSION => 1。 - Jaz Parkyn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接