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

如何仅传入订单总价创建Stripe Checkout Session无需提前在Stripe录入商品

实现方案说明

完全可以实现无需提前在Stripe后台录入商品,仅传入订单总价即可创建Checkout Session的需求,Stripe原生支持自定义临时商品的支付创建模式,不需要和Stripe侧的商品库做绑定。

核心实现逻辑

创建Checkout Session时,不需要在line_items参数中传入Stripe后台预生成的价格ID,而是直接传入price_data字段,在该字段内自定义本次支付对应的商品信息、金额即可,参考Node.js示例代码如下:

const session = await stripe.checkout.sessions.create({
  payment_method_types: ['card'],
  mode: 'payment',
  success_url: 'https://你的商城域名/支付成功回调页?session_id={CHECKOUT_SESSION_ID}',
  cancel_url: 'https://你的商城域名/支付取消页',
  line_items: [
    {
      price_data: {
        currency: 'cny', // 可根据你的业务需求更换对应货币单位
        product_data: {
          name: '商城订单合计', // 也可传入自定义的订单号、商品组合名称等信息
        },
        unit_amount: 19900, // 对应订单总价的最小货币单位,例:199元人民币需填19900(Stripe默认以分为单位)
      },
      quantity: 1,
    }
  ],
});

支付成功后业务流程对接

支付完成后可以选择两种方式触发后续业务逻辑:

  • 前端跳转success_url时,获取URL携带的session_id参数,调用Stripe接口查询对应Session的支付状态,若状态为paid即可执行自有订单系统的状态更新、发货等后续流程
  • 更安全的方案是配置Stripe webhook监听checkout.session.completed事件,Stripe会主动推送支付成功的通知到你的服务端接口,校验通知签名合法后即可执行后续业务逻辑,该方式可以避免前端伪造支付成功状态的问题

如果是做支付模拟测试,直接使用Stripe官方测试卡号4242 4242 4242 4242,有效期填任意未来时间,CVV填任意3位数字即可模拟支付成功场景,不会产生真实资金流动。

注意事项

  • 该模式下所有商品定价、库存校验逻辑完全由你自有数据库控制,不需要做两边商品数据同步,适合小型项目快速上线
  • 传入金额时务必转换为对应货币的最小单位,比如人民币、美元默认以分为单位,日元以元为最小单位,避免金额计算错误
  • 如果订单包含多个商品,也可在line_items中传入多个price_data条目,分别填写每个商品的名称、单价、数量,Stripe会自动汇总总金额,无需你手动计算求和

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:15:05