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

使用Node.js+Express集成Stripe创建会话时遇API版本错误

Stripe Checkout API版本适配问题解决(Node.js/Express)

你的错误是因为Stripe API新版本(2022-08-01及以后)不再支持直接在line_items中定义name、amount等字段,必须改用price_data动态生成价格,或者使用预先在Stripe后台创建的Price对象ID。

方案1:使用price_data动态生成价格(推荐用于动态定价场景)

将原line_items中的商品信息嵌套到price_data.product_data下,同时调整字段名并添加必填的mode参数:

const session = await stripe.checkout.sessions.create({
    payment_method_types: ['card'],
    success_url: `${req.protocol}://${req.get('host')}/`,
    cancel_url: `${req.protocol}://${req.get('host')}/tour/${tour.slug}`,
    customer_email: req.user.email,
    client_reference_id: req.params.tourId,
    line_items: [
      {
        quantity: 1,
        price_data: {
          currency: 'usd',
          unit_amount: tour.price * 100, // 原amount字段改为unit_amount
          product_data: {
            name: `${tour.name} Tour`,
            description: tour.summary,
            images: [`https://www.natours.dev/img/tours/${tour.imageCover}`],
          },
        },
      },
    ],
    mode: 'payment', // 必填:指定付款模式(一次性付款用payment,订阅用subscription)
});

方案2:使用预先创建的Price ID(适合固定价格商品)

如果你的旅游产品价格固定,可以先在Stripe后台创建对应的Product和Price对象,然后直接引用Price ID:

const session = await stripe.checkout.sessions.create({
    payment_method_types: ['card'],
    success_url: `${req.protocol}://${req.get('host')}/`,
    cancel_url: `${req.protocol}://${req.get('host')}/tour/${tour.slug}`,
    customer_email: req.user.email,
    client_reference_id: req.params.tourId,
    line_items: [
      {
        quantity: 1,
        price: 'price_123456789', // 替换为你在Stripe后台生成的Price ID
      },
    ],
    mode: 'payment',
});

关键修改点说明

  • 原line_items下的name/description/images必须移至price_data.product_data中
  • 原amount字段更名为unit_amount,并放在price_data层级下
  • 新增mode参数:Stripe Checkout新版本要求明确指定付款模式,可选值为payment(一次性付款)、subscription(订阅)、setup(仅保存支付方式)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:25:47