【Laravel篇】微信公众号开发Token验证失败

    最近开始折腾一下微信公众号开发,踩的一些莫名其妙的坑,给大家分享一下:首当其冲,当然是基础步骤中的开发者配置了。其实呢,只要认真读文档也就木有问题,但是总有一些粗心大意的人——我。

    坑一:端口号未得到注意和重视,须检查你的服务器的端口是否被开放或者被占用

在这里插入图片描述

​    ​坑二:当然就是自以为将信息填完提交就会OK的事了。

【Laravel篇】微信公众号开发Token验证失败_第1张图片

​    ​注意注意,你都没有和微信服务器做验证,怎么会提交成功呢?是不是傻,傻的也只有我。下面是文档说的清清楚楚,唉。

【Laravel篇】微信公众号开发Token验证失败_第2张图片

贴一下Laravel验证Token的简易代码:

/**

  • 成为微信开发者URL和Token验证

  • @param Request $request

  • @return array|string
    */
    public function wxToken(Request $request)
    {

         $signature = $request->input('signature');
         
         $timestamp = $request->input('timestamp');
         
         $nonce = $request->input('nonce');
     	    
         $echoStr = $request->input('echostr');
     
         if( $this->checkSignature($signature, $timestamp, $nonce) ){
     
             return $echoStr;
         }else{
     
             dd('Token verification failed.');
         }
    

    }

/**

  • 微信提供的校验规则

  • @param $signature

  • @param $timestamp

  • @param $nonce

  • @return bool
    */
    private function checkSignature($signature, $timestamp, $nonce)
    {

         $token = 'nodexpo';
         
         $tmpArr = array($token, $timestamp, $nonce);
         
         sort($tmpArr, SORT_STRING);
         
         $tmpStr = implode( $tmpArr );
         
         $tmpStr = sha1( $tmpStr );
         
         if( $tmpStr == $signature ){
             return true;
         }else{
             return false;
         }
    

    }

其实只要注重了这两个步骤,公众号开发这个门槛你就踏了进来,接下来你便会如鱼得水啦。本人使用的Laravel框架开发微信公众号,那就不得不说到组件,那么EasyWeChat当然是首推了。https://www.easywechat.com/docs/master/overview 这是官方给出的文档。具体操作仔细看文档。个人总结,勿喷。谢谢合作。

你可能感兴趣的:(PHP,常见问题)