Stripe 支付网关:按月订阅升级为按年订阅时出现问题 - 订单摘要计算

问题描述 投票:0回答:1

我正在开发一个订阅支付系统,用户可以从包月套餐升级到包年套餐。我面临的挑战涉及当用户在购买月度套餐几天后决定升级时正确计算订单摘要。我想确保最终金额准确反映月度计划的剩余天数和年度计划的全部费用。

示例:-

  • 用户最初购买包月套餐并支付每月全额费用。
  • 5天或10天后,用户决定升级到包年套餐。
  • 付款前,我会向用户显示订单摘要。
  • 在订单汇总中,我需要在调整信用金额后显示正确的金额。

在 Stripe 支付网关上是否有任何选项,我可以在其中发送一些信息,Stripe 会在付款之前向我提供所有完整的订单摘要,例如

Monthly Plan (Remaining Days): $xxx
Annual Plan (12 months): $xxx
Total Credit from Monthly: $xxx
Total Amount for Upgrade: $xxx

我很感激任何可以帮助我有效实现此升级逻辑的见解或代码示例或参考链接。

谢谢!

laravel stripe-payments payment-gateway laravel-cashier
1个回答
0
投票

Stripe 订阅支持按比例分配。根据您的情况,您可以将订阅更新为年度价格并将按比例设置为无

假设您已使用以下请求创建了每月订阅:

const subscription = await stripe.subscriptions.create({
      customer: customerId,
      items: [{
        price: monthlyPrice,
      }],
      payment_behavior: 'default_incomplete',
      payment_settings: { save_default_payment_method: 'on_subscription' },
      expand: ['latest_invoice.payment_intent'],
});

一段时间(几天)后,您希望将客户升级到年度订阅,而不为当月创建按比例分配并收取明年的全额费用:

 const subscription = await stripe.subscriptions.update(subscriptionId, {
      items: [{
        price: annualPrice,
      }],
      proration_behavior: 'none'
 });

您可以使用 Stripe 测试时钟来测试此场景,您可以在其中创建模拟并提前时间。

© www.soinside.com 2019 - 2024. All rights reserved.