Php 我的Paypal IPN脚本每次被点击两次是否正常?

Php 我的Paypal IPN脚本每次被点击两次是否正常?,php,paypal,Php,Paypal,我目前正在用PHP测试一个IPN脚本,使用Paypal的沙箱 它似乎工作得很好,只是每次似乎都会被击中两次。我在顶部输入了一些代码,只向我发送电子邮件警报,这样我就知道脚本已经执行了。每次交易我都会收到两次警报 我甚至可以注释掉我脚本中除了那一行以外的所有内容,我仍然得到了两次,所以我想我可以合理地确定问题不在我的IPN脚本中,而是在Paypal端 我不知道这是否意味着我在Paypal上的帐户设置有误,或者Paypal的正常工作部分是否我不理解或者发生了什么。不过,我很确定我的IPN脚本不应该为

我目前正在用PHP测试一个IPN脚本,使用Paypal的沙箱

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

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

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

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


更新:

  • 我已经证实,双重打击每次都会发生

  • 实际上,我收到的两封电子邮件是不同的。其中一个变量是
    payment\u date
    变量,第二个变量是
    subscr\u date
    变量。
    subscr\u日期
    变量设置为付款日期后几秒的时间

  • 虽然现在发生的一切似乎都是我收到了两个通知,一个是付款通知,一个是订阅开始通知,但这仍然让我感到奇怪。我对IPN脚本的理解是,它的目的是使我能够在成功付款的基础上执行数据库(或其他任何内容)中的更改。如果他们每次都想打我两次,那么无论我打算执行什么更改,都会做两次,我认为这显然不是理想的方法

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


    所以我还在想。。。这正常吗?我应该怎么做才能防止代码被执行两次?

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

    请参阅此处的IPN订阅事件和此处的IPN订阅变量(向下滚动至表A.2),以了解在每种类型中可以看到的内容


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

    您使用什么方法进行测试?贝宝两次发送给你的所有变量都完全相同吗?@animuson:我不知道如何回答你的第一个问题,只是说我已经设置了一个贝宝“订阅”按钮,我通过按下它,用贝宝(沙盒)支付,然后返回我的网站来完成购买。关于你的第二个问题,据我所知,是的,变量是完全相同的。根据你的测试方式,PayPal将允许你手动指定支付的“类型”,如信用卡、eCheck等。我读过很多资料,说PayPal有时只发送两次,你对此无能为力,但是他们从来没有一次发送两次。@nithi的副本:我不认为这是一个副本。在这个问题上,提问者得到了两种不同的回答,有效和无效。我得到了两个重复的回答,都是有效的。好吧,你是说这是完全正常的。我想这也意味着我应该进行测试,看看它是哪个事件,然后根据它来决定我的行动。