tp5微信开发(一) ---- 微信公众号配置token

版权声明: https://blog.csdn.net/qq_27987023/article/details/82861521

       企鹅的文档写的比较纠结,或者说写的因为太过详细看的有点懵逼,大概的整理下我个人对微信公众号的理解,尽量用通俗易懂的方式,写的不对的地方欢迎指正,毕竟我也是菜鸟,本笔记仅供参考。

       其实很多人的第一概念就没搞明白微信token的验证意义,通俗来讲,微信给没有开发能力的提供的有默认的诸如菜单管理,自动回复管理等,但是这些功能仅只能在公众平台才能进行管理,如果我们要转移到第三方管理呢?这个时候就需要开启服务器配置了,而token的作用仅限于验证你填写的服务器地址是否是你自己的空间资源,如果验证通过,则微信推送的信息就会发送到你填写的地址。

       因为我项目用的是tp5,用到了一系列诸如上传素材,关键字自动回复等功能,就以tp5为例说明。

       公众号服务器配置URL:  http(https)://域名/index.php/home/wxtoken/index  (说明:如果做了伪静态和入口隐藏,index.php可以省去,这个看具体部署);token:这个随意字符,但是需要注意的是需要跟验证代码中的token保持一致。

        新建wxtoken.php 放于app目录下的前台文件夹home下的controller目录树中。

<?php
namespace app\home\controller;

header("Content-type: text/html; charset=utf-8"); 
define("TOKEN","token");//定义识别码 需要跟微信公众平台上保持一致
class Wxtoken extends Controller{
    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 = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
}

?>

点击提交,完事。

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_27987023/article/details/82861521