首頁 >後端開發 >php教程 >Laravel微信小程式取得使用者詳細資料及附參數小程式碼擴充的分析

Laravel微信小程式取得使用者詳細資料及附參數小程式碼擴充的分析

不言
不言原創
2018-07-06 14:02:222773瀏覽

這篇文章主要介紹了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
        }
    }

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關建議:

Laravel5.5以上版本多環境.env設定讀取

以上是Laravel微信小程式取得使用者詳細資料及附參數小程式碼擴充的分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn