在 Stripe 上测试订阅续订

我正在使用Stripe来测试我的代码对我们正在开发的产品的定期订阅续订付款尝试的反应(需要测试成功,失败......等)。似乎StackOverflow上的大多数答案都建议创建一个订阅,定期付款为1天(这是Stripe提供的最低定期付款),并等到第二天才能看到我的代码如何对Webhook通知做出反应。(顺便说一句,我在Stripe上找不到太多文档来建议定期付款的测试方法)。

我不太同意这种方法,因为它将我的代码测试延长到一周以上,甚至可能是两周以上,但在正常情况下,我可能会在几个小时内完成测试。

我认为以下两种方法之一足以进行编码/测试。

  1. 找到一种方法,使定期订阅间隔在较短的自定义时间段内发生,例如每 15 分钟或每 10 分钟。

  2. 更好的解决方案是按需触发定期订阅。也就是说,我创建了一个订阅,然后我将手动将下一次续订的日期更新为自定义值,例如“未来1分钟”或“未来30秒”,这将触发付款尝试。

有没有办法在 Stripe 中执行这两个选项中的任何一个?如果两者都不是可行的选择,我如何有效地测试定期付款。

谢谢。


答案 1

我们的解决方案是重置订阅的计费周期。

  • 在 Stripe 中打开订阅
  • 点击右上角的“操作”
  • 选择“更新订阅”
  • 请务必关闭“按比例更改”
  • 向下滚动并打开“高级选项”
  • 选中“重置结算周期”
  • 最后...更新订阅

这将触发新的订阅付款和所有相关的 Webhook。


答案 2

简单的方法

绝对@Marc找到了任意续订订阅的绝佳选择。他在此答案中描述的相同操作可以通过编程方式或使用 Stripe CLI 完成:

stripe subscriptions update sub_id \
  --proration-behavior=none \
  --billing-cycle-anchor=now

此命令生成以下事件序列:

charge.succeeded
invoice.finalized
invoice.created
invoice.paid
invoice.payment_succeeded
customer.subscription.updated
payment_intent.succeeded
payment_intent.created

高级方法

使用测试时钟提供了更多验证系统行为的机会。不仅可以将测试时钟附加到对象上。Subscription


推荐