我正在与Stripe Payment Gateway(API的最新版本)集成。
所有工作都与'client_reference_id'无关,不会传递给Webhook或事务(不会出现在日志中)-我需要这样做来更新数据库中的订单。
我的代码是:
$session = \Stripe\Checkout\Session::create([
'billing_address_collection' => 'required',
'payment_method_types' => ['card'],
'line_items' => [[
'amount' => 1011,
'currency' => 'GBP',
'name' => 'Purchase',
'description' => 'test',
'quantity' => 1,
]],
'client_reference_id' => 'TEST1111223',
'mode' => 'payment',
'success_url' => 'https://example.com/success',
'cancel_url' => 'https://example.com/cancel'
]);
根据文档,应将其传递:https://stripe.com/docs/api/checkout/sessions/create
我做错什么了吗?
其他人问了同样的问题,但没有得到回答:The "client_reference_id" argument is not passed
答案 0 :(得分:0)
引用Checkout会话的唯一字符串。这可以是客户ID,购物车ID或类似名称。它包含在checkout.session.completed Webhook中,可用于完成购买。
答案 1 :(得分:0)
我做了一些挖掘,我想我知道发生了什么事。您的客户参考还不错,但是您可能不会同时收听这两个Web钩子(例如,如果您使用的是Stripe Connect,则两个钩子上都可能收到欺骗性的事件)。
我会为该客户引用使用真正唯一的ID,这样一来您就不会出现内容混合的情况。该v4功能的运行非常出色。
auth_token