在下一个自然结算日期之后锚定 Stripe 订阅

Rin*_*ins 1 stripe-payments

我正在为用户开发 Stripe 集成,并为 Stripe 上的年度订阅计划制定一些非常具体的规则:

  1. 如果用户在2022年1月1日至2022年9月30日期间开始订阅,则将立即向其收取全额费用,并于下一个2023年1月1日收取费用 - 从那时起,费用将按年收取
  2. 如果用户在2022年10月1日至2022年12月31日之间开始订阅,将立即收取全额费用,并于2024年1月1日再次收取费用 - 此后将按年收取费用

我的直接猜测是,案例#1 应该可以通过回溯、锚定、不按比例分配和/或试用期的组合来实现,尽管我还没有测试具体细节。

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

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

小智 5

backdate_start_date您可以通过设置为 2022-01-01 和billing_cycle_anchor2023-01-01 来实现第一个场景。

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

一种选择是创建具有一年以上长期试用期的订阅,但一次性收取订阅年费。要在创建订阅时执行此操作,您可以将开始日期回溯到 2022 年 1 月 1 日,设置trial_end2024billing_cycle_anchor年 1 月 1 日,并使用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