GoDaddy PayPal API 警报握手失败
Posted
技术标签:
【中文标题】GoDaddy PayPal API 警报握手失败【英文标题】:GoDaddy PayPal API alert handshake failure 【发布时间】:2016-07-01 11:04:19 【问题描述】:最近,我在 GoDaddy(经济 Windows 托管)上托管的一项服务开始被拒绝与 PayPal API 端点的 cURL 连接:https://api.sandbox.paypal.com/v1/oauth2/token
有错误:
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
阅读:Paypal can not connect to Sandbox server. Return error 14077410 (sslv3 alert handshake failure)
我了解这与需要 TLS1.2 有关。这包含在 OpenSSL 1.01 中,但我的服务器当前运行的是 0.9.8y,并且由于它是共享主机,我无法控制它。
那么 - 有人知道解决这个问题的方法吗?
我的代码:
url_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $clientId . ":" . $secret);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");
curl_setopt($ch, CURLOPT_SSLVERSION,6);
$result = curl_exec($ch);
if (empty($result)) die("Error: No response.<br /> <b>Err:</b> " . curl_error($ch).' <b><br />ErrNo:</b> '.curl_errno($ch)."<br/>".phpinfo());
else
$json = json_decode($result);
//print_r($json->access_token);
【问题讨论】:
解决此问题的唯一方法是更新您的服务器软件堆栈。如果 GoDaddy 不会在您现有的服务器上为您执行此操作,那么您将需要迁移到新服务器。 远离老爹 【参考方案1】:有一些安全更新。您需要为沙箱使用 TLS 1.2(更新也需要在稍后的日期应用到实时模式下的 Paypal)。
https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1766&viewlocale=en_US
这是路线图和不同的日期:
2016 年 1 月 14 日之后,沙盒 API 端点仅支持新标准(HTTP/1.1、TLS 1.2 和 SHA-256 证书)。这包括 www.sandbox.paypal.com 仅接受 HTTPS 用于 IPN 回发。
2016 年 1 月 31 日,生产开始使用新标准(2048 位,SHA-256)颁发 API 凭证证书。
2016 年 2 月 29 日,测试沙盒端点将被移除。
2016 年 3 月 17 日 新的 SFTP IP 地址添加到 reports.paypal.com 的 DNS。
2016 年 4 月 14 日,旧的 SFTP IP 地址已从 reports.paypal.com 的 DNS 中删除。
2016 年 5 月 12 日旧的 SFTP IP 地址停止工作。
2016 年 6 月 17 日之后,生产 API 端点将开始迁移到新标准(HTTP/1.1、TLS 1.2 和 SHA-256 证书)
2016 年 9 月 30 日 IPN 回发到 www.paypal.com 只允许 HTTPS
2018 年 1 月 1 日所有证书 API 凭据必须已升级到新标准。
为了解决这个问题,我建议您联系 GoDaddy,看看他们是否能够支持这些安全格式。
弗洛里安
【讨论】:
以上是关于GoDaddy PayPal API 警报握手失败的主要内容,如果未能解决你的问题,请参考以下文章
使用 fsockopen 的警报握手失败 paypal IPN 集成
另一个 Paypal Curl / SSL v3 握手错误 - SSL23_GET_SERVER_HELLO:sslv3 警报握手失败
Paypal Sandbox IPN: 14077410:sslroutines:ssl23_get_server_hello:sslv3 警报握手失败
PayPal IPN OPENSSL 错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败