IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 小程序解密手机号失败的解决方案 -> 正文阅读

[移动开发]小程序解密手机号失败的解决方案

概要

  • 在小程序开发中,获取用户信息,获取手机号基本是必须用到的功能
  • 但是在有些时候会遇到小程序解密失败的问题,这多数是因为前端这边登录流程出的问题
  • 会出错的流程:前端多数是把open-data的获取加密信息按钮做成登录按钮,然后点击的时候用wx.login获取code,成功后将加密信息和code传到后端直接调用解密手机号的接口,这样session_key可能没来得及刷新,从而导致解密失败,但是第二次解密一定会成功的现象

原因分析

  • 出错的原因:在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。
  • 解决方案:建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。

解决案例

所有解决办法是提前调wx.login,在获取手机号的回调方法中取检验登录状态,代码如下:

onLoad: function (options) {
  wx.login({
    success: res => {
      that.setData({
        code: res.code
      })
    }
  })//先登录提前保存code
},
getPhoneNumber(e) {//触发获取手机号加密信息
  let that = this,
  encryptedData = e.detail.encryptedData,
  iv = e.detail.iv;
  wx.checkSession({
    success() {
      //session_key 未过期,并且在本生命周期一直有效(这里面可以不写代码)
    },
    fail() {
      // session_key 已经失效,需要重新执行登录流程并更新code
      wx.login({
        success: res => {
          code = res.code
          that.setData({
            code: code
          })
        }
      })
    },
    complete() {
      //将code,encryptedData,iv传给后台进行解密
    }
  })
}
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:56:29  更:2021-09-11 18:57:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:27:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码