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

如何将Stripe使用的price_id替换为数据库中已存储的price_id

实现步骤

  • 首先对查询得到的$price_id做有效性校验,避免数据库中不存在对应slug的price_id时,向Stripe传递无效参数触发报错
  • 直接替换Stripe会话创建代码中line_items下price字段的硬编码值为$price_id变量即可

完整示例代码

// 从数据库查询price_id
$price_id = DB::table('products')->where('slug', $this->slug)->value('price_id');

// 校验price_id有效性
if (empty($price_id)) {
    // 这里可以根据你的业务逻辑做异常处理,比如抛出错误、跳转回商品页等
    abort(404, '对应商品的支付配置不存在');
}

// 创建Stripe Checkout会话
$session = \Stripe\Checkout\Session::create([
    'success_url' => 'https://example.com/success',
    'cancel_url' => 'https://example.com/cancel',
    'payment_method_types' => ['card'],
    'line_items' => [
        [
            'price' => $price_id, // 已替换为数据库查询的变量
            'quantity' => 1,
        ],
    ],
    'mode' => 'payment',
    // 其他你需要的配置参数
]);

注意事项

  • 请确保你的数据库中存储的price_id是对应Stripe后台有效、未删除的价格ID,否则Stripe会返回无效价格的报错
  • 如果你的业务支持多货币、多规格商品,查询条件可以额外增加对应维度的过滤,确保拿到的是当前场景对应的price_id

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:57:00