如何在用户取消Stripe订阅时触发Webhook(而非订阅到期时)
在Stripe中监听订阅取消的正确Webhook事件
你需要监听**customer.subscription.updated**事件,同时关注订阅对象的两个关键变化:
- 当用户选择在当前订阅周期结束后取消(默认行为),订阅的
cancel_at_period_end字段会从false变为true,此时会触发customer.subscription.updated事件。你可以通过这个字段的变化,获取订阅的current_period_end值,作为许可证的到期日期同步到其他系统。 - 如果订阅被立即取消(比如管理员手动操作、订阅因欠费被强制终止),订阅的
status会变为canceled,这同样会触发customer.subscription.updated事件,后续才会触发customer.subscription.deleted。这种场景下,你可以直接将对应的许可证设置为失效状态。
你之前没触发customer.subscription.updated,大概率是没过滤到这两种字段变化的场景——默认情况下,只要订阅的任何属性被修改都会触发这个事件,你需要在代码里针对性判断上述两个条件,而不是直接对所有updated事件做处理。
内容的提问来源于stack exchange,提问作者Nico Schlömer
相关产品推荐
相关产品推荐

