准备工作
-
获取服务器信息
$token = "YOUR_TOKEN";
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$echostr = $_GET["echostr"];
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$hashCode = sha1($tmpStr);
if ($hashCode == $signature) {
echo $echostr;
exit;
}
常见问题与解决方案
-
验证失败
- Token不一致:检查代码与后台填写的Token是否完全匹配。
- URL编码问题:确保接口地址不含特殊字符(如空格需转为
%20
)。 - 服务器超时:公众平台验证请求的超时时间为3秒,需优化代码响应速度。
-
消息加解密异常
- 使用官方提供的加解密库(如微信的
WXBizMsgCrypt
)。 - 检查EncodingAESKey是否为43位有效字符。
- 使用官方提供的加解密库(如微信的
-
后续消息推送失败
- 确保服务器处理POST请求后返回HTTP 200状态码。
- 日志记录:建议记录每次请求的原始数据,便于排查问题。
注意事项
- 定期检查配置:若服务器IP或接口路径变更,需及时更新配置。
- 安全加固:
- 启用HTTPS并配置SSL证书(推荐使用Let’s Encrypt免费证书)。
- 限制IP白名单(如公众平台的服务器IP需加入防火墙白名单)。
- 兼容性测试:升级服务器或代码后,使用测试号验证功能是否正常。
参考资料
- 微信公众平台开发文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
- 企业微信服务器配置指南:https://work.weixin.qq.com/api/doc/90000/90135/90930