zoukankan      html  css  js  c++  java
  • 微信开发 token验证失败 200302 报错 err_msg: "verify token fail" ret: 200302

    微信接入事件回调的时候,用的是微信官方的代码,但是就是无法通过验证,实在是想骂骂腾讯写文档的人

    我的代码如下:

    //回调鉴权
        public function check_signature()
        {
            $param = $this->request->get();
            $signature = $param["signature"];
            $timestamp = $param["timestamp"];
            $nonce = $param["nonce"];
            $token = config('wx_trade_plugin')['token'];
            $tmpArr = array($token, $timestamp, $nonce);
            sort($tmpArr, SORT_STRING);
            $tmpStr = implode($tmpArr);
            $tmpStr = sha1($tmpStr);
            $param['tmpStr'] = $tmpStr;
            if ($tmpStr == $signature ) {
                echo $param["echostr"]);
            } else {
                echo 'error';
            }
        }

    思来想去还是觉得没毛病,于是我自己用postman测试,也看不出任何问题

    终于在试了很多次之后,我将代码改成这样子,神奇的通过了,心中万马奔腾!!!

    //回调鉴权
        public function check_signature()
        {
            $param = $this->request->get();
            $signature = $param["signature"];
            $timestamp = $param["timestamp"];
            $nonce = $param["nonce"];
            $token = config('wx_trade_plugin')['token'];
            $tmpArr = array($token, $timestamp, $nonce);
            sort($tmpArr, SORT_STRING);
            $tmpStr = implode($tmpArr);
            $tmpStr = sha1($tmpStr);
            $param['tmpStr'] = $tmpStr;
            //重点
            header("Content-type: text/html; charset=utf-8");
            if ($tmpStr == $signature ) {
            	//重点
                echo htmlspecialchars($param["echostr"]);
            } else {
                echo 'error';
            }
        }
  • 相关阅读:
    数据挖掘相关资料收集(持续更新)
    常见面试之机器学习算法思想简单梳理
    在c中保存状态
    lua 和 c
    lua 基础库
    lua 面向对象
    lua 高级
    lua 基础
    lua中的协程
    cocos2d中的可见性检测
  • 原文地址:https://www.cnblogs.com/wenhainan/p/15392502.html
Copyright © 2011-2022 走看看