【问题标题】:Is it normal for my Paypal IPN script to get hit twice every time?我的 Paypal IPN 脚本每次都被点击两次是否正常?
【发布时间】:2012-05-19 17:01:11
【问题描述】:

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

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

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

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

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


更新:

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

  2. 我收到的两封电子邮件实际上存在差异。第一个有一个payment_date 变量,第二个有一个subscr_date 变量。 subscr_date 变量设置为在 payment_date 之后几秒钟的时间。

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

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

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

【问题讨论】:

  • 您使用什么方法进行测试? PayPal 两次发送给您的所有变量是否完全相同?
  • @animuson:我不知道如何回答你的第一个问题,只是说我设置了一个 Paypal 的“订阅”按钮,然后我通过按下它来完成购买,使用 Paypal 付款(沙盒),然后返回我的网站。对于第二个问题,据我所知,是的,变量完全相同。
  • 根据您的测试方式,PayPal 将允许您手动指定付款的“类型”,例如信用卡、电子支票等。我已经阅读了许多说明PayPal 有时只会发送两次,而您对此无能为力,但绝不会每次发送两次
  • @nithi:我不认为这是重复的。在那个问题中,提问者得到两个不同的回答,有效和无效。我收到两个重复的响应,都是有效的。

标签: php paypal


【解决方案1】:

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

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 上查看 IPN 订阅变量(向下滚动到表 A.2),了解您可以在每种类型中看到的内容。

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

【讨论】:

  • 好的,所以你说这是完全正常的。我想这也意味着我应该测试一下它是哪个事件,然后据此决定我的行动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多