用laravel搭一个微信公众号后台

用laravel搭一个微信公众号后台

我使用的是laravel5.2, 早期版本可能不适合下面的方法。

  1. 在routes.php写下接收微信服务器post请求的路径:
    Route::post('wechatmp', 'WechatController@responseMsg');
    

  2. 在App\Http\Middleware\VerifyCsrfToken里,将该请求路径去除CSRF TOKEN的保护,官网说明

    class VerifyCsrfToken extends BaseVerifier
    {
     protected $except = [
        'wechatmp', 
     ];
    }
    

    在这里补充一下,csrf Token是一种laravel自身提供的请求保卫机制。必须符合csrf token的验证,对方发来的post请求才会被接受,常用在laravel的ajax请求。当然如果我们真的要开放某个接口,就使用上面的方式,把这个接口对应的csrf token关掉。

  3. 按照你熟悉的方式,在WechatController里写responseMsg:

    1. public function responseMsg(Request $request){
       
           $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
            if (!empty($postStr)){
               $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
               $RX_TYPE = trim($postObj->MsgType);
            //   $this->test($RX_TYPE) ;
               switch ($RX_TYPE)
               {
                   case "text":
                       $resultStr = $this->receiveText($postObj);
                       break;
           case "image":
               $resultStr = $this->receiveImage($postObj); 
             break ;
           case "voice":
                 $resultStr = $this->receiveVoice($postObj) ;
             break ;
                   case "event":
                       $resultStr = $this->receiveEvent($postObj);
                       break;
                   default:
                       $resultStr = "unknow msg type: ".$RX_TYPE;
                       break;
               }
               echo $resultStr;
           }else {
               echo "";
               exit;
           }
       }
      


    后面的微信公众平台开发者文档都有。

  4. https://blog.csdn.net/tianlebest/article/details/60667259
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/113057.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号