在 checkout.session.completed 中为首次付款提供订阅

Provision subscription in checkout.session.completed for first payment

当我创建结帐会话时,我在元数据中包含 user_id。这允许我在触发 checkout.session.completed 事件时检索 user_id,我需要它来为该用户在数据库中保存条带客户 ID。

这是正确的方法吗?

我现在遇到的问题是,每当创建第一笔付款时,鉴于此逻辑,我将需要在 checkout.session.completed 事件中提供订阅,以后的付款将由 invoice.paid 处理事件。这是因为 invoice.paid 只能通过客户 ID 识别用户,客户 ID 由 checkout.session.completed 填充。

问题:

要配置和监控订阅,Stripe recommends 监听三个事件:checkout.session.completedinvoice.paidinvoice.payment_failed

如果您需要 user_id 来提供订阅,那么可以将其添加到结帐会话元数据中。

当您收到 invoice.paid 事件时,您可以使用 subscription property of the invoice. And then, if needed, you can find the Checkout Session for that subscription with the list checkout sessions 端点检索关联的订阅并传递订阅 ID。