You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Firestore Stripe Payments扩展如何正确测试订阅支付?

正确测试Firestore Stripe Payments扩展的订阅支付集成

问题根源

你遇到的异常是因为测试时用了Stripe自动支付成功的测试卡号,这类卡号会默认完成所有测试发票的支付,所以哪怕推进测试时钟,订阅状态仍会保持active,发票也会被标记为paid。

正确测试步骤

1. 用指定测试卡号模拟支付失败

创建订阅时,必须使用Stripe官方提供的支付失败测试卡号,才能触发逾期流程:

  • 4000 0000 0000 0341:首次支付即失败,后续计费周期也会持续失败
  • 4000 0000 0000 0069:首次支付成功,但后续周期支付失败

用这类卡号创建订阅后,下一个计费周期生成的发票会处于未支付状态,订阅状态才会按预期变更。

2. 正确关联测试时钟

  • 必须在创建订阅时就关联测试时钟,事后添加的测试时钟不会影响已存在的订阅周期
  • 推进测试时钟时,要超过订阅的完整计费周期(比如月度订阅至少推进31天),确保触发下一次计费逻辑

3. 验证Firestore状态

推进时间后,检查以下节点的状态:

  • customers/{customerId}/subscriptions/{subscriptionId}:状态会变为past_due(逾期未付),超过宽限期后会变为canceled或unpaid
  • customers/{customerId}/subscriptions/{subscriptionId}/invoices/{invoiceId}:发票状态会变为open(未支付),而非paid

4. 可选:测试逾期恢复流程

如果要验证用户补缴后的状态恢复:

  • 在Stripe后台找到对应未支付的发票,手动标记为支付成功(或用有效测试卡号完成支付)
  • 检查Firestore中订阅状态是否变回active,发票状态同步更新为paid

额外检查项

  • 确认Firestore Stripe Payments扩展的Webhook配置正常,Stripe的invoice.payment_failed、customer.subscription.updated等事件能正确同步到Firestore
  • 确保订阅关联的产品配置了正确的计费周期和逾期规则(比如宽限期设置)

内容的提问来源于stack exchange,提问作者GameFromScratch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 03:15:57