在下一个自然计费日期之后锚定 Stripe 订阅

Anchor a Stripe subscription after next natural billing date

我正在为 Stripe 的年度订阅计划制定一些非常具体的规则的用户进行 Stripe 集成:

  1. 如果用户在 2022-01-01 和 2022-09-30 之间开始订阅,他们将立即全额收费,下一次收费是 2023-01-01 - 从那时起,费用将按年收取
  2. 如果用户在 2022-10-01 和 2022-12-31 之间开始订阅,他们将立即全额收费,并在 2024-01-01 再次收费 - 从那时起,收费将每年

我的直接猜测是案例 #1 应该可以结合回溯日期、锚点、不按比例分配的 and/or 试用期,尽管我还没有测试具体细节。

当下一次收费的锚点超过 12 个月时,我如何实施案例 #2?据我所知,Stripe 不允许比下一个自然计费日期(对于年度订阅是 12 个月)更晚的锚定日期。也不可能 trial_end 晚于锚定日期。

我在后端使用 Laravel Cashier/PHP,但我怀疑它是开箱即用的,所以我只是在寻找 API 选项来创建任何语言的订阅。

您可以通过将 backdate_start_date 设置为 2022-01-01 并将 billing_cycle_anchor 设置为 2023-01-01 来实现您的第一个场景。

如您所知,Stripe 不允许超过 12 个月的计费周期,但有一些解决方法。

一种选择是创建一个订阅,试用一年以上,但一次性收取订阅年费。要在创建订阅时执行此操作,您可以将开始日期回溯到 2022 年 1 月 1 日,设置 2024 年 1 月 1 日的 trial_endbilling_cycle_anchor,并使用 add_invoice_items[1 ] 参数创建与年费相同的一次性费用。

或者,您可以创建一个订阅时间表[2],第一阶段结束于 2023 年 1 月 1 日,试用阶段持续一年,然后是一年价格的阶段。

[1] https://stripe.com/docs/api/subscriptions/create#create_subscription-add_invoice_items

[2]https://stripe.com/docs/billing/subscriptions/subscription-schedules