如何检查 stripe 订阅是从试用期还是活跃期进入 past_due?
How to check if stripe subscription went to past_due from trialing or active?
我有一个场景,我需要在我们的系统中采取行动以获得条带上的 past_due 状态。但这取决于订阅是从活动状态(至少支付过一次)还是试用状态(处于试用期且首次付款失败)。有什么办法可以区分这两种情况吗?
有一个 customer.subscription.updated
您可以收听的 webhook 事件,此事件包含订阅,您可以在其中检查状态是否为 past_due
[0]。
对于 past_due
的订阅,需要获取 2 条信息来确定订阅之前是否已支付:
- 订阅的
trial_end
[1]:
这是订阅中的字段之一。
- 最新发票行项目的起始期间[2]:
latest_invoice
是订阅中的字段之一,这是一个发票 ID,在检索相关发票 [3] 后,可以通过 lines.data[0].period.start
. 找到感兴趣的纪元时间戳
如果这两个 epoch 时间戳的值匹配,则表示订阅从未支付过,即最新发票是在试用结束且付款未成功时创建的。
[0] https://stripe.com/docs/api/subscriptions/object#subscription_object-status
[1] https://stripe.com/docs/api/subscriptions/object#subscription_object-trial_end
[2] https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-period-start
[3] https://stripe.com/docs/api/invoices/retrieve
我有一个场景,我需要在我们的系统中采取行动以获得条带上的 past_due 状态。但这取决于订阅是从活动状态(至少支付过一次)还是试用状态(处于试用期且首次付款失败)。有什么办法可以区分这两种情况吗?
有一个 customer.subscription.updated
您可以收听的 webhook 事件,此事件包含订阅,您可以在其中检查状态是否为 past_due
[0]。
对于 past_due
的订阅,需要获取 2 条信息来确定订阅之前是否已支付:
- 订阅的
trial_end
[1]:
这是订阅中的字段之一。 - 最新发票行项目的起始期间[2]:
latest_invoice
是订阅中的字段之一,这是一个发票 ID,在检索相关发票 [3] 后,可以通过lines.data[0].period.start
. 找到感兴趣的纪元时间戳
如果这两个 epoch 时间戳的值匹配,则表示订阅从未支付过,即最新发票是在试用结束且付款未成功时创建的。
[0] https://stripe.com/docs/api/subscriptions/object#subscription_object-status
[1] https://stripe.com/docs/api/subscriptions/object#subscription_object-trial_end
[2] https://stripe.com/docs/api/invoices/line_item#invoice_line_item_object-period-start
[3] https://stripe.com/docs/api/invoices/retrieve