微信公众号测试号 踩坑之 接口配置信息 106 token check fail
开始官网请阅读消息接口使用指南。下的 文档 , 配置好外网, 域名后, 80端口指向的根目录中放入开发文档中的demo.php, 怎么搞都是配置失败!
网上所有的文档找遍了都没用, 官方文档看了好几遍, 开发文档中的代码也研究了, 还是
{"errcode":-106,"errmsg":"token check fail"}
搞了一天, 撞墙的心都有了. 什么鬼文档乱七八糟一大堆!!!
后来看到一篇文章,说在laravel中配置路由,指向控制器方法, 我就放在tp5.1的框架中, 配置个路由, 指向控制器方法, 把之前测试的网上找的验证文件代码一贴, 改下配置, 直接成功!
当时的心情直想骂娘, 微信使用指南文件我信你个鬼!!!
<?php namespace app\home\controller; use think\Controller; use think\Db; class Test extends Controller { // 外部接口, 测试 public function wx() { function checkSignature() { $token = 'tstk323'; //先获取到这三个参数 $signature = input('signature'); $nonce = input('nonce'); $timestamp = input('timestamp'); // 把这三个参数存到一个数组里面 $tmpArr = array($timestamp, $nonce, $token); // 进行字典排序 sort($tmpArr); // 把数组中的元素合并成字符串,impode()函数是用来将一个数组合并成字符串的 $tmpStr = implode($tmpArr); // sha1加密,调用sha1函数 $tmpStr = sha1($tmpStr); // 判断加密后的字符串是否和signature相等 if ($tmpStr == $signature) { return true; } return false; } // 如果相等,验证成功就返回echostr if (checkSignature()) { // 返回echostr $echostr = input('echostr'); if ($echostr) { echo $echostr; exit; } } } }
转载:https://www.cnblogs.com/xujian2016/p/12506340.html
-----------------------------------------------------------自己项目---------------------------------------------------------------------