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

Stripe Checkout:含试用期订阅加即时额外付费配置报错及可行性咨询

解决方案:在单个Stripe Checkout Session实现试用订阅+即时额外付费

可以在同一个Checkout Session里完成你的需求,无需拆分多个Session。问题出在你误用了仅支持直接创建订阅API的add_invoice_items参数,Checkout Session有专门的方式处理一次性即时收费:

核心思路

把额外席位的费用作为一次性收费的商品项加入Checkout Session的line_items中,和带试用期的订阅项并列。Stripe Checkout会自动处理:

  • 主订阅项:进入30天试用期,试用期内不扣费
  • 一次性额外席位费用:用户完成Checkout时立即收取

修正后的PHP代码示例

// 假设$subscription_price是带30天试用的4席位订阅价格ID
// $one_time_seat_price是额外席位的一次性收费价格ID(需提前在Stripe后台创建)
$session = $client->checkout->sessions->create([
    'success_url' => config('front.public_url').'/payment?stat=ok',
    'cancel_url' => config('front.public_url').'/payment?stat=cancel',
    'line_items' => [
        // 主订阅项:4席位,30天试用
        [
            'price' => $subscription_price->id,
            'quantity' => 1,
        ],
        // 额外席位的一次性收费项:这里示例是1个额外席位,按需调整quantity
        [
            'price' => $one_time_seat_price->id,
            'quantity' => 1,
        ],
    ],
    'mode' => 'subscription',
    'subscription_data' => [
        'trial_period_days' => 30,
        'trial_settings' => [
            'end_behavior' => ['missing_payment_method' => 'pause']
        ],
        // 移除不支持的add_invoice_items参数
    ],
]);

关键注意事项

  • 额外席位的价格必须创建为一次性价格(One-time),不能是订阅型价格,否则会被当作循环收费处理
  • 用户完成Checkout后,Stripe会自动生成:
    • 一个处于试用期的订阅(对应4席位基础服务)
    • 一笔已支付的一次性发票(对应额外席位费用)
  • 全程无需你收集用户银行信息,所有支付流程由Stripe托管完成

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:07:32