自从Paypal Sandbox使用了几天后,我的头发全部丢失了。我的IPN不再起作用了。我无法与fsockopen()或Curl建立SSL连接。我尝试过不同的帐户和不同的主机。什么都没有。
$host = 'www.sandbox.paypal.com';
if(function_exists('openssl_open')) {
$fp = fsockopen('ssl://'.$host,443,$errno,$errstr,30);
if($fp) {
echo "success : ";
var_dump($fp);
}
else echo "echec : ".$errno." | ".$errstr;
fclose($fp);
}
此短代码返回 echec:0 |
响应与www.paypal.com相同
奇怪的是,通过www.google.com,我有:成功:资源(2)类型(流)
我在PHP 7上通常应该有Paypal请求的最新版本(g5,SHA256 ...)。有没有办法与Paypal建立这种联系?
更新:我已在https://www.sha2sslchecker.com/检查了SHA。我是由OVH主持的共享计划。只有SHA1可用。 Paypal现在需要SHA2。那就是它。
答案 0 :(得分:1)
这是因为CURL在PHP 7遗留下使用的OVH openssl版本0.9.8。更改为PHP 7 Estable和cgi(此更新openssl库版本为paypal所需的1.0.1t)
我使用这个ipn验证器并且没有问题地工作: https://github.com/paypal/ipn-code-samples
阅读和检查PHP必备条件: https://github.com/paypal/tls-update ... PHP使用系统提供的curl库。 curl库需要OpenSSL 1.0.1c或更高版本。您可能还需要更新SSL / TLS库...