PayPal IPN:随机" php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 (0)" 错误



在使用以下PayPal IPN代码时,我有时会遇到" getAddrinfo失败"错误,而我的脚本(通过PHP更新MySQL数据库)未执行。

代码

// read post from PayPal system and add 'cmd'
$postvars = array();
while (list ($key, $value) = each ($HTTP_POST_VARS)) {
    $postvars[] = $key;
}
$req = 'cmd=_notify-validate';
for ($var = 0; $var < count ($postvars); $var++) {
    $postvar_key = $postvars[$var];
    $postvar_value = $$postvars[$var];
    $req .= "&" . $postvar_key . "=" . urlencode ($postvar_value);
}
// post back to PayPal system to validate
$header .= "POST /cgi-bin/webscr HTTP/1.1rn";
$header .= "Content-Type: application/x-www-form-urlencodedrn";
$header .= "Host: www.paypal.comrn";
$header .= "Content-Length: " . strlen($req) . "rn";
$header .= "Connection: closern";
$fp = fsockopen('ssl://www.paypal.com', 443, $errno, $errstr, 30);
...
...
...
if (!$fp) {
    echo $errstr . " (" . $errno . ")";
} else {
    // UPDATE DB //
}

错误

php_network_getaddresses : getaddrinfo failed: Name or service not known (0)

我没有得到的是,这是随机发生的,有时整个脚本都可以正常工作。它似乎完全独立于收到的变量:

  • subscr_id
  • txn_type
  • verify_sign
  • 等...

我已经在一周前与PayPal支持联系,但到目前为止尚无答复。

任何帮助将不胜感激。:)

P.S:我刚刚意识到该错误仅来自一行。

$fp = fsockopen('ssl://www.paypal.com', 443, $errno, $errstr, 30);

这是否还为您发生?
原因是它无法解析www.paypal.com-查看您是否可以通过默认名称服务器手动解析www.paypal.com。如果这不起作用,请与名称服务器的提供商一起使用,或切换到另一个(如果可能的话)。

最新更新