我已经在网站上工作了很长一段时间,这个网站很大程度上依赖于Paypal正常工作。没有它,它真的没用。
早上大约凌晨1点(我在CET时区),一切都运转良好,我打磨了代码,功能,它正在按原样运作。我睡觉前做了三次检查,一切正常。
我早上醒来,没有任何与Paypal有关的事实。在向您展示实际代码和错误之前,先对我使用的内容进行一些解释。我正在使用Express Checkout和Paypal Adaptive Payments SDK。
我在developer.paypal.com上创建了一些“虚拟”帐户,以模拟协调人(所有者)和买家互动,因为我有业主向用户提供资金的情况,反之亦然。无论如何,他们都工作得很好,现在他们都抛出了这个错误(在自适应支付SDK中,它告诉我哪一行代码是错误的,在Express Checkout中,因为那是通过文档完成的代码,它不显示在哪个文件中错误但是它是相同的错误):
'错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3 alert 握手失败'
现在看到这篇文章https://devblog.paypal.com/poodle-ssl-3-0-vulnerability/后你刚刚完全禁用了SSL,我意识到问题实际上就是这个问题。您希望您的用户现在使用TLS,这完全没问题。我三重检查我的服务器启用了TLS,它确实改变了(已经超过一百万次)我的配置设置使用cURL中的TLS(因为我使用的是PHP),做了类似的事情:
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
(这就是Express Checkout和自适应支付中的样子,它只是一个关联数组,但两者都是一样的)
我还在某处和您的建议中找到了实际更新我的api凭据。我做到了我去了paypal.com - > API,然后点击更新工作,但后来我注意到在我的developer.paypal.com帐户,我有一些虚拟帐户没有任何改变。我应该手动更新这些还是什么?
编辑:
这是发送给Paypal的支持,我真的很匆忙,不能再写完整个东西了,很抱歉!问题是修复,感谢任何真正花时间阅读它的人。
通过向我的PPHttpConfig.php文件添加CURLOPT_SSL_CIPHER_LIST => 'TLSv1'
修复了该问题! :)
答案 0 :(得分:18)
尝试添加
CURLOPT_SSL_CIPHER_LIST => 'TLSv1'
到您的PPHttpConfig.php
文件。我和你有同样的问题,花了好几个小时才找到解决方案。这对我有用。
答案 1 :(得分:2)
此错误的原因之一是旧版本的PHP和OPENSSL,例如: PHP 5.3.5将导致此错误。
解决方案,更新PHP(推荐> = 7)。
答案 2 :(得分:0)
在搜索Magento错误时出现:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败!如果你想解决这个问题,可以点击最初解决问题的人的链接以及可下载的补丁:https://www.dwdonline.com/blog/fix-magento-error14077410ssl-routinesssl23_get_server_hellosslv3-alert-handshake-failure.html这是同样的错误 - 只是在另一个软件包中。
答案 3 :(得分:0)
我遇到了同样的问题。
我的服务器是Ubuntu 12.04的旧版本
检查证书
echo "All certificates in ca-certificates.crt, listed by subject, check for presence of VeriSign's 'Class 3 Public Primary - G5':"
awk -v cmd='openssl x509 -noout -subject' '/BEGIN/{close(cmd)};{print | cmd}' < /etc/ssl/certs/ca-certificates.crt | grep "G5"
我更新了openssl。
sudo apt-get install openssl
我只能通过这条指令更新curl。 http://pavelpolyakov.com/2014/11/17/updating-php-curl-on-ubuntu/ 卷曲7.47.1版本
我更新了libcurl。 http://juniway.blogspot.com/2015/12/curl-48-unknown-option-was-passed-in-to.html