我正在构建一个结帐页面,用户可以在其中注册 100 美元/月的产品。然而,当用户注册时,他们必须预付前两个月的费用,并且必须随着时间的推移按比例分配。前 2 个月后,我们将要求他们每月支付 100 美元。 例如:
我看过有关订阅计划的信息,但我不知道如何配置阶段以满足上述要求。
我尝试了这里的解决方案。 如何实现三个月预付款的条纹订阅 但不能根据第一个月的时间费率来计算。
第 0 步:创建测试时钟和/或客户(如有必要)
const testClock = await stripe.testHelpers.testClocks.create({
frozen_time: Math.floor(+new Date() / 1000),
});
const customer = await stripe.customers.create({
description: 'test clock customer',
email : '[email protected]',
test_clock: testClock.id,
payment_method: 'pm_card_amex_threeDSecureNotSupported',
invoice_settings : {
default_payment_method : 'pm_card_amex_threeDSecureNotSupported'
}
});
第 2 步:创建 2 个月价格的订阅,并将
billing_cycle_anchor
设置为 2024 年 3 月 1 日
const subscription = await stripe.subscriptions.create({
customer: customer.id,
items: [
{price:'price_A'} // USD $200 for 2 months
],
payment_behavior : 'allow_incomplete',
billing_cycle_anchor : 1709251200 // 1 Mar 2024
}
);
console.log(subscription);
第 3 步:成功完成订阅首次付款后,您将为订阅创建订阅计划
const schedule = await stripe.subscriptionSchedules.create({
from_subscription: subscription.id,
});
console.log(schedule);
第 4 步:更新订阅计划,于 2024 年 3 月 1 日更改为 1 个月价格
const subscriptionSchedule = await stripe.subscriptionSchedules.update(
schedule.id, {
phases:[
{
start_date : schedule.phases[0].start_date,
end_date : schedule.phases[0].end_date,
items: [{
price: 'price_A' // USD $200 for 2 months
}]
},
{
items: [{
price: 'price_B' // USD $100 for 1 months
}]
}
]
}
);
console.log(subscriptionSchedule);
提前测试时钟以查看其充电情况