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无刷新上传文件实现代码
Sep 19 PHP
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
Oct 23 PHP
php基于Snoopy解析网页html的方法
Jul 09 PHP
php实现微信公众平台账号自定义菜单类
Oct 11 PHP
Symfony2学习笔记之系统路由详解
Mar 17 PHP
Yii使用smsto短信接口的函数demo示例
Jul 13 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 PHP
PHP判断是否微信访问的方法示例
Mar 27 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
Mar 03 PHP
PHP替换Word中变量并导出PDF图片的实现方法
Nov 26 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简单实现循环链表功能示例
Nov 10 #PHP
You might like
如何对PHP程序中的常见漏洞进行攻击(上)
2006/10/09 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
jQuery监听文件上传实现进度条效果的方法
2016/10/16 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
Vue中正确使用jQuery的方法
2017/10/30 jQuery
AngularJS实时获取并显示密码的方法
2018/02/06 Javascript
小程序自定义模板实现吸顶功能
2020/01/08 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
python中循环语句while用法实例
2015/05/16 Python
python常见排序算法基础教程
2017/04/13 Python
PyCharm在win10的64位系统安装实例
2017/11/26 Python
python 文件转成16进制数组的实例
2018/07/09 Python
python yield关键词案例测试
2019/10/15 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python
移除Selenium中window.navigator.webdriver值
2022/06/10 Python