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 警报握手失败

Paypal ssl 握手失败

收到致命警报:与 Tomcat 的握手失败