我使用的 overtrue/wechat 3.x版本
4.x版本请参照 这里
接下来开始网页授权吧!
1.安装包
composer require "overtrue/laravel-wechat:~3.0"
2.在config/app.php
providers里添加
Overtrue\LaravelWechat\ServiceProvider::
class
,
aliases里添加
'EasyWeChat' => Overtrue\LaravelWechat\Facade::
class,
3.创建配置文件
php artisan vendor:publish --provider=
"Overtrue\LaravelWechat\ServiceProvider"
4. .env 文件添加如下配置,这些配置都和微信公众平台对应。也可在app/wechat.php里配置。
WECHAT_APPID=*
WECHAT_SECRET=*
WECHAT_TOKEN=*
WECHAT_AES_KEY=*
WECHAT_SECRET=*
WECHAT_TOKEN=*
WECHAT_AES_KEY=*
5.创建Wechat控制器。 给公众号验证token,并调用添加菜单接口。看一下菜单url。这个路由后面会提到,然后自行修改。
<?php
namespace
App\Http\Controllers;
use
Log;
class
WechatController
extends
Controller
{
/**
* 处理微信的请求消息
*
*
@return
string
*/
public
function
serve()
{
$wechat =
app(
'wechat');
$wechat->
server->
setMessageHandler(
function(
$message){
return
"欢迎关注 overtrue!";
});
$this->
add_menu();
return
$wechat->
server->
serve();
}
public
function
add_menu(){
$app =
app(
'wechat');
$menu =
$app->
menu;
$buttons = [
[
"type"=>
"view",
"name"=>
"进入课堂",
"url"=>
"http://vote.mrwangqi.com/user",
],
];
$menu->
add(
$buttons);
}
}
6.添加一条路由访问该方法
Route::
any(
'/wechat',
'WechatController@serve');
7.添加中间件在 app/Http/Kernel.php
中添加路由中间件
protected
$routeMiddleware = [
// ...
'wechat.oauth' => \Overtrue\LaravelWechat\Middleware\OAuthAuthenticate::
class,
];
8.添加一条路由 /user ,这个就是刚才菜单的路由。
Route::
get(
'/user',
function () {
$user =
session(
'wechat.oauth_user');
// 拿到授权用户资料
return
redirect()->
to(
'/home#/index');
//這時候已經拿到用戶資料了,跳轉到想要的路由
});
所以/user路由只是个过渡,理论上不需要可以直接callback,但是我的不行额。大家可以给点意见。
9.配置公众号信息,我这里是测试号,配置的url里http://后面马赛克掉的是我的服务器域名。格式很严苛喲