如何通过前 2 个月按比例分摊的预付款开始 Stripe 订阅

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

我正在构建一个结帐页面,用户可以在其中注册 100 美元/月的产品。然而,当用户注册时,他们必须预付前两个月的费用,并且必须随着时间的推移按比例分配。前 2 个月后,我们将要求他们每月支付 100 美元。 例如:

  • 2024年1月3日注册的用户,需要付费 (3-31)/31) * 第 1 个月剩余 28 天 100 美元,第二个月 100 美元。
  • 从2024年3月1日开始,他们将在每个月初支付100美元才能使用

我看过有关订阅计划的信息,但我不知道如何配置阶段以满足上述要求。

我尝试了这里的解决方案。 如何实现三个月预付款的条纹订阅 但不能根据第一个月的时间费率来计算。

stripe-payments stripes
1个回答
0
投票

第 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);

提前测试时钟以查看其充电情况

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