0

0

从 Stripe 预构建结账页面获取客户数据

霞舞

霞舞

发布时间:2025-09-30 19:50:25

|

1001人浏览过

|

来源于php中文网

原创

从 stripe 预构建结账页面获取客户数据

本文档介绍了如何在使用 Stripe 预构建结账页面后获取客户数据,特别是客户 ID,以便将其存储在数据库中。重点在于利用 Stripe Webhooks 监听 checkout.session.completed 事件,并提供相关文档链接,帮助开发者成功集成和处理客户信息。

使用 Stripe Webhooks 获取客户 ID

Stripe 预构建结账页面简化了支付流程,但有时需要获取客户信息,例如客户 ID,以便在自己的系统中进行管理。由于 Stripe 会自动处理客户的创建,因此需要使用 Webhooks 来获取相关信息。

方法:通过 Webhooks 监听 checkout.session.completed 事件

当用户成功完成结账流程后,Stripe 会触发 checkout.session.completed 事件。我们可以设置 Webhook 来监听此事件,并在事件处理程序中获取客户 ID。

步骤 1:配置 Webhook 端点

首先,需要在 Stripe 控制台中配置一个 Webhook 端点。这个端点是一个 URL,Stripe 会将事件数据以 POST 请求的形式发送到这个 URL。

  1. 登录 Stripe 控制台:https://www.php.cn/link/65b6edfd9f135a6a1dbe075fb82c411f
  2. 导航到 "开发者" -> "Webhooks"。
  3. 点击 "添加端点"。
  4. 输入你的 Webhook URL。
  5. 选择要监听的事件:checkout.session.completed。
  6. 保存配置。

步骤 2:编写 Webhook 处理程序

接下来,需要编写 Webhook 处理程序来接收和处理 checkout.session.completed 事件。以下是一个使用 PHP 的示例:

Zeemo AI
Zeemo AI

一款专业的视频字幕制作和视频处理工具

下载
type == 'checkout.session.completed') {
    $session = $event->data->object;

    // Get the customer ID
    $customer_id = $session->customer;

    // TODO: Store the customer ID in your database
    // Example:
    // $db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
    // $stmt = $db->prepare("INSERT INTO customers (stripe_customer_id) VALUES (?)");
    // $stmt->execute([$customer_id]);

    error_log("Customer ID: " . $customer_id);
}

http_response_code(200); // Acknowledge receipt of the event

代码解释:

  • 首先,引入 Stripe PHP 库并设置 API 密钥。
  • 然后,从请求中获取事件负载和签名,并使用 Stripe Webhook Secret 验证事件的真实性。
  • 如果事件类型是 checkout.session.completed,则从事件数据中提取 customer 字段,该字段包含客户 ID。
  • 最后,将客户 ID 存储到数据库中。

步骤 3:配置 Checkout Session (可选)

如果在创建 Checkout Session 时已经有 Customer ID,可以直接传入:

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

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

$YOUR_DOMAIN = 'mydomain.com';

$customer_id = 'cus_...'; // Replace with your existing customer ID

$checkout_session = \Stripe\Checkout\Session::create([
    'payment_method_types' => ['card'],
    'line_items' => [[
      'price'=>"price_1Jt.....vImqj",
      'quantity'=>1,
    ]],
    'mode' => 'subscription',
    'customer' => $customer_id, // Pass existing customer ID
    'success_url' => $YOUR_DOMAIN . '/success.php',
    'cancel_url' => $YOUR_DOMAIN . '/cancel.html',
  ]);

注意事项:

  • 务必验证 Webhook 事件的签名,以确保事件来自 Stripe,而不是恶意攻击者。
  • 在生产环境中,使用安全的数据库连接和参数化查询,以防止 SQL 注入攻击。
  • 处理 Webhook 事件时,要快速响应,避免长时间阻塞 Stripe 的 Webhook 服务器。如果需要执行耗时操作,可以使用队列或异步任务
  • endpoint_secret 可以在 Stripe 控制台的 Webhook 端点配置中找到。

总结

通过设置 Stripe Webhook 并监听 checkout.session.completed 事件,可以有效地获取使用 Stripe 预构建结账页面创建的客户的 ID。 这使得您可以将 Stripe 的支付功能与自己的数据库和客户管理系统集成,从而实现更完善的业务流程。 记住要验证 Webhook 事件的签名,并安全地存储客户数据。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

1672

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1112

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1015

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

948

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1396

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1227

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1438

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1302

2023.11.13

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

147

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.4万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 771人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号