如何从 stripe prebuilt checkout 获取客户数据

How to get customer data from stripe prebuilt checkout

我正在尝试在我的网站上集成 stripe 预建结帐功能。它成功地在我的条纹门户上添加了客户和付款。我需要的是获取客户详细信息(客户 ID),以便我可以将其添加到 mysql 数据库 table。作为其预建的结帐表单,stripe 使用交易提供的电子邮件自动添加客户。这是我的代码

\Stripe\Stripe::setApiKey('sk_test_51J...........esLwtMQx7IXNxp00epljtC43');

header('Content-Type: application/json');

$YOUR_DOMAIN = 'mydomain.com';

$checkout_session = \Stripe\Checkout\Session::create([
    'payment_method_types' => ['card'],
    'line_items' => [[
      'price'=>"price_1Jt.....vImqj",
      'quantity'=>1,
    ]],
    'mode' => 'subscription',
    // 'success_url' => $YOUR_DOMAIN . '/success.html?session_id={CHECKOUT_SESSION_ID}',
    'success_url' => $YOUR_DOMAIN . '/success.php',
    'cancel_url' => $YOUR_DOMAIN . '/cancel.html',
  ]);

您可以在创建结帐会话时传入现有的客户 ID:https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session-customer。如果 customer 为支付或订阅模式下的 Checkout Session 留空,Checkout 将根据支付流程中提供的信息创建一个新的 Customer 对象。

要获取成功结帐会话的客户 ID,您需要设置网络钩子来侦听 checkout.session.completed 事件。

您可以参考这些文档来了解如何设置 webhooks :