【问题标题】:Stripe Payment Intents and charge.succeeded webhook sometimes not firingStripe Payment Intents 和 charge.succeeded webhook 有时不会触发
【发布时间】:2020-07-31 18:01:09
【问题描述】:

当用户下订单时,我们会在我们的 iOS/Android 应用程序中创建 PaymentIntents(在重要的情况下使用 capture_method=manual)。

一旦charge.succeeded webhook 触发,我们就会将订单发送到连接的场所。如果这在几分钟内没有发生,我们这边的订单就会过期。

有趣的是,10 次中有 2 次我们没有触发这个 webhook。

我想知道听这个 webhook 是否真的明智,以便决定我们是否将订单发送到连接帐户的地点,或者是否有更好的方法来确定一旦我们尝试捕获付款是否真的有效它。

【问题讨论】:

    标签: stripe-payments webhooks


    【解决方案1】:

    Webhook 是获取付款意图状态的推荐方法,但您也可以使用 API 获取其状态。

    来自 Stripe 的引用 docs:

    技术上可以使用轮询代替 webhook 监视由异步操作引起的变化——重复 检索 PaymentIntent 以便您可以检查其状态——但这 明显不太可靠,如果大规模使用可能会带来挑战。 Stripe 对 API 请求实施速率限制,因此请谨慎行事 您是否决定使用轮询。

    对于您的情况,我建议您等待 webhook,然后在几分钟后致电 PaymentIntents APICharges API(如果您尚未收到 webhook)。

    【讨论】:

    • 这听起来是一个很好的解决方法。在我们实际使订单过期并确定状态之前手动调用 api。感谢您的意见,我会试试看。
    • 这里的来源stripe.com/docs/rate-limitssai 表示,stripe api 允许每秒 100 次读取操作和每秒 100 次写入操作。我不知道这是否意味着总共 100 个或每个用户 100 个。如果每个用户有 100 个,那么轮询肯定是可靠的。但是,如果每个人都使用 api 每秒 100 次,那么它不可靠是有道理的。
    【解决方案2】:

    这里可能发生了其他事情,所以我建议您reach out to Stripe - webhook 应该一直触发,而且它们不会触发的情况非常罕见。

    【讨论】:

    • 我做到了,我们基本上发现 webhook 正在触发,但是我们处理事件的某些事情有时会失败。就好像我们甚至没有接到来自 webhook 的电话。我们目前正在部署一个版本,该版本将为我们提供更多见解 + 包括 Delena 提到的解决方法。
    猜你喜欢
    • 2021-07-14
    • 2021-11-09
    • 2016-04-14
    • 2023-03-11
    • 2021-12-15
    • 2020-06-10
    • 2018-10-20
    • 2020-01-21
    • 1970-01-01
    相关资源
    最近更新 更多