Laravel集成Stripe结账回调无法获取电话号码问题求助
解决Stripe结账会话手机号收集后回调返回null的问题
- 找对字段路径:手机号并非直接在结账会话根节点下,而是存放在
customer_details对象里。你需要从checkout.session.customer_details.phone获取,示例代码:
// 解析Webhook payload $event = \Stripe\Event::constructFrom($payload); if ($event->type === 'checkout.session.completed') { $session = $event->data->object; // 正确获取手机号的方式 $phoneNumber = $session->customer_details->phone; }
确认Webhook事件类型:必须监听
checkout.session.completed事件,像payment_intent.succeeded这类其他事件不会返回结账环节收集的手机号信息。验证后台数据:登录Stripe后台找到对应结账会话,查看「Customer details」板块是否存在手机号。如果后台也没有,说明结账时输入的手机号格式不符合要求(测试环境要输入对应地区的有效格式,比如+12025550100);如果后台有数据,那就是你代码里的字段获取路径错误。
排查会话配置冲突:创建结账会话时如果指定了
customer参数关联已有客户,要确认该客户没有被设置为禁止修改联系方式,否则新收集的手机号不会覆盖原有数据。
内容的提问来源于stack exchange,提问作者Masofke
相关产品推荐
相关产品推荐

