【问题标题】:How to set a timeout for a stripe session checkout?如何为条带会话结帐设置超时?
【发布时间】:2020-07-08 14:52:43
【问题描述】:

客户付款是否有超时时间?是否可以更改?

让我解释一下我的情况:

我必须在 PHP 预订平台上添加付款。

为确保一个时间段不会被多次预约,当用户点击预约按钮时,平台会阻止预约20分钟。如果他在这个时间之后没有完成他的信息填写,他必须重新开始,如果他没有完成,则取消预订。

我应该能够确保付款最长为 5 分钟。这样,我在预订开始后最多 15 分钟后开始付款。

这是我发现不修改整个代码的最简单方法。不幸的是,我在 API 中找不到这个选项。

否则,如果我在付款过程之前永久阻止预订,如果用户没有通过关闭浏览器完成交易,我无法解除阻止。

【问题讨论】:

  • Stripe Checkout 可能不适合这种情况。 (可以想象,您可以在允许的时间范围之外拒绝并退还付款,但这会在交易中产生一些费用。)
  • 您找到解决方案了吗?
  • 这可以通过 Stripe 完成。它只是需要一种不同的策略来捕获付款
  • Stripe 目前只接受不少于 1 小时的过期时间。您可以读取您的托管服务器时间并计算会话何时到期,然后在您的函数中添加您计算出的到期时间(calculatedExpiration): const session = await stripe.checkout.sessions.create({ expires_at: calculateExpiration,

标签: stripe-payments


【解决方案1】:

创建结帐会话时,它具有a Payment Intent associated with it。您可以在释放预订时cancel that Payment Intent,这将阻止客户付款。

更新:你现在可以set expires_at when creating the Checkout Session

Checkout Session 将过期的 Epoch 时间(以秒为单位)。它可以在结帐会话创建后 1 到 24 小时内的任何时间。默认情况下,此值是创建后 24 小时。

您现在还可以使用the dedicated "Expire a Session" API endpoint 明确并立即使结帐会话过期。

【讨论】:

  • 这应该是标记的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 2021-09-16
相关资源
最近更新 更多