微信公众号测试号 踩坑之 接口配置信息 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

 

-----------------------------------------------------------自己项目---------------------------------------------------------------------

 

 

 

 

posted @ 2020-07-10 11:27  搬砖小伙子  阅读(3027)  评论(0编辑  收藏  举报