Stripe Checkout - 如何使用 webhooks 处理用户 ID

San*_*o_V 5 stripe-payments

我目前正在将 Stripe 结帐添加到我的应用程序中。我的目标实际上是至少拥有尽可能多的代码。

文档我需要处理至少三种不同的 webhook 类型:

  • 结帐.会话.完成
  • 发票已付
  • 发票.付款失败

我尽量避免在 Stripe 中处理任何客户,并且我认为结帐组件没有必要这样做。

但是,我仍然需要 webhooks 中的用户 ID 来相应更新状态。

在后端创建会话时,我将添加该字段client_reference_id

对于国家来说checkout.session.completed,我得到了这个领域,一切都很好。

因为invoice.paid我不明白,我需要subscription_data.metadata在会话中使用来获取这些数据。

因为invoice.payment_failed我不知道如何获取它或如何使用 CLI 测试它,因为我无法添加元数据,也无法添加client_reference_id.

您知道这里的最佳实践是什么以及我应该如何实施吗?或者我真的应该在 Stripe 中处理客户吗?

谢谢!

小智 1

有几种不同的方法可以处理这个问题 -

  • 如果也在client_reference_id中设置subscription_data.metadata,您仍然可以通过检索发票上的订阅(请参阅api ref invoice.paid从和invoice.payment_failed事件中获取它。subscription
  • 您可以更改数据库来存储 Stripe Customer 和client_reference_id. 当您收到invoice.paidinvoice.payment_failed事件时,您将获取客户 ID,数据库中的信息将允许您将其绑定回正确的client_reference_id.