如何通过Stripe Webhook监控用户是否拥有至少一个有效支付方式?
监控用户是否拥有至少一个有效Stripe支付方式的Webhook方案
优先使用
customer.updated这个Webhook事件- 触发时机:只要用户的支付方式发生任何变动——不管是新增、删除、切换默认支付方式,还是支付方式状态在有效/无效间切换,这个事件都会触发。
- 处理逻辑:
- 收到事件后,从返回的
data.object中获取用户的完整信息 - 先检查
invoice_settings.default_payment_method字段:如果该字段有值,且对应支付方式的状态为active,即可直接判定用户拥有有效支付方式 - 若要更严谨,可调用Stripe的
PaymentMethod.list接口,传入用户ID,指定状态为active,再筛选银行卡或ACH类型,只要返回的列表长度大于0,就说明用户至少有一个可用支付方式
- 收到事件后,从返回的
额外说明:
- 单独依赖
customer.source.created或customer.source.deleted存在漏洞,这两个事件只能监控单条支付方式的增删,无法直接判断用户剩余支付方式的有效性。比如用户删除一个支付方式但仍有其他有效方式的场景,这两个事件无法给出准确结论,而customer.updated能覆盖所有支付方式变更的情况 - 注意:Stripe目前推荐使用新版的
payment_method相关事件(如payment_method.attached和payment_method.detached),搭配customer.updated一起使用,监控会更精准
- 单独依赖
内容的提问来源于stack exchange,提问作者Ramzizi
相关产品推荐
相关产品推荐

