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

在Next.js项目中嵌入Stripe Checkout遇问题,寻求技术帮助

解决Next.js集成Stripe嵌入式结账表单的Invalid ui_mode value: embedded错误

从你提供的报错来看,核心问题是Stripe Node.js SDK版本过低,因为ui_mode: 'embedded'是Stripe推出的新功能,只有在较新版本的SDK中才支持。以下是具体解决步骤:

  • 升级Stripe SDK到最新版本
    打开项目终端,执行以下命令更新依赖:

    npm install stripe@latest
    

    或者指定最低支持嵌入式结账的版本(需v12.1.0及以上):

    npm install stripe@^12.1.0
    
  • 验证环境变量与密钥
    确保.env文件中的STRIPE_SECRET_KEY是有效的测试/生产密钥,且没有拼写错误。测试环境使用sk_test_前缀的密钥,生产环境使用sk_live_前缀。

  • 修正代码中的转义问题
    你提供的代码里出现了"这类HTML转义字符,实际代码中需要替换为正常的双引号",否则可能导致语法解析异常。修正后的POST请求分支代码示例:

    case "POST":
      try {
        const session = await stripe.checkout.sessions.create({
          ui_mode: 'embedded',
          line_items: [
            {
              price: 'price_1P5p2nIrKwv2F1FvTIPuwNwF',
              quantity: 1,
            },
          ],
          mode: 'payment',
          return_url: `${req.headers.origin}/return?session_id={CHECKOUT_SESSION_ID}`,
        });
    
        res.send({clientSecret: session.client_secret});
      } catch (err) {
        res.status(err.statusCode || 500).json(err.message);
      }
      break;
    

完成以上操作后,重新启动Next.js服务并测试API路由,应该就能正常创建嵌入式结账会话了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:24:58