我正在使用PaymentIntent将webapp更新为Stripes SCA就绪流。
到目前为止,我已经在本地测试服务器上工作:
现在这是我不确定的部分。 handleCardPayment响应似乎都指示一个succeeded
事件,但是文档警告不要使用此响应,而应等待Webhook响应并仅执行客户订单。
第5步:异步执行客户的订单
您可以使用Stripe.js返回的PaymentIntent提供 付款完成后立即向您的客户反馈 客户。但是,您的集成不应尝试处理订单 客户方面的成就,因为客户有可能 付款完成后但在实现之前离开页面 过程启动。相反,您将需要处理异步 事件,以便在付款时得到通知并推动实现 成功。 Documentation
到目前为止,我已经建立了测试Webhook,并通过ngrok进行了隧道传输,实际上我可以从Stripe Webhook接收paymentIntent。
现在,我的问题到了,Stripe文档到此结束。从按下“付款”按钮的角度来看,我应该如何处理UI?前端中如何检测到Webhook已被触发?
我想知道是否应该轮询我自己的服务器,该服务器又检索一个数据库结果,该结果指示是否已收到此订单的网络挂钩?或者,从技术角度和用户体验的角度来看,解决此问题的合理方法是什么?
有指针吗?
答案 0 :(得分:1)
我刚刚实现了这一点,因此决定轮询自己的服务器以获取更新,并要求用户等待。 Webhook将我们的内部表示标记为“已付费”,因此我们不需要轮询Stripe。如果Webhook不在30秒内到来,我们会告诉用户可以离开页面,然后将结果通过电子邮件发送给他们。
从技术上讲,这些网络挂钩最多可能需要7天才能进入,因此这就是Stripe不想让用户等待的原因。实际上,它几乎总是在5秒钟之内出现,而我宁愿让用户等待并在同一会话中看到最终确认。