php - 我的 Paypal IPN 脚本每次都被命中两次是否正常?

标签 php paypal

我目前正在使用 Paypal 的沙箱在 PHP 中测试 IPN 脚本。

它似乎工作正常,除了它似乎每次都被击中两次。我在顶部输入了一些代码,只向我发送电子邮件提醒,这样我就知道脚本已执行。每笔交易我都会收到两次该警报。

我什至可以注释掉我的脚本中除该行之外的所有内容,而且我仍然得到它两次,所以我想我可以合理地确定问题不在我的 IPN 脚本中,而是在 Paypal 端。

我不知道这是否意味着我的 Paypal 帐户中的某些设置有误,或者是否存在我不理解的 Paypal 正常工作部分或发生了什么。不过,我很确定我的 IPN 脚本不应该为每笔交易运行两次。

我的 IPN 脚本会被命中两次是有原因的吗?有什么我可以或应该做的吗?


更新:

  1. 我已经确认每次都会发生连击。

  2. 我收到的两封电子邮件实际上是不同的。其中一个有一个 payment_date 变量,第二个有一个 subscr_date 变量。 subscr_date 变量设置为 payment_date 后几秒的时间。

虽然看起来我收到了两条通知,一条是关于付款的,一条是关于订阅开始的,但这仍然让我觉得很奇怪。我对 IPN 脚本的理解是,它的目的是让我可以根据成功的付款在我的数据库(或其他任何东西)中执行更改。如果他们打算每次打我两次,那么我打算执行的任何更改都会执行两次,我认为这显然不是理想的做法。

此外,由于客户购买的订阅,他们似乎每次都给我关于同一事物的两个通知,但名称不同。也比较奇怪。

所以我仍然想知道...这是否正常,我应该怎么做才能防止我的代码被执行两次?

最佳答案

您将收到 2 个不同的 IPN 事件 - 1 个用于确认付款,1 个用于确认订阅开始。

在此处查看 IPN 订阅事件 http://www.paypalobjects.com/en_US/ebook/subscriptions/notifications.html#1032718和此处的 IPN 订阅变量 http://www.paypalobjects.com/en_US/ebook/subscriptions/Appx-ipn_subscription_variables.html (向下滚动到表 A.2)您可以在每种类型中看到什么。

还有 IPN 事件,例如标记订阅结束,这些事件与付款没有直接关系。

关于php - 我的 Paypal IPN 脚本每次都被命中两次是否正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10545581/

相关文章:

sencha touch 2 和 phonegap 的 Paypal

javascript - 如何发送ajax到同一页面?

ruby-on-rails - ruby on rails 中的传递状态失败 notify_url IPN

javascript - 如何使用 Ajax 检索和存储数据

javascript - 单击按钮时如何在另一个页面上显示按钮名称

paypal - 为 PayPal 授权/捕获

paypal - 如何实现向多个供应商付款

php - 如果不是来自给定的居住国家/地区,如何拒绝 Paypal 付款?

javascript - 使用 html 表单将 javascript 变量值传递给 .php

php - PHP 中的 "imagettfbbox()"是如何工作的?