laravel5.5 不能正常自动回复的问题

  虽然开启了APP_DEBUG 可是 log 却没有记录任何错误信息,后来通过测试发现原来是路由问题,由于微信服务器发送消息是使用 post 方法,可是个人路由定义只定义了 get (tp 用多了习惯了不分 get、post),因此会致使路由异常,从而致使微信公众号上面会提示服务器故障,中间方向错误,致使排查好久,后来才想起能够在异常处理文件里面写 log。php

  这时候咱们能够在 app\Exceptions\Handler.php 的 report 方法加上下面几句,出异常的时候记录错误信息:laravel

        if (env('APP_DEBUG')) {
            \Log::error('error file: ' . $exception->getFile());
            \Log::error('error line: ' . $exception->getLine());
            \Log::error('error message: ' . $exception->getMessage());
            \Log::error('exception type: ' . get_class($exception));
            \Log::error('trace' . $exception->getTraceAsString());
        }

  加上以后 report 方法以下:服务器

  这样一来,开发过程当中的 500 就所有记录下来(前提是开启debug模式),这样开发的时候,微信提示服务器故障的时候就能够去看 log 是什么缘由致使的。微信

  

  还有一个须要注意的是:laravel 默认开启 csrf 的验证,咱们能够在 app\Http\Kernel.php $middlewareGroups 中能够看到有这么一行:app

  \App\Http\Middleware\VerifyCsrfToken::class,post

  可是咱们须要清楚的是,微信 post 过来的数据是没有这个 token 的,因此咱们须要把这一行注释掉,不然在验证这一步就会返回,得不到咱们想要的结果。测试

相关文章
相关标签/搜索