以下是示例代码:
$req = "122";
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Host: www.sandbox.paypal.com\r\n";
$header .= "Connection: close\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
if(!$errno)
{
var_dump($fp);
}
else
{
echo "ERROR: $errno, $errstr";
}
当我连接到沙箱时,它会产生连接超时错误: 错误:110,连接超时
所以我调试了问题,发现它与SSL有关,并验证了服务器中openssl的存在和可访问性。
使用以下方法测试服务器上的openssl和连接
"openssl s_client -connect www.sandbox.paypal.com:443"
我得到了
"Socket: Connection Timed out"
我检查了iptables,端口443没有阻止
所以我再次尝试检查paypal.com的案例,如下所示:
$ fp = fsockopen('ssl://www.paypal.com',443,$ errno,$ errstr,30);
它立即起作用。
所以我在我的其他服务器上试过,我能够连接到sandbox.paypal.com但不能在我需要演示和测试付款的服务器上。
我的托管服务提供商很无能为力,我在这里拔头发。
我很感激任何帮助。
是的,当然是关于Stackoverflow的第一个问题:)