Stripe:'payment_intent.succeeded' 也会在订阅续订时触发
Stripe: 'payment_intent.succeeded' is also triggered when subscription gets renewed
我的后端 (Django) 有两个用于 Stripe webhook 的 API。
- “订阅”webhook:
/api/subscriptions/webhook/
- “将余额添加到钱包”webhook:
/api/wallet/webhook/
在订阅 webhook 中,我监听 invoice.paid
和 invoice.payment_failed
事件,在钱包 webhook 中监听 payment_intent.succeeded
事件。问题是每当调用订阅 webhook 时,也会为钱包 webhook 触发 payment_intent.succeeded
事件。我认为这是因为还为订阅创建了支付意向。我需要一种方法来区分这两者(一次性付款 [aka 向钱包添加余额] 和订阅),这样我就不会在用户续订订阅时在他们的钱包中获得额外的信用额度。
我最终为两个 webhook 使用了 invoice.paid
事件并检查了 data.object.lines.data[0].price.type
字段,它可以是 one_time
或 recurring
。您可以在 https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type
阅读更多相关信息
我的后端 (Django) 有两个用于 Stripe webhook 的 API。
- “订阅”webhook:
/api/subscriptions/webhook/
- “将余额添加到钱包”webhook:
/api/wallet/webhook/
在订阅 webhook 中,我监听 invoice.paid
和 invoice.payment_failed
事件,在钱包 webhook 中监听 payment_intent.succeeded
事件。问题是每当调用订阅 webhook 时,也会为钱包 webhook 触发 payment_intent.succeeded
事件。我认为这是因为还为订阅创建了支付意向。我需要一种方法来区分这两者(一次性付款 [aka 向钱包添加余额] 和订阅),这样我就不会在用户续订订阅时在他们的钱包中获得额外的信用额度。
我最终为两个 webhook 使用了 invoice.paid
事件并检查了 data.object.lines.data[0].price.type
字段,它可以是 one_time
或 recurring
。您可以在 https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-type