1

我目前的 Paypal IPN 监听器有问题,并且每天都收到来自 paypal 的以下电子邮件:

“请检查您处理 PayPal 即时付款通知 (IPN) 的服务器。发送到以下 URL 的 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);

我一直试图找到问题的根源很长时间,但无法弄清楚。

4

1 回答 1

0

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

您的代码中是否有任何日志记录工具来验证这一点?

简单的解决方法是返回 200 响应以保持 PayPal 的 IPN 系统正常运行,并记录错误以供进一步审查。

于 2012-10-21T03:50:04.413 回答