小程序模板網(wǎng)

Laravel5微信小程序登錄獲取用戶信息擴(kuò)展

發(fā)布時(shí)間:2017-12-15 09:01 所屬欄目:小程序開發(fā)教程

小程序官方的加解密 SDK 已經(jīng)非常清楚了,只不過改成 Laravel 風(fēng)格而已,僅僅相當(dāng)于搬磚工。至于重復(fù)造輪子,我發(fā)現(xiàn)其他人的擴(kuò)展解密用戶信息的時(shí)候代碼出錯(cuò)了,并且需要安裝一個(gè) Laravel 的 Curl 擴(kuò)展也沒說。只好 ...

 
 
 

小程序官方的加解密 SDK 已經(jīng)非常清楚了,只不過改成 Laravel 風(fēng)格而已,僅僅相當(dāng)于搬磚工。至于重復(fù)造輪子,我發(fā)現(xiàn)其他人的擴(kuò)展解密用戶信息的時(shí)候代碼出錯(cuò)了,并且需要安裝一個(gè) Laravel 的 Curl 擴(kuò)展也沒說。只好自己去根據(jù)他們的源碼自己寫一個(gè)0.0 ,不依賴其他擴(kuò)展,直接安裝使用即可。 
小程序API接口

用戶登錄:wx.login 
獲取用戶信息:wx.getUserInfo 
安裝

執(zhí)行以下命令安裝最新穩(wěn)定版本:

 

		
  1. composer require iwanli/wxxcx

或者添加如下信息到你的 composer.json 文件中 :

 

		
  1. "iwanli/wxxcx": "^1.0",

然后注冊(cè)服務(wù)提供者到 Laravel中 具體位置:/config/app.php 中的 providers 數(shù)組:

 

		
  1. Iwanli\Wxxcx\WxxcxServiceProvider::class,

發(fā)布配置文件:

 

		
  1. php artisan vendor:publish --tag=wxxcx

命令完成后,會(huì)添加一個(gè)wxxcx.php配置文件到您的配置文件夾 如 : /config/wxxcx.php。

生成配置文件后,將小程序的 AppID 和 AppSecret 填寫到 /config/wxxcx.php 文件中

在Laravel 5控制器中使用 (示例)

 

		
  1. ...
  2.  
  3. use Iwanli\Wxxcx\Wxxcx;
  4.  
  5. class WxxcxController extends Controller
  6. {
  7. protected $wxxcx;
  8.  
  9. function __construct(Wxxcx $wxxcx)
  10. {
  11. $this->wxxcx = $wxxcx;
  12. }
  13.  
  14. /**
  15. * 小程序登錄獲取用戶信息
  16. * @author 晚黎
  17. * @date 2017-05-27T14:37:08+0800
  18. * @return [type] [description]
  19. */
  20. public function getWxUserInfo()
  21. {
  22. //code 在小程序端使用 wx.login 獲取
  23. $code = request('code', '');
  24. //encryptedData 和 iv 在小程序端使用 wx.getUserInfo 獲取
  25. $encryptedData = request('encryptedData', '');
  26. $iv = request('iv', '');
  27.  
  28. //根據(jù) code 獲取用戶 session_key 等信息, 返回用戶openid 和 session_key
  29. $userInfo = $this->wxxcx->getLoginInfo($code);
  30.  
  31. //獲取解密后的用戶信息
  32. return $this->wxxcx->getUserInfo($encryptedData, $iv);
  33. }
  34. }

用戶信息返回格式:

 

		
  1. {
  2. "openId": "xxxx",
  3. "nickName": "晚黎",
  4. "gender": 1,
  5. "language": "zh_CN",
  6. "city": "",
  7. "province": "Shanghai",
  8. "country": "CN",
  9. "avatarUrl": "http://wx.qlogo.cn/mmopen/xxxx",
  10. "watermark": {
  11. "timestamp": 1495867603,
  12. "appid": "your appid"
  13. }
  14. }

小程序端獲取 code、iv、encryptedData 向服務(wù)端發(fā)送請(qǐng)求示例代碼:

 

		
  1. //調(diào)用登錄接口
  2. wx.login({
  3. success: function (response) {
  4. var code = response.code
  5. wx.getUserInfo({
  6. success: function (resp) {
  7. wx.request({
  8. url: 'your domain',
  9. data: {
  10. code: code,
  11. iv: resp.iv,
  12. encryptedData: resp.encryptedData
  13. },
  14. success: function (res) {
  15. console.log(res.data)
  16. }
  17. })
  18. }
  19. })
  20. },
  21. fail:function(){
  22. ...
  23. }
  24. })

如有bug,請(qǐng)?jiān)?Issues 中反饋,非常感謝!



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://22321a.com/wxmini/doc/course/18172.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢