功能介紹
本擴充套件包包含使用者詳細資訊解密、帶引數小程式碼生成並儲存在本地目錄功能。
使用者詳細資訊解密官方也提供多種語言版本SDK(C++、PHP、Node、Python),在本擴充套件包中僅僅做封裝處理。
帶引數小程式碼生成,官方給出三種介面,在此擴充套件包中採用 介面B (適用於需要的碼數量極多的業務場景,通過該介面生成的小程式碼,永久有效,數量暫無限制)。
專案地址
https://github.com/icharle/Wxtool
使用方法
執行以下命令以獲取最新版本:
composer require icharle/wxtool 1.0
將服務提供者新增到配置檔案中的providers
陣列中config/app.php
,如下所示:
`providers` => [
...
IcharleWxtoolWxtoolServiceProvider::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 AppHttpControllers;
use IcharleWxtoolWxtool;
use IlluminateHttpRequest;
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 AppHttpControllers;
use IcharleWxtoolWxtool;
use IlluminateHttpRequest;
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
}
}