1. 安裝 laravel-wechat
composer require "overtrue/laravel-wechat:~5.0"
2.配置 Laravel 應用
2.1.在 config/app.php
註冊 ServiceProvider 和 Facade
'providers' => [
// ...
Overtrue\LaravelWeChat\ServiceProvider::class,
],
'aliases' => [
// ...
'EasyWeChat' => Overtrue\LaravelWeChat\Facade::class,
],
2.2.建立配置檔案:
php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"
- 修改應用根目錄下的
config/wechat.php
中對應的引數即可。 - 每個模組基本都支援多賬號,預設為
default
。
2.3 修改.env
新增:賦值
WECHAT_OFFICIAL_ACCOUNT_APPID = XXXXX
WECHAT_OFFICIAL_ACCOUNT_SECRET = XXXXX
WECHAT_OFFICIAL_ACCOUNT_TOKEN = XXXXX
WECHAT_OFFICIAL_ACCOUNT_AES_KEY = XXXXX
同時新增:.env.example 不賦值。
3.使用
在中介軟體 App\Http\Middleware\VerifyCsrfToken
排除微信相關的路由,
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* Indicates whether the XSRF-TOKEN cookie should be set on the response.
*
* @var bool
*/
protected $addHttpCookie = true;
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
// 跳過csrf
'wechat',
];
}
微信公眾平臺配置:
假設您的域名為
overtrue.me
那麼請登入微信公眾平臺 “開發者中心” 修改 “URL(伺服器配置)” 為:http://overtrue.me/wechat
。
如果用測試公眾號,用內網穿透的方法(Ngrok)本地除錯,比如填URL為:
http://49a412c56a2d.ngrok.io/wechat
。 注意 一定要關閉底部除錯,關閉底部 Debugbar 。否則,配置失敗。
路由:
Route::any(‘/wechat’, ‘WeChatController@serve’);
注意:一定是
Route::any
, 因為微信服務端認證的時候是GET
, 接收使用者訊息時是POST
!
建立控制器:
下面以接收普通訊息為例寫一個例子:
php artisan make:controller WeChatController
<?php
namespace 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();
}
}
更多使用說明請看:github.com/overtrue/laravel-wechat
本作品採用《CC 協議》,轉載必須註明作者和本文連結