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

如何预填充Stripe结账页面shipping address?参数报错求助

解决Stripe结账页面收货地址预填充失败的问题

你遇到的“未知参数”错误,根源是预填充收货地址的参数名不符合Stripe API规范,而且当前代码里完全没加入预填充收货地址的相关配置。

正确的预填充配置方式

Stripe Checkout Session支持通过shipping字段预填充收货地址,参数名必须严格遵循API要求,以下是修正后的关键代码:

$checkout_session = \Stripe\Checkout\Session::create([
  "mode" => "payment",
  "locale" => "auto",
  "customer_email" => $email,
  "line_items" => $line_items,
  "billing_address_collection" => "required",
  "shipping_address_collection" => [
    "allowed_countries" => ["IN"],
  ],
  // 新增收货地址预填充配置
  "shipping" => [
    "name" => $name,
    "phone" => $number,
    "address" => [
      "line1" => $addressl1,
      "line2" => $addressl2,
      "city" => $city,
      "state" => $state,
      "postal_code" => $postalcode,
      "country" => $country
    ]
  ],
  "metadata" => [
    "name" => $name,
    "email" => $user_email,
    "phone" => $number,
  ]
]);

重要注意点

  • 确保$country的值是ISO 3166-1 alpha-2格式的两位代码(比如印度是IN),不能用国家全称或其他格式。
  • 确认$_SESSION['billing_details']里的各个字段都有有效值,避免传递空值导致预填充失效。
  • shipping字段仅在shipping_address_collection配置为required或auto时生效,你当前的配置符合要求。

内容的提问来源于stack exchange,提问作者6454_Hassan Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:48:12