Laravel 微信小程序獲取『用戶詳細信息』及『帶參數小程序碼』擴展

功能介紹

本擴展包包含用戶詳細信息解密、帶參數小程序碼生成並保存在本地目錄功能。 用戶詳細信息解密官方也提供多種語言版本SDK(C++、PHP、Node、Python),在本擴展包中僅僅作封裝處理。 帶參數小程序碼生成,官方給出三種接口,在此擴展包中採用 接口B (適用於須要的碼數量極多的業務場景,經過該接口生成的小程序碼,永久有效,數量暫無限制)。php

項目地址

github.com/icharle/Wxt…html

使用方法

運行如下命令以獲取最新版本:git

composer require icharle/wxtool 1.0
複製代碼

將服務提供者添加到配置文件中的providers數組中config/app.php,以下所示:github

'providers' => [

    ...

    Icharle\Wxtool\WxtoolServiceProvider::class,
]
複製代碼

發佈配置文件小程序

php artisan vendor:publish --tag=wxtool
複製代碼

此時有一個config/wxtool.php文件。api

配置AppID及AppSecret數組

在根目錄.env文件中添加以下代碼bash

WX_APPID = 您的小程序小程序ID
WX_SECRET = 您的小程序密鑰
複製代碼

公開storage訪問文件(可選)session

若要使用 帶參數小程序碼生成 功能時必須執行下面命令。生成的小程序碼默認保存在storage/app/public/qrcode文件夾中app

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);            //獲取用戶詳細信息
          }
      }
    複製代碼

    解密返回結果

    {
        "openId": "OPENID",
        "nickName": "NICKNAME",
        "gender": GENDER,
        "city": "CITY",
        "province": "PROVINCE",
        "country": "COUNTRY",
        "avatarUrl": "AVATARURL",
        "unionId": "UNIONID",
        "watermark":
        {
            "appid":"APPID",
            "timestamp":TIMESTAMP
        }
    }
    複製代碼
相關文章
相關標籤/搜索