2013-10-23 156 views
2

我們一直在使用PAYPAL IPN工作幾天的網站功能。當我們在developer.paypal IPN模擬器中測試我們的IPN監聽器時,我們收到一條錯誤消息「IPN Delivery Failed:500 Internal Server Error」。同樣在sandbox.paypal帳戶的IPN歷史記錄中,我們得到的HTTP響應代碼爲500.但是,如果我們將這些代碼行從沙箱更改爲paypal,我們將獲得200(發送)的HTTP響應代碼。IPN傳輸失敗:500內部服務器錯誤(沙箱)

$header = "POST /cgi-bin/webscr HTTP/1.1\r\n"; 

//use www.paypal for a live site 
//$header .= "Host: www.paypal.com\r\n"; 
$header .= "Host: www.sandbox.paypal.com\r\n"; 

$header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
$header .= "Content-Length: " . strlen($req) . "\r\n"; 
$header .= "Connection: close\r\n\r\n"; 
$errstr=$errno=''; 

$paypalurl='ssl://www.sandbox.paypal.com'; 
//$paypalurl='ssl://www.paypal.com'; 

$fp = fsockopen ($paypalurl, 443, $errno, $errstr, 30); 

兩個月前,我在一個類似的IPN監聽器的工作,當我在沙箱中測試它了罰款。我昨天試着測試IPN監聽器,它也給了我500個HTTP響應代碼。我試圖在錯誤日誌中查找錯誤,但沒有列出最近的HTTP請求錯誤。

回答

1
  1. 使用捲曲庫。貝寶不再推薦此代碼。
  2. 如果可能,請在後臺作業隊列中執行此操作,以便在出現故障時重試。 PayPal有時會遇到糟糕的一天,偶爾會在完全有效的請求中迴應ISE 500。解決這個問題的唯一辦法是在後臺處理IPN回調。
  3. 此外,有時PayPal會以200 OK和一些垃圾迴應。這就是爲什麼你的代碼應該準備好處理三種情況:響應是'VERIFIED' - >繼續,響應是'INVALID' - >記錄並放下其他所有內容 - >記錄並放回隊列以便稍後重試。
相關問題