PayPal即时支付(intent="sale")到期时间

PayPal immediate payment (intent="sale") expiration time

我正在使用 Express Checkout flow with the advanced server integration

因此,一旦用户单击 "Checkout" 按钮并等待 success\fail 响应,我就会实时保留项目。用户可以关闭浏览器选项卡,这看起来像是一个漫长的支付过程(JS 代码无法调用 onCancel 处理程序)。

看来我不知道用户是关闭了浏览器还是刚刚睡着了。问题是我不能等太久(超过 ~5 分钟),我想在这段时间后取消付款。看来我不能自己取消付款。因此用户可以在 N 分钟(N > 5)后回来为已取消预订且已经缺货的商品付款。

这个answer说:

user has three hours to approve of the PayPal payment

  1. 关于 3 小时的回答有点过时了,那么我们是否有任何关于即时付款生命周期的最新 DOCS? REST Express Checkout 流程还有 3 个小时吗?
  2. 3 小时对我来说太长了。 有没有办法在创建过程中设置付款的到期时间或超时?
  3. 有取消付款的方法吗? Payments API没有相关资料。

我觉得还是3个小时,创建支付的时候没办法设置。但我认为买家在 returns 通过批准或未经批准返回您的网站之前无法付款。那么是不是不能在买家回来然后打电话完成付款的步骤之间进行检查?

您可以对 PAY-XXXX id 进行 GET

https://developer.paypal.com/docs/api/payments/#payment_get

响应带有一个 create_time 字段。您应该能够检查 create_time -> now 的增量,如果超过 5 分钟,请不要接受 PAY-XXXX id / 取消数据库中的事务。

这对您的用例有用吗?

另请注意:在您调用 execute 之前,不会转移任何资金,只要您阻止 execute 调用旧交易,就应该没问题。