• tp5微信公众号开发,申请公众号配置token验证


    进入微信公众帐号测试号申请系统

    申请测试账号https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

    开发之前要申请微信接入,填写服务器配置,验证服务器地址的有效性。

    必须拥有自己的服务器
    在这里插入图片描述
    因为我项目用的是tp5,用到了一系列诸如上传素材,关键字自动回复等功能,就以tp5为例说明。

    公众号服务器配置URL:  http(https)://域名/www.qixiao.ltd/index.php/wxindex
    
    • 1

    token:这个随意字符,但是需要注意的是需要跟验证代码中的token保持一致。

    代码必须提交到服务器上!!切记!!

    tp5代码如下

    路由
    在这里插入图片描述
    控制器
    在这里插入图片描述
    话不多说直接上代码:

    
    
    namespace app\api\controller\index;
    
    use app\common\controller\Api;
    use think\Db;
    use think\Config;
    use think\Validate;
    use think\Request;
    // 允许跨域
    header('Access-Control-Allow-Origin:*');//允许跨域
    header("Content-type: text/html; charset=utf-8"); 
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
        header('Access-Control-Allow-Headers:x-requested-with,content-type,token');//浏览器页面ajax跨域请求会请求2次,第一次会发送OPTIONS预请求,不进行处理,直接exit返回,但因为下次发送真正的请求头部有带token,所以这里设置允许下次请求头带token否者下次请求无法成功
        exit("ok");
    }
    public function index(){
            $this->valid(); 
        }
     
        //微信验证
        public function valid(){ 
            $echoStr = $_GET["echostr"]; 
            if($this->checkSignature()){ 
             echo $echoStr; 
             exit; 
            } 
        }
        
        /** 扫码回调*/
        private function checkSignature()
        {
            $signature = $_GET["signature"];
            $timestamp = $_GET["timestamp"];
            $nonce = $_GET["nonce"];
            $token = Config::get('site.wxgzh_token');
            $tmpArr = array($token, $timestamp, $nonce);
            sort($tmpArr, SORT_STRING);
            $tmpStr = implode( $tmpArr );
            $tmpStr = sha1( $tmpStr );
            
            if( $tmpStr == $signature ){
                return true;
            }else{
                return false;
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    然后在微信公众号进行配置:
    在这里插入图片描述点击提交,完事。

    失败几点可能原因:1,填写的URL是否能访问到(测试方法,在wxtoken文件夹头部echo随机字符串,访问域名看能否正确输出)

    2,公众平台填写的token跟代码文件define 的token是否一致

    3,多提交几次,一般提交3-5次基本都会成功

  • 相关阅读:
    实例分割-二阶段模型-RCNN系列介绍
    如何用WebGPU流畅渲染百万级2D物体?
    【Elasticsearch】在es中实现mysql中的FIND_IN_SET查询条件
    性能测试全栈学习
    精品基于NET实现的抗疫物资管理系统
    java基于ssm的健身房会员管理系统
    设计模式简介
    练习题——【学习补档】库函数的模拟实现
    八、【React拓展】错误边界
    Koreographer Professional Edition丨一款Unity音游插件教程
  • 原文地址:https://blog.csdn.net/weixin_47736740/article/details/134289221