GoDaddy PayPal API警报握手失败

时间:2016-03-15 19:56:20

标签: php curl paypal

最近,我在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);
            }

1 个答案:

答案 0 :(得分:2)

有一些安全更新。您需要将TLS 1.2用于沙箱(更新将需要在以后的实时模式下用于Paypal)。

https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1766&viewlocale=en_US

这里是路线图和不同的日期:

2016年1月14日此日期之后,Sandbox API端点仅支持新标准(HTTP / 1.1,TLS 1.2和SHA-256证书)。这包括www.sandbox.paypal.com仅接受IPN回传的HTTPS。

2016年1月31日生产开始以新标准(2048位,SHA-256)发布API凭证证书。

2016年2月29日测试Sandbox端点将被删除。

2016年3月17日新的SFTP IP地址添加到DNS for reports.paypal.com。

2016年4月14日,旧的SFTP IP地址已从DNS中删除,用于reports.paypal.com。

2016年5月12日旧的SFTP IP地址停止工作。

2016年6月17日此日期之后,Production API端点将开始转向新标准(HTTP / 1.1,TLS 1.2和SHA-256证书)

2016年9月30日IPN回复www.paypal.com仅允许HTTPS

2018年1月1日所有证书API凭证必须已升级到新标准。

为了对此进行排序,我建议您联系GoDaddy,看看他们是否能够支持这些安全格式。

弗洛里安