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

NextJS集成Stripe Checkout时recurring price在payment模式下报错如何解决

Stripe Checkout模式与价格类型不匹配问题解决方案

核心报错原因

You specified payment mode but passed a recurring price. Either switch to subscription mode or use only one-time prices.

报错本质是Stripe Checkout的mode参数配置,和line_items中传入的price类型不对应:

  • mode: 'payment' 仅支持一次性消费的价格
  • mode: 'subscription' 仅支持周期性订阅的价格

代码问题点

你当前代码中price: 1是错误写法,Stripe的价格ID不是数字自增ID,是你在Stripe后台创建产品/价格时生成的字符串格式ID,格式通常为price_xxxxxx。你传入的数字1大概率匹配到了Stripe账户里的某个订阅类价格,导致和payment模式冲突。

解决步骤

  • 第一步:登录Stripe后台,进入「产品」管理页,确认你要售卖的商品类型:
    • 如果是一次性售卖的商品,创建对应一次性价格,复制它的price ID
    • 如果是周期性订阅的商品,创建对应订阅价格,复制它的price ID
  • 第二步:根据你的业务场景修改代码参数:
    场景1:售卖一次性商品
    替换代码中price: 1为你复制的一次性价格ID,保持mode: 'payment'不变,代码片段参考:
    line_items: [
      {
        // 替换为你的一次性价格ID,格式为price_xxxxxx
        price: 'price_xxxxxxxxx',
        quantity: 1,
      },
    ],
    mode: 'payment',
    
    场景2:售卖订阅类商品
    替换代码中price: 1为你复制的订阅价格ID,同时把mode修改为subscription,代码片段参考:
    line_items: [
      {
        // 替换为你的订阅价格ID,格式为price_xxxxxx
        price: 'price_xxxxxxxxx',
        quantity: 1,
      },
    ],
    mode: 'subscription',
    
  • 第三步:重新部署接口测试即可解决报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:45:02