這篇文章主要介紹了Laravel微信小程式取得使用者詳細資料及帶參數小程式碼擴充的分析,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
本擴充包包含使用者詳細資料解密、帶參數小程式碼產生並儲存在本機目錄功能。
使用者詳細資料解密官方也提供多種語言版本SDK(C 、PHP、Node、Python),在本擴充包中僅做封裝處理。
帶參數小程序碼生成,官方給出三種接口,在此擴展包中採用接口B (適用於需要的碼數量極多的業務場景,通過該接口生成的小程序碼,永久有效,數量暫無限制)。
https://github.com/icharle/Wxtool
##執行以下命令以取得最新版本:
composer require icharle/wxtool 1.0
將服務提供者新增至設定檔中的providers陣列中
config/app.php,如下所示:
'providers' => [ ... Icharle\Wxtool\WxtoolServiceProvider::class, ]
發布設定檔
php artisan vendor:publish --tag=wxtool
config/wxtool.php檔。
設定AppID及AppSecret
在根目錄.env檔案中加入以下程式碼
WX_APPID = 您的小程序小程序ID WX_SECRET = 您的小程序密钥
公開storage存取檔案(可選)
若要使用帶參數小程式碼產生 功能時必須執行下面指令。產生的小程式碼預設儲存在storage/app/public/qrcode資料夾中
php artisan storage:link
<?php namespace App\Http\Controllers; use Icharle\Wxtool\Wxtool; use Illuminate\Http\Request; class TestController extends Controller { /** * 获取带参数小程序码 * @param $scene 场景值(最大32个可见字符,只支持数字,大小写英文以及部分特殊字符) * @param $pages 页面(必须是已经发布的小程序存在的页面(否则报错) * @return $imgpath 小程序码路径 (可以直接访问 http://xxx.com/$imgpath) */ public function GetImgCode($scene,$pages) { $a = new Wxtool(); $imgpath = $a->GetQrcode($scene,$pages); } }
<?php namespace App\Http\Controllers; use Icharle\Wxtool\Wxtool; use Illuminate\Http\Request; class TestController extends Controller { /** * 获取用户详细信息 * @param Request $request */ public function GetInfo(Request $request) { $a = new Wxtool(); $code = $request->code; //wx.login获取 $encryptedData = $request->encryptedData; //wx.getUserInfo 获取 $iv = $request->iv; //wx.getUserInfo 获取 $res = $a->GetSessionKey($code); //获取用户openid 和 session_key $userinfo = $a->GetUserInfo($encryptedData,$iv); //获取用户详细信息 dd($userinfo); } }
解密傳回結果
{ "openId": "OPENID", "nickName": "NICKNAME", "gender": GENDER, "city": "CITY", "province": "PROVINCE", "country": "COUNTRY", "avatarUrl": "AVATARURL", "unionId": "UNIONID", "watermark": { "appid":"APPID", "timestamp":TIMESTAMP } }
以上是Laravel微信小程式取得使用者詳細資料及附參數小程式碼擴充的分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!