通过Webhook无法接收WhatsApp App消息,但Curl请求正常
排查WhatsApp App消息无法触发Webhook的建议
验证Webhook端点的公网可达性
WhatsApp服务器需要能正常访问你的Webhook地址,需确认:- 服务器具备公网IP,且Webhook使用的端口(默认443,自定义端口需同步在API控制台配置)未被防火墙、安全组拦截
- Webhook必须使用HTTPS协议,且证书为正规CA签发(自签名证书不被WhatsApp认可),可通过在线工具测试地址的可访问性
检查Webhook的订阅事件配置
登录WhatsApp Business API控制台,确认已订阅messages核心事件,同时核实Webhook配置已关联到目标业务号码,避免出现配置对象错误的情况查看WhatsApp Business API的日志
在控制台日志模块筛选Webhook相关记录:- 确认是否存在WhatsApp服务器向你的Webhook发送请求的记录,若有则检查返回状态码是否为200(WhatsApp要求收到消息后必须返回200,否则会重试几次后停止推送)
- 若无请求记录,说明WhatsApp服务器未触发推送,需重点排查号码关联或事件订阅的有效性
确认消息发送方的号码格式
确保WhatsApp App发送消息的号码为完整国际格式(如+1234567890),且已正确添加到允许列表,允许列表内的号码不能包含空格或特殊符号测试Webhook的原始接收逻辑
临时修改Webhook代码,将所有接收到的请求(包括请求头、请求体)完整写入日志,发送消息后查看日志:- 若无任何记录,说明请求未到达服务器,重点排查网络链路和API控制台配置
- 若有记录但未触发自动回复,再检查消息解析逻辑是否存在问题
检查Webhook的签名验证逻辑
若代码中实现了WhatsApp签名验证,需确认:- 使用的是API控制台提供的正确验证令牌
- 签名计算算法(
HMAC-SHA256)的实现无错误,避免因验证失败导致请求被丢弃
内容的提问来源于stack exchange,提问作者Nicholas Tomic
相关产品推荐
相关产品推荐

