2012-10-18 118 views
1

我現在有一個問題,我的貝寶IPN監聽器,每天已經收到來自PayPal以下電子郵件:貝寶IPN監聽器的問題

「請檢查您的服務器處理貝寶即時付款通知(IPN)互穿網絡發送下面的網址是失敗:

http://www.mysales.ie/create_promo_listener.php

我有一個演示網站,使用戶能夠創建廣告和完美的作品(沒有問題IPN),但是正確的網站,我發展了這個問題(它在不同的主機上)。

我已聯繫主機提供商,他們表示這不是他們身邊的問題。我曾嘗試PHP錯誤日誌,但無法找到任何問題。我在兩個網站上都有完全相同的代碼,所以我無法理解問題所在。

<?php include 'ipn_handler.class.php'; 


/** 
* Logs IPN messages to a file. 
*/ 
class Logging_Ipn_Handler extends IPN_Handler 
{ 
    public function process(array $post_data) 
    { 
      $data = parent::process($post_data); 

      if($data === FALSE) 
      { 
        header('HTTP/1.0 400 Bad Request', true, 400); 
        exit; 
      } 

      $random_number = $_POST['custom']; 


      file_put_contents('logs/listenerTest.txt', "listener = " .    $random_number, FILE_APPEND); 
      header("location:create_promo_creator.php?random_number=" .   $random_number); 

    } 
} 

date_default_timezone_set('Europe/Oslo'); 

$handler = new Logging_Ipn_Handler(); 
$handler->process($_POST); 

我一直在試圖找出問題的根源很長一段時間,但無法弄清楚。

回答

0

似乎你的$ data = parent :: process($ post_data); 方法返回FALSE。

你的代碼中是否有任何日誌工具來驗證這一點?

簡單的解決方法是返回200響應以保持PayPal的IPN系統快樂,並記錄錯誤以供進一步審覈。