订阅需要监听哪些 webhook 事件

What webhook events do I need to listen to for subscriptions

我正在尝试理解 stripe events,但如果我理解正确的话,我会 confused/unsure。我用斜体字表示我的问题。我的客户周期如下。

#1

使用 checkout.session.completed 事件来确定他们是否已经订阅。然后使用subscription id 获取有关subscription 的信息。 这是要使用的正确事件吗?

#2a 和#2b

我不知道在这里使用什么事件。我得到了很多事件,例如 charge.succeededpayment_intent.succeededinvoice.finalizedinvoice.paid 等。我用哪个来确定客户是否已付款或未付款并延长或终止订阅?

#3a 和#3b

假设我对#3a 使用 invoice.payment_succeeded我使用哪些事件来确定发票信息?

#4a 和#4b

这是我根据从 Stripe 获得的信息在我的网站上所做的事情。 如何将 Stripe 的时区转换为 Sydney/Australia 个时区。

#1 -> 您可以使用 checkout.session.completed 来确定您的客户是否已完成订阅的结帐流程。但是,该事件不能保证付款成功或订阅有效,因为付款确认可能会延迟。某些付款方式(即 BECS 借记)可能需要 days 来处理。如果您只想让您的客户在支付第一张订阅发票后开始使用您的服务。我会推荐你​​收听invoice.paidinvoice.payment_succeeded,并检查关联的订阅状态是否已变为active

#2a -> 您可以收听 invoice.paidinvoice.payment_succeeded 事件。两者之间的区别在于 invoice.paid 也会因 out-of-band 付款而被触发。如果您只使用 Stripe 来处理付款,那么您可以只听 invoice.payment_succeeded.

#2b -> 您可以使用 invoice.payment_failed 来跟踪客户付款失败的事件。但是,如果您的客户根本不尝试付款,则不会有任何事件通知您。

#3a -> Stripe 可以帮助您代您发送发票电子邮件。如果您想要更多的品牌曝光度,可以选择自定义徽标、颜色甚至发件人电子邮件地址。

#3b -> 您可以配置发送付款提醒电子邮件,并且根据您订阅生命周期中的配置 settings,订阅可能会在最多四次尝试向客户收费失败后自动取消。

#4 -> Stripe 对所有 time-related 资源使用 UTC,您应该能够使用语言的 built-in 实用程序轻松将其转换为任何时区。