使用 asp.net 在 Stripe 中定义的计划之上额外付款

Additional payment on top of defined Plan in Stripe using asp.net

在 Stripe 上,有没有 API 客户可以在单笔交易中支付额外费用以及计划金额? 场景是,总费用是基于用户数量。表示 1 位用户需要支付 100 美元,基本计划金额为 3000 美元。购买许可证时,客户必须定义​​用户数量,例如 5(因此 5*100=500)+ 3000(基本计划金额)因此,单笔交易的总费用应为 3500 美元。用户数量可能会有所不同。那么如何为这种情况编写 Stripe 代码。

首先,您将创建 100 美元的计划,并根据您的客户当前拥有的用户数量设置 quantity,这样当数量为 5 时,他最终支付 500 美元。您可以更新数量并让 Stripe 处理按比例分配。

然后您将使用 Invoice Items 更改您希望在每个结算周期向客户收取的金额。发票项目会自动添加到客户的下一张发票中,这样您就可以收取 3000 美元 + 500 美元的费用。

然后您将不得不使用 Stripe 的 webhooks 来通知您的 Stripe 帐户中发生的事件。这样您就可以侦听 invoice.created 事件并为此发票创建发票项目以更改向该客户开具的账单金额。

最后,您需要遵循以下步骤:

  • 使用卡片令牌在 Stripe 中创建一个客户。
  • 为第一张发票创建第一个 3000 美元的发票项目,因为默认情况下该发票始终关闭。
  • 按预期 quantity 创建对 100 美元月度计划的订阅。这将自动为之前创建的发票项目开具账单。
  • 每个月,侦听 invoice.created 事件并为 3000 美元创建一个新的发票项目。

有些人发现更容易构建的另一种解决方案是使用订阅的 quantity 参数向每个客户收取不同的金额。例如,您可以创建一个 1 美元的月度计划,并将数量设置为 3100(对于只支付一个用户($3100)的客户)或 3500(对于有 5 个用户的客户($3500))。这在 subscriptions guide.

中也有详细说明