最近,我在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);
}
答案 0 :(得分:2)
有一些安全更新。您需要将TLS 1.2用于沙箱(更新将需要在以后的实时模式下用于Paypal)。
这里是路线图和不同的日期:
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,看看他们是否能够支持这些安全格式。
弗洛里安