我正在开发一个订阅支付系统,用户可以从包月套餐升级到包年套餐。我面临的挑战涉及当用户在购买月度套餐几天后决定升级时正确计算订单摘要。我想确保最终金额准确反映月度计划的剩余天数和年度计划的全部费用。
示例:-
在 Stripe 支付网关上是否有任何选项,我可以在其中发送一些信息,Stripe 会在付款之前向我提供所有完整的订单摘要,例如
Monthly Plan (Remaining Days): $xxx
Annual Plan (12 months): $xxx
Total Credit from Monthly: $xxx
Total Amount for Upgrade: $xxx
我很感激任何可以帮助我有效实现此升级逻辑的见解或代码示例或参考链接。
谢谢!
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 测试时钟来测试此场景,您可以在其中创建模拟并提前时间。