0 申請微信測試接口
訪問微信公眾平臺開發(fā)者文檔蜀漆,開始開發(fā)-接口測試號申請,填寫相關(guān)資料申請到一個接口,獲取appid和appsecret左驾。
在下面的體驗接口權(quán)限表中,找到“網(wǎng)頁授權(quán)獲取用戶基本信息”,點擊修改設(shè)置域名诡右。請注意安岂,這里填寫的是域名(是一個字符串),而不是URL帆吻,因此請勿加http://
等協(xié)議頭域那。測試接口允許寫ip(實測用ip的話會有問題,建議用域名)猜煮,但注意在用手機測試的時候要把apache的權(quán)限設(shè)置對次员。注意根目錄和當(dāng)前項目的目錄權(quán)限都要設(shè)置允許。下面是參考設(shè)置王带。
<VirtualHost *:80> #www目錄
ServerName localhost
DocumentRoot D:/site
<Directory "D:/site">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted #允許訪問
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "d:/site/xxx/public" #項目所在目錄
ServerName dev.xxx.com
ServerAlias *.xxx.com
ErrorLog "logs/dev.xxx.com-error.log"
CustomLog "logs/dev.xxx.com-access.log" common
<Directory "d:/site/xxx/public">
Options Indexes FollowSymLinks
AllowOverride all
Order Allow,Deny
Allow from all
Require all granted #允許訪問
Satisfy any
</Directory>
</VirtualHost>
1 安裝相關(guān)庫
首先在composer里添加以下內(nèi)容淑蔚。
"require": {
"laravel/socialite": "^2.0",
"socialiteproviders/weixin": "3.0.*"
},
使用composer install
安裝以上的庫。
2 設(shè)置config/app.php
添加Provider
'providers' => [
SocialiteProviders\Manager\ServiceProvider::class,
],
添加Alias
'aliases' => [
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],
3 配置config/services.php
設(shè)置微信接口的appid和appsecret
'weixin' => [
'client_id' => env('WEIXIN_KEY'),
'client_secret' => env('WEIXIN_SECRET'),
'redirect' => env('WEIXIN_REDIRECT_URI'),
],
4 設(shè)置app/Providers/EventServiceProvider.php
添加事件監(jiān)聽
use SocialiteProviders\Manager\SocialiteWasCalled;
protected $listen = [
SocialiteWasCalled::class => [
\SocialiteProviders\Weixin\WeixinExtendSocialite::class,
],
];
5 添加路由
Laravel5.3關(guān)于路由有如下變更
By default, fresh Laravel 5.3 applications contain two HTTP route files in a new top-level routes directory.
在routes/web.php添加如下兩行
Route::get('auth/weixin', 'Auth\WeixinController@redirectToProvider');
Route::get('auth/weixin/callback', 'Auth\WeixinController@handleProviderCallback');
6 WeixinController
代碼實現(xiàn)如下
<?php
/**
* Created by PhpStorm.
* User: weiling
* Date: 1/6/2017
* Time: 11:34 AM
*/
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\User;
use Auth;
use Log;
use Exception;
use Illuminate\Http\Request;
use Socialite;
use SocialiteProviders\Weixin\Provider;
class WeixinController extends Controller{
public function redirectToProvider(Request $request)
{
return Socialite::with('weixin')->redirect();
}
public function handleProviderCallback(Request $request)
{
$user_data = Socialite::with('weixin')->user();
//todo whatever
}
}