Paypal ssl 握手失败
Posted
技术标签:
【中文标题】Paypal ssl 握手失败【英文标题】:Paypal ssl handshake faliure 【发布时间】: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',
);
这个问题只有在实时模式下使用沙盒模式才会出现,一切正常。
有人知道为什么会这样吗?
谢谢
【问题讨论】:
也许这些链接可以帮助你....***.com/questions/26385603/… 2..***.com/questions/26379773/… 【参考方案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以上是关于Paypal ssl 握手失败的主要内容,如果未能解决你的问题,请参考以下文章
Perl PayPal IPN 侦听器返回“500 SSL 握手失败”消息
另一个 Paypal Curl / SSL v3 握手错误 - SSL23_GET_SERVER_HELLO:sslv3 警报握手失败
使用 fsockopen 的警报握手失败 paypal IPN 集成
SSL23_GET_SERVER_HELLO:sslv3 alert 握手失败 Paypal 自适应支付
Paypal Sandbox IPN: 14077410:sslroutines:ssl23_get_server_hello:sslv3 警报握手失败
PayPal IPN OPENSSL 错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败