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

來源:互聯網
上載者:User
這篇文章主要介紹了關於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 = 您的小程式小程式IDWX_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        }    }

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.