2012-12-22 64 views
3

雖然使用以下Paypal IPN代碼,我有時會得到一個「getaddrinfo失敗」錯誤和我的腳本(通過PHP更新mySQL數據庫)未執行。PayPal IPN:隨機「php_network_getaddresses:getaddrinfo失敗:名稱或服務未知(0)」錯誤

守則

// 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.1\r\n"; 
$header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
$header .= "Host: www.paypal.com\r\n"; 
$header .= "Content-Length: " . strlen($req) . "\r\n"; 
$header .= "Connection: close\r\n"; 
$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
  • 等等...

我已經聯繫貝寶一週前支持但到目前爲止還沒有答覆。

任何幫助將不勝感激。 :)

P.S:我剛剛意識到錯誤只來自一行。

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

沒有違法,但創建請求正文的方式非常複雜。報告的錯誤消息聽起來更像是一個網絡/ DNS問題,並不像PHP問題。 – Niko

+0

我也有這個問題。你解決了嗎? –

回答

0

這是否仍然在發生?
原因是它無法解決www.paypal.com - 查看您是否可以通過默認名稱服務器手動解析www.paypal.com。如果這不起作用,請與名稱服務器的提供商合作,或者切換到另一個名稱服務器(如果可能)。

相關問題