就上下文而言,我运行一个 SaaS,需要订阅来管理帐户,该订阅由 Stripe 管理;我们有一个主要计划,然后是该计划的附加内容,即客户可能基本上需要的额外内容。计划在每个周期开始时支付,而不是在结束时支付。
我们的要求是在计费后执行计划的升级(通常是立即计费),一旦付款,它将应用与发票相关的更改(为此,我们使用
payment_behavior=pending_if_incomplete
和 prorate_behavior=always_invoice
,以便我们达到想要的结果)。
对于降级,我们会将其安排在下一个计费周期,因此用户仍然可以受益于他在当前计费周期中已经支付的升级费用。
到目前为止,我们已经有了使用订阅计划进行降级的逻辑(根据订阅中未来更改的建议)以及在没有任何订阅计划时进行升级的逻辑。
当我们制定了降级订阅计划(例如订阅中的附加组件)时,就会出现问题,同时我想升级我的订阅的主计划,因为我们无法在订阅有降级时更新订阅。积极计划。
要执行的操作的视觉表示:
首先我们有降级:
那么本阶段的升级:
我已尝试更新时间表中的当前阶段,但它会在
draft
中创建发票,并且直到 1 小时过去后才收取付款,这不是预期的结果。我们需要的是立即收取付款,然后在付款成功后将更改应用到订阅(对于 3DS,我们可以使用订阅最新发票上附加的付款意图来管理它们),但问题是发票将在 1 小时后计费,但现在会应用更改,而不依赖于付款状态,这与我们执行的没有计划的正常升级不同。一个好的方法是能够通过 payment_behavior=pending_if_incomplete
但订阅计划不允许(https://docs.stripe.com/api/subscription_schedules/update)。
我想到的另一件事是分开计费和更新,但仍将发票附加到订阅中,这样我就可以执行以下操作:
prorate_behavior=always_invoice
和 payment_behavior=pending_if_incomplete
在订阅本身中执行更新,这样我们就可以像正常升级一样管理它但我不知道,我觉得对于太简单的东西来说工作量太大了,也许 Stripe 中有一些我没有看到的东西?