Stripe月度订阅支付失败相关Webhook事件触发规则咨询
Stripe订阅扣费失败相关事件疑问解答
问题1:扣费失败时会收到哪种订阅事件?
当扣费因信用卡过期等原因失败后,不会触发customer.subscription.deleted事件——这个事件仅在主动调用API删除订阅时才会触发。
实际触发逻辑:
- 首次扣费失败后,订阅状态变为
past_due,你会收到customer.subscription.updated事件(status字段更新为past_due); - Stripe会启动自动重试流程(默认3次,间隔数天);
- 若所有重试都失败,且你的订阅设置了到期自动取消(
cancel_at_period_end为true),订阅状态会变为cancelled,此时会再次触发customer.subscription.updated事件(status字段更新为cancelled)。
问题2:订阅状态变为cancelled的事件是否在首月订阅最后一天触发?
不会。默认情况下,Stripe会在订阅周期结束前1天尝试扣取下月费用,若失败则进入重试流程,这个过程会持续数天。只有当所有重试都失败,且到达当前订阅周期的结束日期后,订阅才会被标记为cancelled,此时才会触发对应的customer.subscription.updated事件,触发时间会晚于首月订阅的最后一天。
问题3:invoice.payment_failed事件是否在首月订阅最后一天触发?
不会。该事件会在第一次扣费尝试失败时立即触发(通常是在订阅周期结束前1天的扣费尝试失败后),远早于首月订阅的最后一天。如果此时就取消用户订阅权限,会导致用户失去后续重试扣费成功的机会,对用户不公,不建议这么做。
内容的提问来源于stack exchange,提问作者Gnu
相关产品推荐
相关产品推荐

