注意:此版本为 2.x 版本,不兼容 1.x,已经移除外观,与 overtrue/wechat 2.0 同步
1.x 的配置文件里面的项目为驼峰,2.x 系列已经改为下划线,请参考: src/config.php
微信 SDK for Laravel 5, 基于 overtrue/wechat
本项目只适用于,只有一个固定的账号,如果是开发微信公众号管理系统就不要使用了,直接用 overtrue/wechat 更方便些。
交流QQ群:319502940
- 安装包文件
 
composer require "overtrue/laravel-wechat:2.0.*"- 添加 
ServiceProvider到您项目config/app.php中的providers部分: 
'Overtrue\LaravelWechat\ServiceProvider',- 创建配置文件:
 
php artisan vendor:publish- 
请修改应用根目录下的
config/wechat.php中对应的项即可; - 
(可选)添加外观到
config/app.php中的aliases部分: 
'Wechat' => 'Overtrue\LaravelWechat\Facade',注意:
- Laravel 5 默认启用了 CSRF 中间件,因为微信的消息是 POST 过来,所以会触发 CRSF 检查导致无法正确响应消息,所以请去除默认的 CRSF 中间件,改成路由中间件。可以参考我的写法:overtrue gist:Kernel.php 5.1 里的 SCRF 已经带了可忽略部分url的功能,你可以参考:http://laravel.com/docs/master/routing#csrf-protection
 
所有的Wechat对象都已经放到了容器中,直接从容器中取就好。
别名对应关系如下:
'wechat.server'    => 'Overtrue\Wechat\Server',
'wechat.user'      => 'Overtrue\Wechat\User',
'wechat.group'     => 'Overtrue\Wechat\Group',
'wechat.auth'      => 'Overtrue\Wechat\Auth',
'wechat.menu'      => 'Overtrue\Wechat\Menu',
'wechat.menu.item' => 'Overtrue\Wechat\MenuItem',
'wechat.js'        => 'Overtrue\Wechat\Js',
'wechat.staff'     => 'Overtrue\Wechat\Staff',
'wechat.store'     => 'Overtrue\Wechat\Store',
'wechat.card'      => 'Overtrue\Wechat\Card',
'wechat.qrcode'    => 'Overtrue\Wechat\QRCode',
'wechat.url'       => 'Overtrue\Wechat\Url',
'wechat.media'     => 'Overtrue\Wechat\Media',
'wechat.image'     => 'Overtrue\Wechat\Image',
'wechat.notice'     => 'Overtrue\Wechat\Notice',
'wechat.media'     => 'Overtrue\Wechat\Media',
下面以接收普通消息为例写一个例子:
假设您的域名为
overtrue.me那么请登录微信公众平台 “开发者中心” 修改 “URL(服务器配置)” 为:http://overtrue.me/wechat。
路由:
Route::any('/wechat', 'WechatController@serve');注意:一定是
Route::any, 因为微信服务端认证的时候是GET, 接收用户消息时是POST!
然后创建控制器 WechatController:
<?php namespace App\Http\Controllers;
use Overtrue\Wechat\Server;
use Log;
class WechatController extends Controller {
    /**
     * 处理微信的请求消息
     *
     * @param Overtrue\Wechat\Server $server
     *
     * @return string
     */
    public function serve(Server $server)
    {
        $server->on('message', function($message){
            return "欢迎关注 overtrue!";
        });
        return $server->serve(); // 或者 return $server;
    }
}注意:不要忘记在头部
use哦,或者你就得用\Overtrue\Wechat\Server全称咯。:smile:
<?php namespace App\Http\Controllers;
use Overtrue\Wechat\Auth;
class WechatController extends Controller {
    public function demo(Auth $auth)
    {
        // $auth 则为容器中 Overtrue\Wechat\Auth 的实例
    }
}上面已经列出了所有可用的别名对应关系,你可以使用别名或者类名获取对应的实例:
  $wechatServer = App::make('wechat.server'); // 服务端
  $wechatUser = App::make('wechat.user'); // 用户服务
  或者:
  $wechatUser = App::make('Overtrue\Wechat\User'); // 用户服务
  // ... 其它同理$wechatServer = Wechat::server();
$wechatUser = Wechat::user();
//... 其它同理更多使用请参考:https://github.com/overtrue/wechat/wiki/
MIT