Php 捕获重复的PayPal IPN支付

Php 捕获重复的PayPal IPN支付,php,paypal,paypal-ipn,Php,Paypal,Paypal Ipn,我有一个通过PayPal的IPN服务设置的定期支付解决方案,基本上是用户填写表单,支付费用,然后通过IPN我的系统获得一个ping以允许用户访问系统 从技术上讲,一切都很正常,但偶尔在用户周期的最后一天,他们会忘记这是一次定期付款,并再次填写表单。贝宝似乎并不介意这一点,而是创建了第二个定期付款模式 目前,我进入,退款,并取消这个新的付款模式,但显然这不是理想的-有没有任何方法,我可以配置贝宝不接受新的个人资料与当前活动的配置文件?或者我需要在我的网站末端捕捉到这一点,并在允许付款之前进行某种形

我有一个通过PayPal的IPN服务设置的定期支付解决方案,基本上是用户填写表单,支付费用,然后通过IPN我的系统获得一个ping以允许用户访问系统

从技术上讲,一切都很正常,但偶尔在用户周期的最后一天,他们会忘记这是一次定期付款,并再次填写表单。贝宝似乎并不介意这一点,而是创建了第二个定期付款模式


目前,我进入,退款,并取消这个新的付款模式,但显然这不是理想的-有没有任何方法,我可以配置贝宝不接受新的个人资料与当前活动的配置文件?或者我需要在我的网站末端捕捉到这一点,并在允许付款之前进行某种形式的查找吗?

贝宝没有意识到a交易是重复交易,它将该交易作为新交易处理。你必须从你的系统中解决它。 在实现支付网关时,在发送到支付网关之前,最好先在系统中保存状态为“挂起”或“其他”的账单。 此外,在用户填写的表单中,您可以实现一个字段来唯一标识用户,如其电子邮件地址,还可以根据系统中的用户唯一字段保存到期日或第二个重复日期。现在,当用户输入相同的唯一字段并希望再次提交表单时,您可以验证同一用户是否正在再次付款,但第二个账单日期尚未到期,因此提示并限制他再次付款


希望对您有所帮助。

贝宝没有意识到a交易是重复交易,它将该交易作为新交易处理。你必须从你的系统中解决它。 在实现支付网关时,在发送到支付网关之前,最好先在系统中保存状态为“挂起”或“其他”的账单。 此外,在用户填写的表单中,您可以实现一个字段来唯一标识用户,如其电子邮件地址,还可以根据系统中的用户唯一字段保存到期日或第二个重复日期。现在,当用户输入相同的唯一字段并希望再次提交表单时,您可以验证同一用户是否正在再次付款,但第二个账单日期尚未到期,因此提示并限制他再次付款


希望它能对您有所帮助。

我认为这必须发生在您这边,因为我认为贝宝无法识别重复的定期付款。我认为它只是一个可以交换的Id和一个钱数(再加上我想到的数据),但它所做的只是查看Id,如果它正确的话,很可能会与他们的数据库进行交叉检查。我想你得看看是否有办法抓住重复付款。比如给他们一个付款编号或参考编号。一旦被复制,你就可以抓住它并把钱寄回来。你是否将相同的IPN从Paypal发送到Paypal站点(用于验证)?如果您这样做,您将不会收到相同的IPN呼叫相同的交易两次。我认为这必须发生在您的结束,因为我认为贝宝无法识别重复的定期付款。我认为它只是一个可以交换的Id和一个钱数(再加上我想到的数据),但它所做的只是查看Id,如果它正确的话,很可能会与他们的数据库进行交叉检查。我想你得看看是否有办法抓住重复付款。比如给他们一个付款编号或参考编号。一旦被复制,你就可以抓住它并把钱寄回来。你是否将相同的IPN从Paypal发送到Paypal站点(用于验证)?如果您这样做,您将不会收到相同的IPN呼叫相同的事务两次。