php 我可以在Session::create中添加一个自定义ID,以便在webhook中检索它吗?

nwnhqdif  于 2023-06-04  发布在  PHP
关注(0)|答案(1)|浏览(94)

基本上,在stripe文档之后,您创建了一个结帐会话

$checkout_session = \Stripe\Checkout\Session::create([
    'line_items' => [[
      'price' => $prices->data[0]->id,
      'quantity' => 1,
    ]],
    'mode' => 'subscription',
    'success_url' => $YOUR_DOMAIN . '/success.html?session_id={CHECKOUT_SESSION_ID}',
    'cancel_url' => $YOUR_DOMAIN . '/cancel.html',
  ]);

用户被重定向到stripe,完成事务,被重定向回网站,webhookevents被触发。
现在在webhook侦听器中,您可以获得有关付款和客户的信息,但我不知道我这边的客户是谁。
那么,我是否可以将一些自定义数据附加到Session::create,以便在服务器上的webhook侦听器中识别哪个用户进行了购买?

km0tfn4u

km0tfn4u1#

您可以在会话创建调用中将metadata对象传递给Stripe,其中包含您想要添加的所有自定义数据,例如数据库的customerId。当webhook被触发时,stripe将发布metadata对象沿着此处列出的其他字段。
所以你的代码应该看起来像

$checkout_session = \Stripe\Checkout\Session::create([
'line_items' => [[
  'price' => $prices->data[0]->id,
  'quantity' => 1,
]],
'mode' => 'subscription',
'success_url' => $YOUR_DOMAIN . '/success.html?session_id={CHECKOUT_SESSION_ID}',
'cancel_url' => $YOUR_DOMAIN . '/cancel.html',
'metadata' => [
      'customerId' => 'some-value'
]
]);

阅读更多

相关问题