paypal应该花多少时间?

时间:2013-09-09 13:40:09

标签: php paypal paypal-ipn paypal-nvp

想象一下以下情况。

我的网站用户想要支付服务费用,他/她点击付费链接。我在我的数据库中创建了一条记录,其中包含有关付款的详细信息,然后将详细信息发送到PayPal,即发票号,跟踪号,用户ID等。

当用户在paypal页面上准备付款时,在他/她点击付款按钮之前,他/她的计算机崩溃并且必须重新启动计算机。

我现在有一个问题。我的数据库中有记录,paypal没有收到有关付款的请求。这是一个问题,因为记录永远不会更新,因为PayPal永远不会向我发送IPN消息,告诉我付款是否已完成,失败,取消等,因为用户计算机崩溃之前,PayPal付款可能会在PayPal侧启动。< / p>

这意味着我不会收到来自paypal的待处理,失败,拒绝的消息,我可以使用该消息删除或在数据库中将记录设置为无效。

所以我的问题是,在我将记录标记为无用之前,我应该等多久才能从paypal的ipn发送消息? 1分钟? 1小时? 1天? 1周?等?

我想知道在通过电子邮件向用户发送消息再次尝试之前我应该​​等多久,在等待时间结束之前,用户将收到一条消息,告诉他/她正在处理付款。< / p>

我担心的是,如果上述情况没有发生,并且用户确实成功完成了付款,但是paypal花时间向我发送原始付款的ipn消息,即24小时,我有东西设置为在10分钟后删除记录,以便用户可以在10分钟后再次尝试,用户将付费,但不会记录在我的数据库中。或者更糟糕的是,如果我给他/她一条说付款失败的消息,用户最终可能不止一次付款,请再试一次。在此之后,paypal完成了第一次尝试的付款,并且用户被收取两次费用......

所以基本上,如果问题不清楚。我不是在寻找意见,我正在寻找来自paypal的文档,其中概述了在使付款无效之前等待的最长时间。 paypal是否概述了这样的时间尺度?因为我在文档中找不到它。

1 个答案:

答案 0 :(得分:2)

从不。

数据库中的每一行都应包含一个列,指示事务是否已完成。

您可以在待处理的交易框中列出未完成的交易或类似的事务,这表明用户没有完成交易,他应该在登录后再试一次。

将交易标记为无用对您没有太大作用,您只想知道它们是否已完成,然后您想要显示特定用户的所有待处理交易,然后可以选择完成或拒绝它应该是一种选择。

例如,如果我们查看投注网站,那么用户可以将投注添加到投注单中,这些投注单是未决的投注。用户可以选择实际下注或简单地忽略它们。在这些情况下,一旦会话到期,投注就会被标记为已恢复,您可以这样做(一旦会话在失败后首次登录后到期,就会过期)或者您可以使待处理的交易永久存在,直到用户取消