zoukankan      html  css  js  c++  java
  • 用laravel搭一个微信公众号后台

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

    1. 在routes.php写下接收微信服务器post请求的路径:
      Route::post('wechatmp', 'WechatController@responseMsg');
      
    2. 在AppHttpMiddlewareVerifyCsrfToken里,将该请求路径去除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
  • 相关阅读:
    linux上安装vsftpd
    springboot集成mybatisplus
    springboot集成swagger2
    ssm+maven多模块项目整合
    追梦强人工智能(一)
    Linux环境kafka安装
    Linux环境安装jdk10
    东芝笔记本Satellite M40-A
    Maven简介
    postgresql PL/pgSQL—存储过程结构和变量声明
  • 原文地址:https://www.cnblogs.com/lxwphp/p/9401958.html
Copyright © 2011-2022 走看看