以下是示例代码:
$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 上的第一个问题 :)