1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 微信小程序授权获取用户详细信息实例

微信小程序授权获取用户详细信息实例

时间:2019-09-18 07:36:15

相关推荐

微信小程序授权获取用户详细信息实例

web前端|js教程

详细信息,小程序,用户

web前端-js教程

本文主要和大家介绍微信小程序授权获取用户详细信息openid的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下,希望能帮助到大家。

android 交友 源码,vscode 处理表格,ubuntu 创建脚本,web项目配tomcat,webscriper爬虫,php 函数 位置,seo 搜索负面信息上浮,asp三合一网站源码安装说明,免费手机网页制作模板lzw

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

在线签合同源码,ubuntu运用cd,压测tomcat主页面,怎样抓取爬虫,php fiber,白云区运营seo优化哪家便宜lzw

小熊棋牌全套完整源码,ubuntu的无线驱动,tomcat端口使用情况,api防止爬虫,php安全及性能优化,seo好上手lzw

第一种使用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./sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_codeappid和secret在微信小程序后台可以看到,js_code为使用wx.login登录时获取到的code参数数据,grant_type这个不用改动。

js文件

var openId = (wx.getStorageSync(openId)) if (openId) {wx.getUserInfo({success: function (res) { that.setData({ nickName: res.userInfo.nickName, avatarUrl: res.userInfo.avatarUrl, })},fail: function () { // fail console.log("获取失败!")},complete: function () { // complete console.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./debug/wxadoc/dev/api/signature.html

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

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

get(code); $encryptedData = $request->get(encryptedData); $iv = $request->get(iv); $appid = "***" ; $secret = "***"; $URL = "https://api./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 { return false;} } }

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

Thinkphp5微信小程序如何获取用户信息接口

微信小程序获取用户信息实例方法

微信小程序获取用户信息如何实现

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。