如何用Stripe和Node.js测试订阅支付周期后失败场景?
测试Stripe订阅计费周期后支付失败的正确步骤
核心前提
Stripe测试环境中,自定义修改卡片有效期不会触发真实的过期校验,必须使用官方提供的特定测试卡来模拟支付失败场景。
正确操作步骤
- 创建测试时钟,初始时间设为当前真实时间(比如
2023-08-01) - 创建订阅时,关联该测试时钟,并使用Stripe官方测试卡:
- 若要直接模拟支付失败,用
4000 0000 0000 0002(该卡会在首次后续计费时触发失败) - 若要模拟卡片过期导致的失败,用
4000 0000 0000 0069(需配合测试时钟快进到卡片有效期之后)
- 若要直接模拟支付失败,用
- 若使用过期卡场景:
- 订阅创建完成后,将测试时钟快进到卡片有效期的下一个月首日(比如卡片有效期设为2023-08,就快进到
2023-09-01) - 等待Stripe自动触发订阅计费任务
- 订阅创建完成后,将测试时钟快进到卡片有效期的下一个月首日(比如卡片有效期设为2023-08,就快进到
- 验证结果:
- 订阅状态变为
past_due - 查看账单记录,确认对应计费周期的支付状态为失败
- 检查Stripe Webhook是否收到
payment_intent.payment_failed或invoice.payment_failed事件
- 订阅状态变为
之前操作的问题点
- 自定义修改测试卡片的有效期无效:Stripe测试环境不会校验用户自定义的卡片有效期,仅认可官方测试卡的预设规则
- 快进时间跨度太大:直接快进一年可能跳过了Stripe的计费触发逻辑,导致系统未正确执行支付校验
内容的提问来源于stack exchange,提问作者Nebula
相关产品推荐
相关产品推荐

