多次收到 Paypal IPN 响应

Posted

技术标签:

【中文标题】多次收到 Paypal IPN 响应【英文标题】:Receiving Paypal IPN response multiple times 【发布时间】:2013-06-01 07:16:35 【问题描述】:

我在我的支付应用程序中使用贝宝支付网关 IPN。

付款成功后,我会正确收到 IPN 响应。

收到后我发回验证。

$ch = curl_init();

$paypalUrl = PAYPAL_URL;
curl_setopt($ch, CURLOPT_URL, $paypalUrl); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_field); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$res = curl_exec($ch);

现在我多次收到相同的 IPN 响应(大约 9 次)。我正在发送 IPN 响应以进行以下格式的验证:

    cmd=_notify-validate&orderUUID=eac962fe-3a0a-4b26-be89-e5ccf54ee2cb&
    mc_gross=15.00&settle_amount=11.58&
     protection_eligibility=Ineligible&payer_id=LR3LZ8R978ZK8&tax=0.00
    &payment_date=06%3A55%3A17+Jun+05%2C+2013+PDT&payment_status=Completed
  &charset=windows1252&first_name=abc&option_selection1=&option_selection2=&
 mc_fee=0.74&exchange_rate=0.812061&notify_version=3.7
  &settle_currency=USD&custom=&payer_status=verified&business=business%40mydomain.com
  &quantity=1&verify_sign=AFcWxV21C7fd0v3bYYYRCps-s-rl31AlU7JAwS8--HoB6lJfimizlVxnVa&payer_email=personal%40mydomain.com&option_name1=tour&option_name2=abc+abc&txn_id=6RU07240YB682730C&payment_type=instant&last_name=abc&receiver_email=business%40mydomain.com&payment_fee=&receiver_id=LW9JSM57BYH5Q&txn_type=web_accept&item_name=ite  m+name&mc_currency=AUD&item_number=&residence_country=US&test_ipn=1&handling_amount=0.00 &transaction_subject=item+reserva!tion+for+1+spaces+on+Jun+06&payment_gross=&shipping=0.00&ipn_track_id=b85bc954da9e5

多次收到相同响应的原因是什么?

正如我所关注的那样,我们需要向贝宝发送 200 OK 以获取 IPN 响应,如果贝宝没有收到 200 OK 它会再次重试...是否一样?

【问题讨论】:

【参考方案1】:

在这里,我经历了一件事。假设我的原始主机名是 abc.com,并且我在上面创建了一个测试实例。现在我的新主机名将是 testing.abc.com 。当我从我的测试实例进行事务时,上面的问题正在发生(多次接收 IPN 响应)。我正确处理了响应(即检查了此重复响应还是新响应)。现在我的应用程序转移到生产环境中,我的主机名是 abc.com,一切正常! (仅接收一次 IPN 响应)。我认为 paypal 无法从我的测试实例接收成功状态,因为它试图多次发送相同的响应。

【讨论】:

【参考方案2】:

如果您在 PayPal 帐户中查看您的 IPN 历史记录,它是否显示状态代码 200 被退回?通常这是多次查看 IPN 的常见原因。

【讨论】:

感谢您的回复。我已经检查了我在企业帐户上的 IPN 历史记录。在历史上它显示:交货状态= 失败否。重试次数 =**8** 并显示空白的 HTTP 响应代码。我怎么知道失败的原因是什么? 我也发送了 header("Status: 200 OK");收到 IPN 回复后回复。 请帮帮我,我还没有得到解决方案【参考方案3】:

刚刚检查了我的工作 IPN 处理程序,我将“&cmd=_notify-validate”附加到请求的末尾,而不是放在开头

【讨论】:

以上是关于多次收到 Paypal IPN 响应的主要内容,如果未能解决你的问题,请参考以下文章

在 PayPal Sandbox 中没有收到对侦听器的 IPN 响应

未收到来自 Paypal IPN 沙盒的响应

PayPal IPN 响应没有收到 payKey 或 trackingId?

从 PayPal 的沙盒 IPN 获得无效响应

Paypal 中某些 IPN 消息的无效响应

Paypal IPN 侦听器代码挂起/无响应