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用mysql数据库存储session的代码
Mar 05 PHP
PHP 第二节 数据类型之数组
Apr 28 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
ThinkPHP基本的增删查改操作实例教程
Aug 22 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 PHP
php页面函数设置超时限制的方法
Dec 01 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 PHP
php实现xml转换数组的方法示例
Feb 03 PHP
php实现表单提交上传文件功能
May 28 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 include和require的区别深入解析
2013/06/17 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
php编程每天必学之验证码
2016/03/03 PHP
非常实用的php验证码类
2016/05/15 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
php解析base64数据生成图片的方法
2016/12/06 PHP
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
js删除局部变量的实现方法
2016/06/25 Javascript
jquery表单提交带错误信息提示效果
2017/03/09 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
详解Django中的权限和组以及消息
2015/07/23 Python
Django卸载之后重新安装的方法
2017/03/15 Python
python实现对excel进行数据剔除操作实例
2017/12/07 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
python如何调用java类
2020/07/05 Python
python音频处理的示例详解
2020/12/23 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
机电一体化大学生求职信
2013/11/08 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
优秀求职信
2014/05/29 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
给老师的一封感谢信
2015/01/20 职场文书
网络研修心得体会
2016/01/08 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技