官方文檔:https://www.easywechat.com/docs/4.x/overview
安裝插件
# Laravel < 5.8 composer require "overtrue/laravel-wechat:~4.0" # Laravel >= 5.8 composer require "overtrue/laravel-wechat:~5.0"
composer dump-autoload -o
push配置
php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"
增加.env配置公眾號設置
WECHAT_OFFICIAL_ACCOUNT_APPID=wx78ae5bb2XXXX WECHAT_OFFICIAL_ACCOUNT_SECRET=214f1ce332XXXX WECHAT_OFFICIAL_ACCOUNT_TOKEN=yishXXX WECHAT_OFFICIAL_ACCOUNT_AES_KEY=6lwDoXXXXXFDFEEEEEEEEE
微信公眾號接口配置信息
需要注意的是URL只能是80端口,對應代碼:
路由:
Route::any('/','WechatController@valid');//
控制器方法
//驗證簽名 public static function valid() { // Log::info('request arrived'); $app = app('wechat.official_account'); $app->server->push(function($message){ return "歡迎關注"; }); return $app->server->serve(); }
若要設置用戶授權菜單等需要在公眾號設置
否則會出現
控制器示例:
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Log; class WechatController extends Controller { /**獲取openid * Author Allen * DateTime 2021-03-12 * return [type] [description] */ public static function getOpenid() { $request = request()->all(); $validator = \Validator::make($request,[ 'code' => 'required', ],[ 'code.required' => '缺少code', ]); if($validator->fails()){ $error = $validator->errors()->all()[0]; return response()->json(['code' => 600, 'msg' => $error]); } $app = app('wechat.official_account'); $result = $app->oauth->getAccessToken($request['code']); if (!isset($result->openid)) { return response()->json(['code' => 600, 'msg' => '獲取微信用戶信息失敗','result'=>$result]); } $openid=$user->openid; // dd($openid); // Log::info('request arrived'); return $openid; } //驗證簽名 public static function valid() { // Log::info('request arrived'); $app = app('wechat.official_account'); $app->server->push(function($message){ return "歡迎關注"; }); return $app->server->serve(); } /**菜單創建 * Author Allen * DateTime 2021-03-12 * return [type] [description] */ public static function menuCreate() { $app = app('wechat.official_account'); $buttons = [ [ "name" => "事務管理", "sub_button" => [ [ "type" => "view", "name" => "事務管理", "url" => "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . config('wechat.official_account.default.app_id') . "&redirect_uri=" . urlencode('http://127.0.0.1/wechat/index') . "&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect", ], ], ], ]; $app->menu->create($buttons); // $app->menu->delete(); // $list = $app->menu->list(); // $current = $app->menu->current(); // var_dump(json_encode($list,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES) ); // Log::info('request arrived'); return "創建成功"; } }