用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:

    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;
         }
     }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值