You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Stripe活跃订阅中的新增订单项设置免费试用期?

解决Stripe活跃订阅新增订单项并设置单独试用期的方案

核心逻辑说明

Stripe订单项本身没有独立的trail_end字段,后台面板给计划设置的试用期仅对新创建的订阅生效,对已活跃订阅的新增项不产生作用。要实现单个订单项的免费试用,需要结合发票项或优惠券逻辑,同时保证原有订阅项不受影响。

方法一:预生成发票项+订阅锚点配置(精确控制试用时长)

适合需要指定固定试用周期(如30天)的场景:

  • 先创建待处理发票项,指定试用期间的免费周期,金额设为0,绑定到目标订阅;
  • 更新订阅时添加正式订单项,设置billing_cycle_anchor为试用结束时间,确保试用后自动按正常费率计费,同时关闭 prorate 避免额外费用。

代码示例(Node.js):

const stripe = require('stripe')('your_secret_key');

// 1. 创建试用期间的免费发票项
await stripe.invoiceItems.create({
  customer: 'cus_XXXXXX',
  subscription: 'sub_XXXXXX',
  price: 'price_XXXXXX', // 新增项对应的计划价格ID
  quantity: 1,
  period: {
    start: Math.floor(Date.now() / 1000),
    end: Math.floor(Date.now() / 1000) + 30 * 24 * 60 * 60 // 30天试用周期
  },
  amount: 0, // 试用阶段免费
});

// 2. 更新订阅,添加正式订单项并设置计费锚点
await stripe.subscriptions.update(
  'sub_XXXXXX',
  {
    items: [
      {
        price: 'price_XXXXXX',
        quantity: 1,
        billing_cycle_anchor: Math.floor(Date.now() / 1000) + 30 * 24 * 60 * 60
      }
    ],
    proration_behavior: 'none', // 避免产生变更计费
    payment_behavior: 'default_incomplete'
  }
);

方法二:定向优惠券覆盖试用费用(快速实现短期试用)

适合快速配置试用的场景:

  • 在Stripe后台创建一次性优惠券,折扣力度设为覆盖新增项试用期间的全部费用,设置有效期为试用时长;
  • 更新订阅添加新订单项时,将优惠券绑定到订阅,并通过applies_to指定仅对新增项的计划价格生效,确保不影响原有订阅项计费。

关键注意事项

  • 后台计划的试用期规则仅适用于新订阅,已活跃订阅的新增项必须手动配置;
  • 所有操作需设置proration_behavior: 'none',防止订阅变更产生额外 prorate 费用;
  • 试用结束后,确保订单项的计费锚点正确,或优惠券到期后自动触发正常计费流程。

内容的提问来源于stack exchange,提问作者Vipul Ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 19:05:30