如何在Stripe中实现先付1美元的14天付费订阅试用?
实现Stripe自定义首月付费试用+阶梯扣费订阅方案
针对你需要的「首月1美元14天试用,试用结束补扣24美元,后续每月25美元」的需求,Stripe可以通过自定义首期账单金额+账单周期锚点+一次性发票项组合实现,具体操作如下:
1. 创建基础月度订阅计划
先在Stripe后台或通过API创建一个每月25美元的标准订阅计划:
- 产品类型选择「订阅」
- 计费周期设为「每月」
- 金额设为25美元,记录好计划的
price ID(例如price_monthly_25)
2. 处理用户注册时的1美元支付与试用配置
当用户完成注册并添加支付方式后,执行以下操作:
核心逻辑
- 立即向用户收取1美元作为试用准入费
- 将订阅的账单周期锚点设置为当前时间+14天(即试用结束日)
- 创建一个24美元的一次性发票项,绑定到该订阅,指定在账单锚点日期自动扣费
- 后续每个计费周期(从锚点日期开始)自动收取25美元的常规订阅费
示例代码(Node.js)
const stripe = require('stripe')('YOUR_SECRET_KEY'); // 1. 创建Stripe客户(已有客户ID可跳过此步) const customer = await stripe.customers.create({ email: 'user@example.com', payment_method: 'pm_xxxx', // 用户的支付方式ID invoice_settings: { default_payment_method: 'pm_xxxx' } }); // 2. 计算14天后的时间戳作为账单锚点(试用结束日) const billingAnchor = Math.floor(Date.now() / 1000) + 14 * 24 * 60 * 60; // 3. 创建订阅,首期收取1美元 const subscription = await stripe.subscriptions.create({ customer: customer.id, items: [{ price: 'price_monthly_25' }], billing_cycle_anchor: billingAnchor, payment_behavior: 'default_incomplete', // 确保用户先完成1美元支付 collection_method: 'charge_automatically', // 开启自动扣费 // 覆盖首期账单金额为1美元 add_invoice_items: [ { price_data: { currency: 'usd', unit_amount: 100, // 1美元(单位为分) product: 'prod_xxxx', // 关联你的产品ID recurring: { interval: 'month' } }, quantity: 1, // 标记为仅首期收取 subscription_items: [{ id: subscription.items.data[0].id, clear_usage: true }] } ] }); // 4. 创建24美元的一次性发票项,在账单锚点日期扣费 await stripe.invoiceItems.create({ customer: customer.id, amount: 2400, // 24美元(单位为分) currency: 'usd', subscription: subscription.id, proration_date: billingAnchor // 指定扣费日期为账单锚点日 });
3. 流程验证
- 8月1日注册:Stripe立即生成首期账单并收取1美元,订阅状态为
active,账单锚点设为8月15日 - 8月15日:Stripe自动生成包含24美元一次性项的账单,完成扣费后,订阅进入正常月度周期
- 9月15日及以后:每月自动生成25美元的订阅账单并扣费
4. 关键注意事项
- 支付失败处理:需监听Stripe的
invoice.payment_failedwebhook事件,及时处理用户扣费失败的情况(比如发送提醒、暂停服务等) - 账单历史查看:可在Stripe后台的「客户-订阅-账单」中查看每个阶段的扣费记录,验证流程是否正确
- 合规性:确保在用户注册时清晰告知扣费规则(1美元试用、14天后补扣24美元、后续每月25美元),符合当地支付法规
内容的提问来源于stack exchange,提问作者Krishna Kanabar
相关产品推荐
相关产品推荐

