美文网首页
PHP7.0+ 微信服务器配置出现"token 验证失败"解决方

PHP7.0+ 微信服务器配置出现"token 验证失败"解决方

作者: 我的电脑_8259 | 来源:发表于2019-02-12 01:32 被阅读0次

近期,公司更换业务域名,旗下公众号,小程序,微信支付关联的旧域名都需要更换成新域名。

在配置到微信服务器的时候一直提示 “token 验证失败”,于是通过

在线接口 【https://mp.weixin.qq.com/debug】调试检查了一遍,发现并没有错误提示

说实话微信的错误提示实在太笼统,没办法。只能从头开始排查

1,先测试下微信发来的验证消息是否顺利到达服务器 

我的PHP版本是 7.0.7,所以用的是file_get_contents("php://input")获取的原始流信息,打印到了request.log日志里。

点击验证,查看日志,空空如也,之前的业务一直都是这样截取数据的不应该为空呀。

于是继续翻看开发文档,发现一条重要的信息【提交验证时,微信服务器发送的是GET请求而非只读流数据】,所以file_get_content("php://input") 是获取不了验证信息的。

于是有了对应的解决方案,把file_get_content("php://input")改成$_SERVER['QUERY_STRING']

点击提交,验证成功,日志也有了内容。

以为就此完事就想的简单了,验证完TOKEN后 $_SERVER['QUERY_STRING'] 就失效了,需要替换成 file_get_content("php://input") ,才能获取正常数据流进行操作,这也是开发者容易掉坑里的地方。

吐槽:微信爸爸不能把验证token和正常业务请求合并成一种请求方式吗?即使不能,也给个文档提示下呗,这完全是摸石头过河,难受至极,于是有了这篇文章,希望后来者不再被这个不大不小的坑绊倒

相关文章

网友评论

      本文标题:PHP7.0+ 微信服务器配置出现"token 验证失败"解决方

      本文链接:https://www.haomeiwen.com/subject/hxtheqtx.html