Php 贝宝ipn警告

Php 贝宝ipn警告,php,paypal,paypal-ipn,Php,Paypal,Paypal Ipn,我也有类似的问题。我有两个网站。我在paypal帐户中将ipn url设置为site1。但我正在发送当前站点的paypal表单中的通知url。我在两个站点上的验证码: public function paymentCheck() { $request = 'cmd=_notify-validate'; foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value));

我也有类似的问题。我有两个网站。我在paypal帐户中将ipn url设置为site1。但我正在发送当前站点的paypal表单中的通知url。我在两个站点上的验证码:

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。一切正常。但是paypal的一些消息失败了,他们把它关掉了。你有什么想法吗?什么会引起警告?

这意味着出于某种原因,PayPal从你的脚本中得到的不是200 OK的响应。如果您的脚本看起来正常工作,则可能意味着所有任务都已完成,但最后出现的问题会导致失败,您甚至看不到这一点,除了贝宝没有得到良好的回复这一事实

您需要检查web服务器日志,查看IPN脚本被命中的时间,并查看结果。你可能会发现其中有很多显示500或200以外的东西。您还应该能够在那里看到错误详细信息,并解决它