【问题标题】:Stripe PHP checkout API : Error: Exception: Received unknown parameter: shippingStripe PHP结帐API:错误:异常:收到未知参数:运输
【发布时间】:2020-11-06 12:59:43
【问题描述】:

我正在尝试将运输详细信息传递给构建的结帐会话:

\Stripe\Checkout\Session::create

但我得到了这个错误:

Breaking news… Error:   Exception: Received unknown parameter: shipping (in /myserver/stripe-php/lib/Exception/ApiErrorException.php line 38)   

除了那部分之外,该过程正常工作。即使我通过 "shipping" => null 它也不会给出错误。

在 API 参考中,它只是将“运输”数据数组显示为可选属性。

这是我传递给 session::create 的完整数组

 [billing_address_collection] => required
    [payment_method_types] => Array
        (
            [0] => card
        )
[line_items] => Array
    (
        [0] => Array
            (
                [price_data] => Array
                    (
                        [currency] => eur
                        [product_data] => Array
                            (
                                [name] => MEMBER 004: Dark Storm
                                [description] => sizes:'S-M'
                                [images] => Array
                                    (
                                        [0] => http://mywebsite.com/image.jpg
                                    )

                            )

                        [unit_amount] => 1995
                    )

                [quantity] => 1
            )

    )

[mode] => payment
[success_url] => http://mywebsite.com/succes/
[cancel_url] => http://mywebsite.com/cancel/
[shipping_address_collection] => Array
    (
        [0] => ES
    )

[shipping] => Array
    (
        [address] => Array
            (
                [city] => Barcelona
                [country] => ES
                [line1] => Street name 81
                [line2] => 12
                [postal_code] => 09028
                [state] => Catalunya
            )

        [name] => My name
    )

[customer_email] => myname@gmail.com

)

【问题讨论】:

  • 在黑暗中拍摄,您是否尝试过设置shippable(布尔值)属性 - 此产品是否为已发货商品。仅适用于type=good的产品。
  • 我试过了,它给了我这个错误:异常:收到未知参数:可发货,发货

标签: php stripe-payments


【解决方案1】:

您不会将送货地址传递到这样的结帐会话中。它不是create endpoint 的参数。当您使用 shipping_address_collection parameter 时,会话对象的 shipping attribute 将填充客户送货地址,正如我在您的示例中看到的那样。

因此,您需要删除无效的shipping 参数,然后检查结果。

【讨论】:

  • 那么,您的意思是我无法在进入结帐条带托管页面之前收集运输信息?我只是将 shipping_adress_collection 放在那里检查是否可以解决它,但实际上我不需要指定哪些国家/地区可以在我的情况下有效运输。
  • 如果您已经收集了送货信息,则无需使用 Checkout 的送货地址收集。您可以完全不使用它,或者将其放在预先存在的customer 地址(如果您正在使用),或者将其存储在您自己的系统中,以便在付款后发货。
  • 我的想法是将所有敏感数据存储在 Stripe 中,因为我使用的是一个非常基本的 CMS 用于使用 Stripe 的网站,所以我的客户只需要检查 Stripe 内的购买/运输订单。但在进入 Stripe 结账页面计算运费之前,我需要知道运费信息,(我的客户对全球运费的标准非常复杂)
  • 在这种情况下,我建议创建一个客户并将送货地址放在那里,然后为该现有客户提供结帐会话。 stripe.com/docs/api/customers/create#create_customer-addressstripe.com/docs/api/checkout/sessions/…
  • 如果有人最终遇到同样的问题,我最终会询问用户它的运输国家(在我的网站方面)分配运输成本,然后只需在 Stripe 结帐页面中与国家/地区收集运输地址已分配,因此不显示字段国家/地区。
猜你喜欢
  • 2019-09-20
  • 2019-09-10
  • 2019-03-16
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 2021-08-28
相关资源
最近更新 更多