Stripe Checkout支付完成后如何获取买家邮箱及订单ID?
Stripe Checkout支付完成后获取买家邮箱的解决方案
Stripe Checkout跳转回站点感谢页时默认不会直接携带支付相关数据,所以无法直接从超全局变量中读取到买家信息,可通过以下两种方案实现需求:
方案1:通过success_url携带会话ID查询(适合实时渲染感谢页)
- 创建Stripe Checkout会话时,将成功跳转地址配置为带占位符的格式:
https://你的站点域名/thank-you?session_id={CHECKOUT_SESSION_ID},Stripe会在用户支付完成跳转时自动将{CHECKOUT_SESSION_ID}替换为真实的会话ID - 在感谢页的后端逻辑中,先读取URL参数中的session_id值,再调用Stripe服务端接口查询会话详情,即可获取邮箱。参考PHP代码示例:
$stripe = new \Stripe\StripeClient('你的Stripe密钥'); $session = $stripe->checkout->sessions->retrieve($_GET['session_id']); $buyer_email = $session->customer_details->email;
方案2:通过Webhook接收支付完成事件(数据可靠性更高)
- 在Stripe后台配置Webhook端点,开启监听
checkout.session.completed事件 - 用户支付完成后,Stripe会主动向你配置的Webhook地址推送包含完整会话信息的POST请求,直接从请求体的
customer_details.email字段即可读取买家邮箱,你可将该数据存储到自有数据库后,感谢页直接从本地数据库读取数据展示即可
注意:所有调用Stripe接口的操作必须在服务端完成,禁止在前端代码中暴露Stripe密钥。
内容的提问来源于stack exchange,提问作者Иван Апевалов
相关产品推荐
相关产品推荐

