每次数量更新时立即支付条纹

The*_*ous 3 stripe-payments

我们使用 Stripe 作为支付网关,我们有一个年度计划,即计划的计费周期为 1 年。

在计费周期内,用户可以更新选择更多席位,这将导致订阅计划的数量增加。

Subscription subscription = Subscription.retrieve(paymentDetails.getSubscriptionId());
int currentQuentity = subscription.getQuantity();
Map<String, Object> updateParams = new HashMap<String, Object>();
updateParams.put("quantity", (currentQuentity + changeInQuantity));
subscription.update(updateParams);
Run Code Online (Sandbox Code Playgroud)

因此,对于任何更新条带退款(如果数量减少)和费用(如果数量增加)在计费周期结束时按比例分配。

在我们的业务逻辑中,我们需要在每次数量更新时立即付款(收费或退款),而不是在计费周期结束时。有没有办法在条纹中实现这一点。

dea*_*ina 5

我花了很多时间试图解决这个问题,我希望我可以节省其他人的时间。要收取更改数量或订阅计划的费用,您需要执行以下操作:

  1. 使用新的更改更新订阅。
  2. 创建发票。让我困惑的是,Stripe 神奇地知道只为更新的订阅项目开具发票,而不是为即将到来的计费周期项目开具发票。

  3. 检索新创建的发票

  4. 完成发票
  5. 收取发票付款这假设您的客户已存储付款方式。

仅当完成所有步骤后,您才成功对订阅更改收取费用(并且仅对更改收取费用)。您可以一次性完成所有这一切。客户最后应该会收到来自 Stripe 的发票电子邮件。

对我来说,让事情变得复杂的是,从文档中阅读,我得到的印象是,只要订阅设置为 .Stripe 就会自动为我完成所有这一切"billing": "charge_automatically"事实并非如此,在 Stripe 的辩护中,他们在与升级和降级计划相关的文档页面底部提到了这一点:

如果您希望客户在同一计费周期切换到更昂贵的计划时立即支付差价,您需要在切换后生成发票。