【问题标题】:Is it possible to receive a Stripe Webhook for a payment event before I can hit my servers controller to finish processing?在我可以点击我的服务器控制器完成处理之前,是否可以接收到支付事件的 Stripe Webhook?
【发布时间】:2021-09-26 01:23:07
【问题描述】:

在我的应用程序中,在客户端,我正在调用 Stripe 的“confirmCardPayment()”来完成购买。当结果返回时,如果成功,我将获取结果,然后调用我的服务器控制器完成处理(数据库条目)。

问题 - 是否可以在客户端使用 Stripe 确认付款,然后在我有时间回发到控制器完成付款之前在服务器端接收 Stripe Webhook加工?或者换一种说法,Webhook 是立即发送还是等待一段时间再发送到端点?

【问题讨论】:

    标签: stripe-payments


    【解决方案1】:

    Stripe 不保证按照事件生成的顺序传递事件。你可以在这里更详细地阅读它:https://stripe.com/docs/webhooks/best-practices#event-ordering

    您可能希望始终依赖 webhook 来更新您的数据库或执行业务逻辑,因为依赖从浏览器触发的请求是不可靠的。例如。您的客户可以在付款授权后关闭浏览器,但在您发布到您的服务器以更新您的数据库之前。

    【讨论】:

    • 我的问题不在于 Webhook 的生成和发送顺序。我的问题是在我在客户端调用“confirmCardPayment”以创建费用之后,是否有可能在客户端有时间调用我的服务器以更新我的数据库之前接收 Webhook(例如 payment_intent.succeeded)。
    • 是的,您可以在客户端有时间调用您的服务器以更新您的数据库之前收到 Webhook。
    • 好的,如果是这样的话,我认为是这样,那么我可能最终会尝试将一行(付款)插入到已经存在的数据库中。前任。在客户端有机会访问我的服务器并创建一个新的“支付”实体之前,webhook 被调用,由我的服务器接收,然后 webhook 创建包含所有费用详细信息的“支付”实体(例如卡, exp 月, exp 年, 收取的金额等)。然后保存它。不...
    • 一瞬间,客户端发给服务器的帖子被接收并尝试做同样的事情(创建支付实体,只是在保存时出错,因为它已经存在。我该怎么做处理这种情况?尝试在数据库中插入重复行 (PaymentIntentId) 时,我是否只是在数据库保存调用上出错?
    • 把我的场景想象成一个约会应用程序,客户正在购买“超级喜欢”的积分(10、20、50、100 等)。他们进行购买,从卡上扣款,然后我想在付款表中保存一个条目。
    猜你喜欢
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多