想象以下场景。
我的网站用户想要为服务付费,她/他点击了付费链接。我在我的数据库中创建了一条记录,其中包含有关付款的相关详细信息,然后将详细信息发送到贝宝,即发票号、跟踪号、用户 ID 等。
当用户在paypal页面准备支付时,在他/她点击支付按钮之前,他/她的计算机崩溃并且必须重新启动计算机。
我现在有一个问题。我的数据库中有一条记录,paypal 没有收到有关付款的请求。这是一个问题,因为记录永远不会更新,因为贝宝永远不会向我发送 IPN 消息,告诉我支付是否已完成、失败、取消等,因为用户计算机在贝宝支付开始之前就崩溃了。
这意味着我不会从贝宝收到待处理的、失败的、被拒绝的消息,我可以用它来删除数据库中的记录或将记录设置为无效。
所以我的问题是,在我将记录标记为无用之前,我应该等待来自贝宝 ipn 的消息多长时间?1分钟?1小时?1天?1周?ETC?
我想知道在通过电子邮件向用户发送消息以重试之前我应该等待多长时间,并且在等待时间结束之前,用户将收到一条消息,告诉他/她正在处理付款。
我担心的是,如果上述情况没有发生,并且用户确实成功完成了付款,但 paypal 会花时间向我发送原始付款的 ipn 消息,即 24 小时,我有设置删除的东西10 分钟后记录,因此用户可以在 10 分钟后重试,用户将已付款,但不会记录在我的数据库中。或者更糟糕的是,如果我给他/她一条消息说支付失败,用户可能会支付不止一次,请再试一次。之后,贝宝完成了第一次尝试的付款,并且用户被收取了两次费用......
所以基本上,如果问题不清楚。我不是在寻找意见,我是在寻找来自 paypal 的文档,其中概述了在使付款无效之前等待的最长时间。贝宝有这样的时间尺度吗?因为我在文档中找不到它。