微信小程序怎么授权获取用户详细信息

微信小程序怎么授权获取用户详细信息

这篇文章主要介绍“微信小程序怎么授权获取用户详细信息”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序怎么授权获取用户详细信息”文章能帮助大家解决问题。

小程序获取用户的头像昵称openid之类

第一种使用wx.getUserInfo直接获取微信头像,昵称

wx.getUserInfo({success:function(res){that.setData({nickName:res.userInfo.nickName,avatarUrl:res.userInfo.avatarUrl,})},})

第二种

我们在使用小程序wx.login API进行登录的时候,直接使用wx.getUserInfo是不能获取更多的信息的,如微信用户的openid。
官方提示,需要发送获取到的code进行请求到微信的后端API,进行用户解密之类的操作才可以获取,

根据文档,只需要进行一个get请求到如下地址即可:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_codeappid和secret在微信小程序后台可以看到,js_code为使用wx.login登录时获取到的code参数数据,grant_type这个不用改动。

js文件

varopenId=(wx.getStorageSync('openId'))if(openId){wx.getUserInfo({success:function(res){that.setData({nickName:res.userInfo.nickName,avatarUrl:res.userInfo.avatarUrl,})},fail:function(){//failconsole.log("获取失败!")},complete:function(){//completeconsole.log("获取用户信息完成!")}})}else{wx.login({success:function(res){console.log(res.code)if(res.code){wx.getUserInfo({withCredentials:true,success:function(res_user){wx.request({//后台接口地址url:'https://....com/wx/login',data:{code:res.code,encryptedData:res_user.encryptedData,iv:res_user.iv},method:'GET',header:{'content-type':'application/json'},success:function(res){//this.globalData.userInfo=JSON.parse(res.data);that.setData({nickName:res.data.nickName,avatarUrl:res.data.avatarUrl,})wx.setStorageSync('openId',res.data.openId);}})},fail:function(){wx.showModal({title:'警告通知',content:'您点击了拒绝授权,将无法正常显示个人信息,点击确定重新获取授权。',success:function(res){if(res.confirm){wx.openSetting({success:(res)=>{if(res.authSetting["scope.userInfo"]){////如果用户重新同意了授权登录wx.login({success:function(res_login){if(res_login.code){wx.getUserInfo({withCredentials:true,success:function(res_user){wx.request({url:'https://....com/wx/login',data:{code:res_login.code,encryptedData:res_user.encryptedData,iv:res_user.iv},method:'GET',header:{'content-type':'application/json'},success:function(res){that.setData({nickName:res.data.nickName,avatarUrl:res.data.avatarUrl,})wx.setStorageSync('openId',res.data.openId);}})}})}}});}},fail:function(res){}})}}})},complete:function(res){}})}}})}},globalData:{userInfo:null}

后台是php 框架是laravel5.4版本

官方文档:

https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html

微信官方提供了多种编程语言的示例代码(点击下载)。每种语言类型的接口名字均一致。调用方式可以参照示例。

下载之后在php文件中引入:

<?phpnamespaceApp\Http\Controllers\Admin;useIlluminate\Http\Request;useApp\Http\Controllers\Controller;useApp\Models\User;useApp\Models\Wechatuser;include_onceapp_path('/Http/Controllers/Admin/PHP/wxBizDataCrypt.php');//获取微信用户信息publicfunctiongetWxLogin(Request$request){//require_onceROOTPATH."./PHP/wxBizDataCrypt.php";$code=$request->get('code');$encryptedData=$request->get('encryptedData');$iv=$request->get('iv');$appid="***";$secret="***";$URL="https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code";$apiData=file_get_contents($URL);//var_dump($code,'wwwwwwww',$apiData['errscode']);//$ch=curl_init();//  curl_setopt($ch,CURLOPT_URL,$URL);//  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//  curl_setopt($ch,CURLOPT_HEADER,0);//  $output=curl_exec($ch);//  curl_close($ch)if(!isset($apiData['errcode'])){$sessionKey=json_decode($apiData)->session_key;$userifo=new\WXBizDataCrypt($appid,$sessionKey);$errCode=$userifo->decryptData($encryptedData,$iv,$data);if($errCode==0){return($data."\n");}else{returnfalse;}}}

官方文档的登录流程图,整个登录流程基本如下图所示:

关于“微信小程序怎么授权获取用户详细信息”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

发布于 2022-04-11 21:15:47
收藏
分享
海报
0 条评论
34
上一篇:微信小程序如何使用蓝牙链接 下一篇:微信小程序中怎么实现swiper组件构建轮播图
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码