大家有不会的可以加群讨论

index.wxml

<button  open-type='getUserInfo'  bindgetuserinfo="onGotUserInfo" > </button>

button标签详解

index.js

获取code链接
返回openid session_key uinionid(需要绑定微信开放平台)errcode number errMsg等参数的链接
获取uinionid的三种方式

//获取应用实例
const app = getApp()
Page({data: {code:''",id:''",},//事件处理函数onLoad: function (option) {console.log(option)var that = thiswx.login({success:function(res){that.setData({code:res.code})}})let id = '0'console.log(wx.getStorageSync(id))that.setData({ id: wx.getStorageSync(id)})},//获取用户信息onGotUserInfo: function (res) {console.log(res)//获取的数据有 encryptedData,iv等// 做一个判断是否已经授权然后继续操作var that = this//查看是否授权let id = '0'if (wx.getStorageSync(id)){wx.navigateTo({url: ‘跳转页面的地址’,})}else{wx.request({url: '你的请求地址',method: 'POST',header: {"Content-Type": "application/x-www-form-urlencoded"},data: { 'code': that.data.code, 'encryptedData': res.detail.encryptedData, 'iv': res.detail.iv },success: function (res) {#查看注意事项《1》console.log(res.data)that.setData({ id: res.data})wx.navigateTo({url: ‘跳转页面的地址’,})//查看是否授权let id = '0'wx.setStorageSync(id, res.data)  }})}},
})

####注意事项《1》如果是用的自带底部导航栏配置 ,用户第一次拒绝授权,再次点击授权允许的时候会报-41001 。原因是code没有更新需要跟新code,解决办法在判断拒绝授权的时候刷新当前页面

 if (getCurrentPages().length != 0) {//刷新当前页面的数据getCurrentPages()[getCurrentPages().length - 1].onLoad()}#wx.login需要放在onload里面不要放在onShow里面

进行解码算法

解码文件的下载

下方我对demo.php的改造可以参考 其余两个文件不用改

<?php
include_once "wxBizDataCrypt.php";
#获取个人信息部分
$appid = ‘xxxxxxxxxxxxx';
$secret=  'xxxxxxxxxxxxxxxxxxx';
$code = $_POST['code'];//是前方获取的code(login组件)
$sessionKeyUrl = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';$sessionKey= http_get($sessionKeyUrl);
$sessionKey = json_decode($sessionKey,true);
$sessionKey = $sessionKey['session_key'];$encryptedData = $_POST['encryptedData'];$iv = $_POST['iv'];function http_get($sessionKeyUrl)
{$curl = curl_init(); // 启动一个CURL会话curl_setopt($curl, CURLOPT_URL, $sessionKeyUrl);curl_setopt($curl, CURLOPT_HEADER, 0);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);  // 从证书中检查SSL加密算法是否存在$tmpInfo = curl_exec($curl);     //返回api的json对象//关闭URL请求curl_close($curl);return $tmpInfo;
}$pc = new WXBizDataCrypt($appid, $sessionKey);$errCode = $pc->decryptData($encryptedData, $iv, $data );
if ($errCode == 0) {print($data) //最终数据
} else {print($errCode . "\n");
}

结果

{"openId": "OPENID","nickName": "NICKNAME","gender": GENDER,"city": "CITY","province": "PROVINCE","country": "COUNTRY","avatarUrl": "AVATARURL","unionId": "UNIONID","watermark":{"appid":"APPID","timestamp":TIMESTAMP}
}

查看是否授权 包括自动更新

用到的API: setStorageSync,getStorageSync

在app.js里面

App({onLaunch: function () {//自动更新的设置const updateManager = wx.getUpdateManager()updateManager.onCheckForUpdate(function (res) {// 请求完新版本信息的回调console.log(res.hasUpdate)})updateManager.onUpdateReady(function () {wx.showModal({title: '更新提示',content: '新版本已经准备好,是否重启应用?',success: function (res) {if (res.confirm) {// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启updateManager.applyUpdate()}}})})updateManager.onUpdateFailed(function () {// 新的版本下载失败wx.showModal({title: '更新提示',content: '新版本下载失败',showCancel: false})})let id = '0' //首先给个默认值 否则报错wx.getStorageSync(id)console.log(wx.getStorageSync(id))},globalData: {id : ''}
})

微信小程序(五)新版的用户授权和判断是否是否已经授权和自动提示更新版本相关推荐

  1. 微信小程序中如何获取用户手机号授权登录

    随着微信小程序的普及,许多应用程序需要用户登录才能提供更好的服务.而获取用户手机号码是验证用户身份和确保账户安全的重要步骤之一.因此,在本文中,我们将介绍如何在微信小程序中实现手机号授权登录. 步骤一 ...

  2. 微信小程序涉嫌通过中断用户体验、限制用户操作的方式,收集与服务无关的用户个人信息,包括但不限于,手机号、

    微信小程序涉嫌通过中断用户体验.限制用户操作的方式,收集与服务无关的用户个人信息,包括但不限于,手机号.身份证号.生日.住址等,违反<微信小程序平台运营规则>及相关规则,建议尽快整改.具体 ...

  3. php网页抓取浏览者手机号码_微信小程序开发之获取用户手机号码(php接口解密)...

    后边要做一个微信小程序,并要能获取用户微信绑定的手机号码.而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返回的是密文,需要服务器端进行解密,但是官方提供的开发文档一如 ...

  4. 微信小程序前端解密获取用户信息

    在微信小程序中,通过用户手动可以获取到用户昵称,头像等基本信息,稍微敏感的信息无法获取到,需要通过后端解密才能获取到. 例如获取用户手机: 在网上找到cryptojs包,下载下来复制到utils文件夹 ...

  5. 微信小程序使用腾讯位置服务地图选点实现地址的选取|微信小程序腾讯位置服务地图选点请求来源未被授权

    效果图 首先要在微信开放平台的小程序里 添加插件 具体配置,可以参考官方文档 腾讯位置服务地图选点 | 小程序插件 | 微信公众平台 (qq.com) 同时还要申请接口的权限,不然小程序上线的时候不能 ...

  6. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号详解

    最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...

  7. 微信小程序python解析获取用户手机号_微信小程序如何获取用户手机号

    最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...

  8. 微信小程序云开发之用户输入数据后excel表格导出升级版

    大家好,我是csdn的小博主lqj_本人,最近在哔哩哔哩开始上传我的制作微信小程序的详细流程,大家可以关注一下哔哩哔哩:小淼前端 本次程序的详细视频教程已上传至哔哩哔哩: 腾讯云开发小程序之用户输入数 ...

  9. 微信小程序联盟:官方文档+精品教程+demo集合(5月31日更新,持续更新中……)...

    2019独角兽企业重金招聘Python工程师标准>>> 微信小程序联盟 1:官方工具: https://mp.weixin.qq.com/debug/w ... tml?t=1476 ...

  10. 微信小程序导航:官方文档+精品教程+demo集合(5月31日更新)

    官方文档 1:官方工具:https://mp.weixin.qq.com/debug/w - tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/d ...

最新文章

  1. 服务器配置tensorflow2.0.0的gpu环境,python3.7
  2. vs2015 去除 git 源代码 绑定,改成向tfs添加源码管理
  3. C#实现GDI+基本图的缩放、拖拽、移动
  4. 如何让 Azure AD 里的应用只允许特定用户登录
  5. 用递归方式判断字符串是否是回文
  6. java包含关系图_Java——Spring框架完整依赖关系图!再复习了解加工一下吧?
  7. Watson的未来就是IBM的未来
  8. ASA8.4端口映射篇
  9. 聊聊 Tomcat 的单机多实例
  10. ad域推送软件_ManageEngine ADManager Plus(AD域管理工具) V7.0.1 官方中文版
  11. linux chmod 755
  12. linux如何破解密码
  13. 服务总线 开源_UltraESB企业服务总线将开源
  14. 功率因数校正的离线式开关电源设计
  15. android自定义渐变色,Android如何设置渐变色背景 | 夕辞
  16. 三维空间中,向量在另外一个向量或者面上的投影
  17. mongo 查询,修改,批量修改
  18. 2月综艺节目网络关注度榜出炉 《王牌对王牌》跃居榜首
  19. 2021-11-15----韩顺平Java入门第九天
  20. RK3399 - Android7.1 调试串口波特率修改

热门文章

  1. Android自定义日历控件(附效果图)
  2. java虚拟机内存情况检测,测试啦啦啦啦啦1111
  3. RabbitMQ队列、消息应答、持久化操作相关概念以及操作的详解
  4. Win10播放视频卡顿怎么解决
  5. Bmob后端云的使用
  6. WEB--3D立体魔方小游戏 (附源码)
  7. 学 C++ ,能不能简单点?
  8. mysql 分区表合并_MySQL 合并表、分区表
  9. 服务器硬盘无法显示扩展卷,win10硬盘分区合并扩展卷没法点怎么解决_win10硬盘分区不能点扩展卷修复方法-win7之家...
  10. Python非线性拟合笔记