Php 贝宝如何避免PDT数据的双重回复

Php 贝宝如何避免PDT数据的双重回复,php,paypal,Php,Paypal,因此,当用户决定通过paypal购买东西后,他单击pay按钮,被重定向到该按钮,用txID读取来自paypal的GET,发帖子到paypal进行验证,获取数据,然后脚本将金额(mc_gross)添加到他的“example.com”帐户。问题是,用户可以复制粘贴“…”的URL并重新访问它,PDT将愉快地再次回复数据,并在用户的“example.com”帐户中添加另一个X金额。如何避免这种情况?这个问题很愚蠢,应该在12个小时的编码之后。答案很简单,当返回URL(脚本)获取TX数据并将X金额计入用户

因此,当用户决定通过paypal购买东西后,他单击pay按钮,被重定向到该按钮,用txID读取来自paypal的GET,发帖子到paypal进行验证,获取数据,然后脚本将金额(mc_gross)添加到他的“example.com”帐户。问题是,用户可以复制粘贴“…”的URL并重新访问它,PDT将愉快地再次回复数据,并在用户的“example.com”帐户中添加另一个X金额。如何避免这种情况?

这个问题很愚蠢,应该在12个小时的编码之后。答案很简单,当返回URL(脚本)获取TX数据并将X金额计入用户时,它还应检查该TX id之前是否已再次使用,如果未记录TX id,则用户将不会再次使用返回URL将X金额计入自己的帐户


请关闭或删除该问题。

对此类内容使用POST请求,以便复制粘贴URL不会生成相同的请求?@apokryfos PayPal最初通过GET发送其信息,然后从GET参数获取tx并将其发回PayPal。我就是这样做的。我的问题是,用户可以获取paypal返回给用户的初始URL并重新访问它。你确定paypal会乐意将tx视为新的交易,而不是已经发生的交易吗?@apokryfos paypal会将第二次tx视为已经发生的交易,是,并将回复用户支付X sum的交易信息。啊,我想出来了,第一次发生这种情况时,我还应该登录我的数据库txID,这样就不能用那个ID再次添加新的数量。