Stripe PHP SDK创建Session报错:未知参数payment_link及试用咨询
问题解决:Stripe Checkout Session 中
payment_link 参数报错及试用期设置方法 为什么会出现「Received unknown parameter: payment_link」错误
你混淆了payment_link参数的用途:这个字段是当Checkout Session由Payment Link生成时,Stripe返回的Session对象里的属性,用来标识该Session关联的Payment Link。反过来,创建Session时不能主动传入payment_link参数,这就是报错的核心原因。
实现需求的两种方案
方案1:直接使用已有的Payment Link跳转
如果你的Payment Link已经配置好试用期和其他规则,且不需要额外定制Session的话,直接重定向到Payment Link的官方URL即可,无需创建新的Checkout Session:
// 替换为你的Payment Link实际URL return redirect()->away('https://checkout.stripe.com/pay/plink_1111');
方案2:在Checkout Session中直接配置试用期
如果必须通过创建Session来实现需求,可以直接在Session里设置试用期规则,不需要依赖Payment Link的配置:
- 若你的
price_1111已经在Stripe后台配置了试用期,创建Session时只要引用这个价格,订阅模式下会自动继承试用期规则 - 若需要在Session中覆盖或新增试用期设置,添加
subscription_data参数即可:
$session = \Stripe\Checkout\Session::create([ 'line_items' => [ [ 'price' => 'price_1111', 'quantity' => 1, ], ], 'mode' => 'subscription', 'allow_promotion_codes' => true, 'success_url' => env('APP_URL').'/x4/success/st?success={CHECKOUT_SESSION_ID}', 'cancel_url' => route('billing'), // 可选:覆盖price默认设置,自定义试用期天数 'subscription_data' => [ 'trial_period_days' => 7, // 示例:设置7天试用期 ], ]); return redirect()->away($session->url);
额外注意事项
- 确保你的Stripe PHP SDK是最新版本:旧版本可能不支持部分新参数,执行
composer update stripe/stripe-php即可升级 - 只有
subscription订阅模式支持试用期配置,payment一次性付款模式不支持该功能
内容的提问来源于stack exchange,提问作者astrakid932
相关产品推荐
相关产品推荐

