工欲善其事必先利其器

  • 框架要求
    Laravel>= 5.1

  • 安装
    Laravel < 5.8
    composer require “overtrue/laravel-wechat:~4.0”
    Laravel >= 5.8
    composer require “overtrue/laravel-wechat:~5.0”

配置

Laravel 应用
1.在 config/app.php 注册 ServiceProvider 和 Facade (Laravel 5.5 + 无需手动注册)

'providers' => [// ...Overtrue\LaravelWeChat\ServiceProvider::class,
],'aliases' => [// ...'EasyWeChat' => Overtrue\LaravelWeChat\Facade::class, ],

2.创建配置文件:

php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"

3.修改应用根目录下的 config/wechat.php 中对应的参数即可。
4.每个模块基本都支持多账号,默认为 default。

使用

在中间件 App\Http\Middleware\VerifyCsrfToken 排除微信相关的路由,如:

protected $except = [// ...'wechat',
];

下面以接收普通消息为例写一个例子:
假设您的域名为 overtrue.me 那么请登录微信公众平台 “开发者中心” 修改 “URL(服务器配置)” 为: http://overtrue.me/wechat。

路由:

Route::any('/wechat', 'WeChatController@serve');

注意:一定是 Route::any, 因为微信服务端认证的时候是 GET, 接收用户消息时是 POST !

注意:在laravel中有token验证,所以有两种方法
1.在将csrf验证关闭(不安全,不推荐) 详情:http://www.cnblogs.com/HD/p/4555369.html
2.我们在项目中使用:
在中间件VerifyCsrfToken.php中修改内容为:

protected function tokensMatch($request)
{// If request is an ajax request, then check to see if token matches token provider in// the header. This way, we can use CSRF protection in ajax requests also.$token = $request->ajax() ? $request->header('X-CSRF-TOKEN') : $request->input('_token');return $request->session()->token() == $token;
}public function handle($request,\Closure $next){//todo:需要在添加了登录验证之后,取消if($request->method() == 'POST'){return $next($request);}return parent::handle($request,$next); }

然后在vue中的bootstrap.js中的引入axios中添加

window.axios.defaults.headers.common = {'X-CSRF-TOKEN': document.querySelector('meta[name="X-CSRF-TOKEN"]').content,'X-Requested-With': 'XMLHttpRequest'
};

在index.blade.php中添加

<meta name="X-CSRF-TOKEN" content="{{csrf_token()}}">

关于laravel 的 csrf token的更多详情,请看:http://www.cnblogs.com/zhuchenglin/p/7723997.html

以上基本可以配置完成,主要在于laravel的token验证。

创建控制器 WeChatController:

<?phpnamespace App\Http\Controllers;use Log;class WeChatController extends Controller
{/*** 处理微信的请求消息** @return string*/public function serve(){Log::info('request arrived.'); # 注意:Log 为 Laravel 组件,所以它记的日志去 Laravel 日志看,而不是 EasyWeChat 日志$app = app('wechat.official_account');$app->server->push(function($message){return "欢迎关注 overtrue!";});return $app->server->serve();}
}

然后将这个代码上传到云服务器(注:服务器一定要在公网中(或通过某种工具使自己的电脑映射到公网上),否则微信无法验证)
默认配置好虚拟主机,(必须用80端口(http://)/443端口(https://)),指向:项目名/public
然后打开微信公众号后台(我用测试账号来说明问题,如果是真正的服务号的话,要开启开发者模式)

填写的url要能找到你那个控制器中的serve()方法

Token要和上面的配置文件中填写的一样

如果按照上面的步骤一步一步来的话,应该可以保存成功(即初步验证成功)

laravel结合easyWeChat的使用相关推荐

  1. Laravel使用EasyWechat 进行微信支付

    微信支付和EasyWeChat这个包都是巨坑, 文档写的稀烂, 记录下防止以后又重复踩坑: 安装教程在这: https://www.jianshu.com/p/82d688e1fd2a 转载于:htt ...

  2. 基于laravel+workerman+easywechat的公众号客服系统

    1.流程:用户在公众号发送文本消息,通过公众号消息模板推送通知给客服,客服点击通知,跳转小程序与用户对话.用户可以直接在公众号内与客服对话. 2.所用技术栈: "php": &qu ...

  3. 微信wechat.class.php,laravel使用组件实现微信网页授权登入

    laravel框架中的实现简单实现微信网页授权登入 首先引入基于laravel的easywechat的组件,laravel版本5.8 $ cd laravel $ composer require & ...

  4. 微信网页授权登入--laravel组件 laravel-wechat调用

    组件地址:https://github.com/overtrue/laravel-wechat laravel框架中的实现简单实现微信网页授权登入,首先引入基于laravel的easywechat的组 ...

  5. Laravel微信Native支付、微信jsapi支付

    ** 之前一直使用thinkphp做开发,偶然的一次机会运用了laravel框架并且做了一个微信扫码支付功能,发现laravel扩展功能大大超过了tp,接下来分享一下laravel的EasyWeCha ...

  6. Laravel + EasyWeChat 微信登陆功能

    基于:Laravel 5.8.*,以下代码可能存在一些继承函数,详情可访问开源项目:Github.Gitee. 第一步:去微信公众号中设置和获取信息 注意:公众号必须已经认证,且必须拥有网页授权获取用 ...

  7. Laravel 5.8+EasyWeChat 6.0开发公众号基本要求和文档

    Laravel 5.8+EasyWeChat 6.0开发公众号基本要求和文档 Laravel版本5.8 PHP版本要求>=7.4 overtrue /laravel-wechat 6.0扩展包 ...

  8. Laravel框中使用EasyWeChat 使用网页授权

    微信公众号授权原理及步骤 1.EasyWeChat 是一个由 @overtrue 基于 MIT 协议开发的高质量开源微信第三方 SDK.EasyWeChat 的安装非常简单,因为它是一个标准的 Com ...

  9. laravel+easywechat对接微信公众号自动回复图文消息

    laravel+easywechat对接微信公众号自动回复图文消息 图文回复消息创建 对接数据库根据关键词返回图文信息 前面我们对接配置了微信公众号,laravel5.4 对接微信公众号使用larav ...

最新文章

  1. golang中的目录操作
  2. JavaWeb学习之路——SSM框架之Spring(四)
  3. param.requires_grad = False的作用
  4. mvc.net分页查询案例——实体层(HouseModel.cs)
  5. stm32手册_STM32的GPIO概念简介
  6. MySql中的内外联结查询
  7. 关于Camel In Action 的理解
  8. python实现界面自由切换_写了个播放器的界面,可以9,4,1窗口自由切换,谁用拿走吧...
  9. Benchmark与Profiler---性能调优得力助手
  10. UCRT: VC 2015 Universal CRT, by Microsoft
  11. java fadein_原生JS实现 fadeIn / fadeOut 方法
  12. 我和宁夏日报 【白述礼】
  13. 2017年数据库技术盘点
  14. v-model 自带绑定的number 、lazy 、debounce属性
  15. python进行整数计算_零基础学python_05_数字(整数+浮点数)
  16. 阿里云播放器AliyunPlayer的走马灯组件的位置
  17. 【原创】CSDN·Markdown·KaTex/LaTex 用法小全
  18. PHP开发基于Mirai的QQ机器人
  19. Instance Tunnel 使用
  20. 微信群管理工具哪个好?最安全的微信群管理工具推荐!

热门文章

  1. 干货来了 | SQL 进阶技巧
  2. TypeScript——Web前端开发的救赎
  3. Flutter仿网易云音乐 ---基础准备
  4. 单机传奇架设教程-传奇联机助手一键自动架设
  5. 导出多个excel,打包成zip压缩包进行下载~~~~~~~~~
  6. webUploader上传demo
  7. 手机上有哪些超棒超实用的APP让你觉得相见恨晚
  8. SQLServer2000的JDBC驱动
  9. 微信小程序发布时需要校验违法违规内容、图片,Java后端接口
  10. Revit中批量设置导出CAD图纸