php入门到就业线上直播课:进入学习Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

本教程操作环境:Windows7系统、ThinkPHP5版、Dell G3电脑。

thinkphp token失败怎么办?


(资料图片)

解决ThinkPHP微信小程序token校验失败

今天在做微信小程序的学习,申请了一个小程序账号,申请步骤:微信小程序开发-注册账号。

在进行开发配置过程中,需要填写服务器信息,校验token,但是一直是校验失败的状态,看了他人的处理方式,总结出来了办法,分享出来。

解决办法:在输出“echostr”前,清空缓存区,即在echo 前放置“ob_clean();”代码。

官方解释:ob_clean()  此函数用来丢弃输出缓冲区中的内容;

校验代码如下:

/** * 微信小程序token校验 * @return bool */public function wxtoken(){    $signature = input("get.signature");    $timestamp = input("get.timestamp");    $nonce = input("get.nonce");    $token = "1234567";    $tmpArr = array($token, $timestamp, $nonce);    sort($tmpArr, SORT_STRING);    $tmpStr = implode($tmpArr);    $tmpStr = sha1($tmpStr);    if($tmpStr == $signature){        ob_clean();        echo input("get.echostr");    }else{        return false;    }}

微信官方对token校验的说明为:开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

加密/校验流程如下:

1、将token、timestamp、nonce三个参数进行字典序排序

2、将三个参数字符串拼接成一个字符串进行sha1加密

3、开发者获得加密后的字符串可与signature对比,标识该请求来源于微信;

推荐学习:《thinkPHP视频教程》

以上就是thinkphp token失败怎么办的详细内容,更多请关注php中文网其它相关文章!

推荐内容