①首要工作内容是什么呢?那当然是注册申请一个公众号啦!!

②接着就是登录进去公众号了,先点击公众号设置去完善你自己的公众号配置,否则难以进行下一步,简单设置一些头像、公众号名称、介绍等等就可以了

③接下来就是开发重点了,点击基本配置,里面有你的开发者ID和开发者密码,这里的开发者密码是看不到了,只能重置,然后就是下面的服务器配置问题了:点击配置之后呢就看到如下图:

clipboard.png

URL:这个就是你的服务器地址了,由于我是选择了laravel5.4框架去进行微信开发的,所以这里还要指定到你的项目的地址,因为这个地址首先是要检验Token的。至于服务器的问题呢,这里我给了两种方法,一种是内网穿透,这个可以进行本地开发,意思就是把本地当做服务器,别人能通过网络访问到你本地的服务器的意思,我这里推荐https://natapp.cn/,至于使用教程,这个官网里面就有了,如果还不懂可以私信我,然后就是购买隧道的问题,一定要买VIP的隧道!一定要买VIP的隧道!!!一定要买VIP的隧道!!!!重要的事情说三遍,没办法,便宜没好货~~或者购买京东云、阿里云、tx云,说句实话。。。我三个云都逛了一个遍,感觉也差不多,随意就好了,至于购买后的服务器使用的问题,由于涉及的东西有点多,这里就不一一去细说,不懂照样可以私信我~~

clipboard.png

Token:这里随便填,为了示范,这里我写了weixin,我建议大家也跟我这样写就好了

EncodingAESKey:这里就点击随机生成就好了,没啥所谓

消息加密方式就选第二个好了,毕竟有写方便开发者调试和维护嘛~~

最后的最后就是如何验证Token的问题了,这里还有先申明一句,服务器的如果没有域名就直接IP地址,如果你是从那三大云购买的服务器就不用担心网址没有备案的问题,但是如果是内网穿透的话就必须选一个有备案的,这些在那个官网上有说的。好的,现在就是上代码了,首先是设置路由,看图:

clipboard.png

当然了,这里可以设置Route::any也是行的,重要的一点一定要定义发请求的方式是POST还是GET,要不然是无法正确响应请求的,这个地方坑过很多使用laravel开发微信的朋友们,而这些在thinkphp中是不用定义的。那么在这里有个坑就是微信验证默认token的请求是GET方式,但是真正接入微信服务器用以开发时采用的确实POST方式,所以我们在微信后台配置验证接口时,要使用GET方式,在验证成功配置完成后再改回POST方式。

接下来就是写这个weixinController下的token方法了:

 public function serve()
    {
        header('Content-type:text');
        define("TOKEN", "weixin");
        if (isset($_GET['echostr'])) {
            $this->valid();
        } else {
            $this->responseMsg();
        }
    }

    public function valid()
    {
        $echoStr = $_GET["echostr"];
        if ($this->checkSignature()) {
            header('content-type:text');
            echo $echoStr;
            exit;
        }
    }

    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];

        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode($tmpArr);
        $tmpStr = sha1($tmpStr);

        if ($tmpStr == $signature) {
            return true;
        } else {
            return false;
        }
    }

接着就是在URL上填写你服务器上的项目下的这个weixin/token,例如http:你的服务器的地址/项目地址(指定到public目录哦)/weixin/token这样子,接下来就是提交等待成功的信息啦~~~


zero风来
126 声望3 粉丝