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

修改Stripe订阅支付脚本:通过PHP变量设置自定义价格

用PHP变量自定义Stripe订阅价格的修改方案

你的现有脚本直接硬编码了Stripe控制台的价格ID,要改成用PHP变量设置自定义价格,需要先创建关联产品的自定义价格,再把这个价格ID传入Checkout Session。以下是修改后的完整代码:

// 可以从前端接收自定义金额,或者直接在后端定义
// $customAmount = $_POST['amount']; // 比如前端传的金额(单位:最小货币单位,如1000代表10美元)
$customAmount = 1500; // 示例:15美元(Stripe要求金额用最小货币单位,人民币则用分)
$currency = 'usd'; // 货币代码,人民币填'cny'

// 创建产品
$product = $stripe->products->create([
  'name' => 'Gold Special',
]);

// 基于产品创建自定义价格,用PHP变量配置金额、货币和订阅周期
$price = $stripe->prices->create([
  'unit_amount' => $customAmount,
  'currency' => $currency,
  'recurring' => ['interval' => 'month'], // 订阅周期可选month/year/week等
  'product' => $product->id,
]);

// 创建Checkout Session,使用刚生成的自定义价格ID
$session = \Stripe\Checkout\Session::create([
  'success_url' => 'https://example.com/success.html?session_id={CHECKOUT_SESSION_ID}',
  'cancel_url' => 'https://example.com/canceled.html',
  'mode' => 'subscription',
  'line_items' => [[
    'price' => $price->id, // 替换为自定义创建的价格ID
    'quantity' => 1,
  ]],
]);

// 跳转至Stripe支付页面
header("HTTP/1.1 303 See Other");
header("Location: " . $session->url);
exit;

关键修改说明:

  • 自定义金额配置:用$customAmount定义订阅价格(注意Stripe金额规则:必须用对应货币的最小单位,比如美元用分、人民币用分),可以从前端POST接收动态值,也可以后端固定设置。
  • 关联产品与价格:Stripe订阅模式要求line_items中的price必须是关联了产品的价格ID,不能直接传入金额,因此新增了创建价格的步骤,用PHP变量配置核心参数。
  • 替换硬编码价格:把原脚本中硬编码的Stripe控制台价格ID,替换为刚创建的$price->id,实现自定义价格的动态生成。
  • 清理无用代码:原脚本中$priceId = '123'无实际作用,若需要从前端接收价格相关参数,可改为接收金额后赋值给$customAmount。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:05:13