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


Posted in PHP onNovember 12, 2017

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

×tamp=1510210523&nonce=2414550015&signature=30b9eeb6b1134d0a53623375c48ca734c41facb5&echostr=6863786913073725439

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

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

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

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

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

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

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

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

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

$token='请填写你的公众号token';

$timestamp = $_GET[‘timestamp'];
$nonce = $_GET[‘nonce'];
$signature = $_GET[‘signature'];
$array = array($timestamp,$nonce,$token);
sort($array);

//2.将排序后的三个参数拼接后用sha1加密
$tmpstr = implode(”,$array);
$tmpstr = sha1($tmpstr);

//3. 将加密后的字符串与 signature 进行对比, 判断该请求是否来自微信
if($tmpstr == $signature)
{
echo $_GET[‘echostr'];
}
return false;

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

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

以上这篇Thinkphp5 微信公众号token验证不成功的原因及解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
Mar 07 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 PHP
解析php中获取系统信息的方法
Jun 25 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
php+mysql实现数据库随机重排实例
Oct 17 PHP
php实现json编码的方法
Jul 30 PHP
PHP实现获取并生成数据库字典的方法
May 04 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
Jul 09 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
php pdo连接数据库操作示例
Nov 18 PHP
Cookie跨域问题解决方案代码示例
Nov 24 PHP
PHP 断点续传实例详解
Nov 11 #PHP
PHP+AJAX 投票器功能
Nov 11 #PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 #PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 #PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 #PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 #PHP
PHP用函数嵌入网站访问量计数器
Oct 27 #PHP
You might like
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
PHP实现获取文件mime类型多种方法解析
2020/05/28 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
使用js如何实现全选与全不选
2013/12/30 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
Python随机数random模块使用指南
2016/09/09 Python
对于Python深浅拷贝的理解
2019/07/29 Python
Django框架 querySet功能解析
2019/09/04 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
比利时买床:Beter Bed
2017/12/06 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
what is the difference between ext2 and ext3
2015/08/25 面试题
教师实习自我鉴定
2013/12/13 职场文书
十佳班主任事迹材料
2014/01/18 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
企业安全生产责任书
2014/04/14 职场文书
教师批评与自我批评剖析材料
2014/10/16 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
白银帝国观后感
2015/06/17 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
golang中的struct操作
2021/11/11 Golang
JavaScript流程控制(分支)
2021/12/06 Javascript