1章 部署项目
1.1 安装laravel
composer create-project laravel/laravel=5.1 weixin
1.2 安装wechat扩展
composer require overtrue/wechat
1.3 wechat扩展概览(3.0版本)
https://easywechat.org/zh-cn/docs/
2章 接入微信
2.1 本地开发
第一种方式:(不建议,我使用它在后面授权出问题了,弄了几个小时。。)
- 到 http://blog.qqbrowser.cc/ 下载QQ浏览器
- 安装浏览器后,按下图进入到"应用中心"
- 然后到"开发者工具"一栏,会看到"微信调试工具",点击"立即安装"
-
安装完成之后你的qq浏览器会显示如下:
-
点击图标进入服务器端调试
-
填入自己电脑的IP(例:192.168.1.9:80 , 或 127.0.0.1:80),
-显示如下:成功!
-
把url填入到你的微信控制台
- 注意:token真的只能是dbtest,上面那个实验失败,换了之后就可以了,有兴趣的可以试试;
第二种方式:ittun
- 进入ittun官网下载插件,www.ittun.com,对应自己的电脑系统就可以
- 解压到一个目录,在解压的文件下打开终端,输入
.\ngrok.exe 80
会出现如下:
- 然后按照上面的方法设置就可以了
2.2 根据上面获得的域名,来给laravel配置访问域名,这个自己配置,网上很多,配置完成访问一下看看有没有laravel图标
2.3 开始测试
#routes.php路由中demo
Route::any('/weixin','WxController@index');
#利用控制台到weixin目录,使用artisan创建控制器
>php artisan make:controller WxController
#WxController.php demo
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use EasyWeChat\Foundation\Application;
use EasyWeChat\Message\Text;
class WxController extends Controller
{
protected $app=null;
public function __construct(){
$options = [
'debug' => true,
'app_id' => 'wx98a867f4654d1aa9',
'secret' => '9d89db74740a83d1f15e552e5bce3f74',
'token' => 'dbtest',
// 'aes_key' => null, // 可选
'log' => [
'level' => 'debug',
'file' => 'd:/phpstudy1/www/weixin/public/wechat.log', // XXX: 绝对路径!!!!
],
//...
];
$this->app = new Application($options);
}
public function index()
{
$server=$this->app->server;
// 在微信服务器上监听关注事件
// 所有的事件监听,都统一放在setMessageHandler这个方法中
$server->setMessageHandler(function($message){
// 当 $message->MsgType 为 event 时为事件
if ($message->MsgType == 'event' && $message->Event== 'subscribe') {
$text = new Text();
$text->content = '您好!欢迎关注我!';
return $text;
}
});
$response = $server->serve();
//将相应输出
return $response;
}
}
先用laravel运行一下程序,这里会报以下错误,这就是成功信号:
现在就可以在后台页面生成配置了,点击提交就会成功
测试微信:
- 因为我测试的是关注的时候相应回复,所以打开微信,扫描二维码,关注你的微信公众号
-
现在应该是什么也不会有,查看storage/laravel.log会发现是因为跨域的csrftoken丢失(laravel需要),所以这里需要设置例外,进入Http/Middleware/VerifyCsrfToken.php 添加如下:
- 再次访问,成功!