更新客户的 Stripe 订阅以按比例分配订阅费用的金额(部分金额)

Posted

技术标签:

【中文标题】更新客户的 Stripe 订阅以按比例分配订阅费用的金额(部分金额)【英文标题】:Update Stripe subscription for customer to prorate amount (partial amount) of subscription costs 【发布时间】:2021-06-17 06:56:39 【问题描述】:

我要做的是向现有的 Stripe 客户添加一个新的订阅项

Stripe 客户已经有一个带有计费周期的订阅,我只想添加这个新订阅(这是一个不同的产品),但我希望这个金额按比例显示在客户的下一个帐单上数量。这样订阅可以有相同的计费周期。这意味着我们可以向客户发送一张发票,并且每月向记录在案的卡收费不超过一次。

因此,如果客户想以每月 10 美元的价格添加一个额外的用户。他们在当月中途注册时,客户将收到 5 美元的账单,费用为上一个计费周期所用的时间加上常规的 10 美元订阅费。

我有这个代码

if (item.Plan.ProductId == "productId") 
  var subscriptionItemOptions = new SubscriptionItemUpdateOptions 
    
    Price = "priceId",

      Quantity = vm.NumberOfUsersToChange,
  ;

  var subscriptionItemService = new SubscriptionItemService();

  subscriptionItemService.Update(item.Id, subscriptionItemOptions);

这会在下一张发票上减去未使用的时间。

我希望发生完全相反的事情。所以它将获得按比例分配的金额并添加到下一张发票中。

非常感谢任何帮助!

【问题讨论】:

我认为您需要[指定proration_behavior]并将其设置为create_prorations,并且在添加订阅项时您可能还需要specify proration_date,但我不能100%确定你给出的例子是模棱两可的。如果这不起作用,您是否可以使用更详细的示例来编辑您的问题,该示例不会在一段时间的中途发生更改? 抱歉延迟响应,但我尝试按比例分配行为并且它有效,但唯一的问题是它会立即向卡收费。我希望将此订阅添加到客户即将发出的发票中。我是否必须将其添加为 InvoiceItemCreateOptions,如果我这样做,这将转到每张发票,还是我必须创建订阅并且不立即为此订阅计费,以便我可以将该订阅附加到发票项? 我们的用户可以有两个订阅,可以查看两个条带状产品。所以第一次订阅是一个底价。另一个订阅是他们想要添加的其他用户。因此,如果他们向我们注册并且不添加其他用户,则该客户的订阅不存在。但在应用程序内部,我想让他们能够实际添加用户。我想从他们添加用户时捕获按比例分配的金额,并将其添加到他们的下一张发票中。所以下一张发票将有基本价格,加上额外的用户成本,加上按比例分配的用户 AMT 我也一直在考虑为其他用户添加订阅并将价格的数量设置为 0 以便他们不计费,但是我可以操纵该订阅的数量而无需尝试为该客户添加额外订阅 为什么你有两个订阅而不是一个包含所有内容(基本价格 + 用户)?听起来那将是最简单的。你可能也有兴趣阅读when Stripe Subscriptions will and will not attempt immediate payment 【参考方案1】:

对于其他用户的单独订阅,您可以backdate them,我认为这将提供您所追求的行为。

具体来说,您可以combine backdating and setting a billing cycle anchor 做您所描述的事情:

您可以将backdate_start_datebilling_cycle_anchor 结合使用,以回溯订阅并将计费周期锚定为未来的某个日期。这会在下一张发票上为回溯开始日期和计费周期锚点之间的时间创建一个按比例分配的项目。

【讨论】:

以上是关于更新客户的 Stripe 订阅以按比例分配订阅费用的金额(部分金额)的主要内容,如果未能解决你的问题,请参考以下文章

Stripe API 订阅

使用 Stripe 创建订阅时,第一个月自动收费

Stripe - 年度“反向按比例”订阅

Stripe 在订阅的应用程序方面的费用,试图在发票上进行更新,但它太快了

为客户订阅定期付款计划后如何获取费用 ID?

首次订阅 Stripe 的用户如何收取额外费用?