PHP中的PayPal IPN无法向IPNPB发送请求

PHP中的PayPal IPN无法向IPNPB发送请求,php,paypal,paypal-sandbox,paypal-ipn,Php,Paypal,Paypal Sandbox,Paypal Ipn,我这里有一个PayPal IPN脚本,但问题是,它正确地接收了POST请求,但当它试图向PayPal发出CURL请求时,PayPal似乎没有给出响应(甚至不是无效的或任何东西!) 这是我的密码: <?php // Format POST values foreach($_POST as $name => $value) { $data .= $name.'='.$value.'&'; } $data = substr_repla

我这里有一个PayPal IPN脚本,但问题是,它正确地接收了POST请求,但当它试图向PayPal发出CURL请求时,PayPal似乎没有给出响应(甚至不是
无效的
或任何东西!)

这是我的密码:

<?php
    // Format POST values
    foreach($_POST as $name => $value) {
        $data .= $name.'='.$value.'&';
    }
    $data = substr_replace($data, NULL, -1);
    $data = urlencode($data);


    // THE PROBLEM COMES HERE, I TRY TO MAKE A CURL REQUEST TO PAYPAL BUT NO RESPONSE RETURNED
    $ch = curl_init('https://sandbox.ipnpb.paypal.com/cgi-bin/webscr');
    curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));

    $res = curl_exec($ch);
    $res = curl_close($ch);

    file_put_contents('result.txt',$res);
    // There is nothing in my result.txt file for $res , but $data returns the POST data PayPal gave me
?>

可能的解决方案是将修改后的信息登录到收件人Paypal帐户并设置IPN

为此,请执行以下步骤:

  • 步骤配置文件->配置文件和设置->我的销售工具->即时付款通知->更新

  • 单击“选择IPN设置”

  • 将“通知URL”字段设置为HTML表单中“通知URL”上的内容
  • 选择“接收IPN消息”
  • 拯救

  • 注意:如果您检查IPN历史记录,它可能会显示为队列。这似乎是一个沙箱故障,或者可能是它处理了很多请求,并且队列很长。您可以尝试使用小值(例如$1)的实时支付。请参见此处:Paypal IPN状态-排队

    恐怕不行,来自Paypal的POST请求很好,但当我尝试将值返回到IPNPB时,它根本不起作用。其他人可以帮助我吗?