当前位置:首页 > CMS教程 > Thinkphp > 列表

Thinkphp5 微信公众号token验证不成功的原因及解决方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-19 10:15:36 浏览: 评论:0 

下面小编就为大家带来一篇Thinkphp5 微信公众号token验证不成功的原因及解决方法,小编觉得挺不错的,现在就分享给大家,也给大家做个参考,一起跟随小编过来看看吧。

最近要启动微信项目,上个月就开始了解微信的开发,这个月要启动项目,配置微信公众号信息一直失败。为此,我甚至手工写了微信提交过来的记录,如:

&timestamp=1510210523&nonce=2414550015&signature=30b9eeb6b1134d0a53623375c48ca734c41facb5&echostr=6863786913073725439

我眼睛看着验证信息没错,输出的echostr跟get提交来的一模一样,但是还是会出错,忍无可忍,一直无法搞定。

自己做开发也算基本上路了,还在这种坑吃亏,有点不服,最后查看日志,一点点搞定。

以下是我解决问题的办法:

1.网上有人说是header要设置utf-8,我也设置了,不行;

2.有人说可能是没有日志写入权限,导致信息能正常,但是页面代码不正常,打开console,发现,网页头显示500,麻蛋,这是服务器错误啊。

估计是腾讯一旦判断到你的500代码,就不继续了。

最后检查,发现是自己的服务器日志目录权限不足,无法写入日志!

就是这个原因,导致我浪费很多小时。

最后,我把验证微信公众号的token分享给各位兄弟,希望大家不要踩坑。

  1. $token='请填写你的公众号token'
  2.  
  3. $timestamp = $_GET[‘timestamp']; 
  4. $nonce = $_GET[‘nonce']; 
  5. $signature = $_GET[‘signature']; 
  6. $array = array($timestamp,$nonce,$token); 
  7. sort($array); 
  8.  
  9. //2.将排序后的三个参数拼接后用sha1加密 
  10. $tmpstr = implode(”,$array); 
  11. $tmpstr = sha1($tmpstr); 
  12.  
  13. //3. 将加密后的字符串与 signature 进行对比, 判断该请求是否来自微信 
  14. if($tmpstr == $signature
  15. echo $_GET[‘echostr']; 
  16. return false; 

另外,提醒各位兄弟,配置信息再微信测试号配置会好些,即便错了也不用每次都扫描二维码,累死人。

微信测试号地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

Tags: Thinkphp5微信公众号 token

分享到: