2014-03-18 243 views
1

我有同樣的問題,如PayPal Instant Payment Notification Warning。我有兩個網站。我有在paypal帳戶設置爲site1的ipn網址。但是,我正在以當前網站的PayPal表單發送notify_url。我的兩個網站上的驗證碼:Paypal ipn警告

public function paymentCheck() 
{ 
    $request = 'cmd=_notify-validate'; 
    foreach ($_POST as $key => $value) { 
     $value = urlencode(stripslashes($value)); 
     $request .= "&$key=$value"; 
    } 

    $header = "POST /cgi-bin/webscr HTTP/1.1\r\n"; 
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
    $header .= "Content-Length: " . strlen($request) . "\r\n\r\n"; 
    $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30); 

    if (!$fp) 
     return false; 
    else { 
     fputs ($fp, $header . $request); 
     while (!feof($fp)) { 
      $res = fgets ($fp, 1024); 
      if (strcmp ($res, "INVALID") == 0) { 
       return false; 
      } 
     } 
     fclose ($fp); 
    } 

    return true; 
} 

我的網站處理ipn。所有工作正常。但一些貝寶消息失敗,他們關閉了。你有什麼想法,什麼會引起警告?

回答

0

這意味着,由於某種原因,PayPal正在從腳本中獲取200 OK響應以外的內容。如果看起來你的腳本正在工作,這可能意味着所有的任務都完成了,但是最後一個問題導致了一個你甚至都沒有看到的失敗,除了PayPal沒有得到很好的迴應背部。

您需要檢查您的Web服務器日誌,查看IPN腳本被擊中的時間並查看結果。你可能會發現一堆顯示500或200以外的東西。你也應該能夠看到那裏的錯誤細節,並解決它。