【问题标题】:How to react to Stripe PaymentIntent success webhook in frontend如何对前端的 Stripe PaymentIntent 成功 webhook 做出反应
【发布时间】:2020-01-22 04:15:46
【问题描述】:

我正在使用 PaymentIntent 将 web 应用程序更新为 Stripes SCA 就绪流。

到目前为止,我一直在工作(在我的本地测试服务器上):

  1. 在前端生成 Intent 并将秘密传递给表单
  2. 使用元素将卡片收集到
  3. 使用 handleCardPayment 创建费用

现在这是我不确定的部分。 handleCardPayment 响应似乎都表示 succeeded 事件,但文档警告不要使用此响应,而是等待 Webhook 响应,然后才履行客户订单。

第 5 步:异步履行客户的订单

您可以使用 Stripe.js 返回的 PaymentIntent 来提供 付款完成后立即向您的客户反馈 客户。但是,您的集成不应尝试处理订单 在客户端实现,因为客户可以 付款完成后,履行前离开页面 进程启动。相反,您将需要处理异步 事件,以便在付款时得到通知并推动履行 成功。 Documentation

到目前为止一切顺利,我已经通过 ngrok 设置了测试 webhook 和隧道,我实际上可以从 Stripe webhook 接收到 paymentIntent。

现在,我的问题出现在 Stripe 文档结束的地方。从按下“支付”按钮的那一刻起,我应该如何处理 UI,以及如何在前端检测到 webhook 已被触发?

我想知道我是否应该轮询我自己的服务器,然后它会检索一个数据库结果,该结果表明是否已收到此订单的 webhook?或者从技术上和从用户体验的角度来看,处理这个问题的合理方法是什么?

任何指针?

【问题讨论】:

标签: stripe-payments webhooks


【解决方案1】:

我刚刚实现了这个,我决定轮询我自己的服务器以获取更新并要求用户等待。 webhook 将我们的内部表示标记为“付费”,因此我们不需要轮询 Stripe。如果 webhook 在 30 秒内没有出现,我们会告诉用户可以离开页面,我们会将结果通过电子邮件发送给他们。

从技术上讲,这些 webhook 最多可能需要 7 天才能生效,这就是 Stripe 不希望您让用户等待的原因。实际上,它几乎总是在 5 秒内到达,我宁愿让用户等待并在同一会话中看到最终确认。

【讨论】:

    猜你喜欢
    • 2020-07-17
    • 2017-06-11
    • 2021-02-04
    • 2022-01-19
    • 2021-03-15
    • 2019-09-26
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    相关资源
    最近更新 更多