我的编程空间,编程开发者的网络收藏夹
学习永远不晚

微信小程序用户如何授权获取手机号-getPhoneNumber

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

微信小程序用户如何授权获取手机号-getPhoneNumber

本篇内容主要讲解“微信小程序用户如何授权获取手机号-getPhoneNumber”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序用户如何授权获取手机号-getPhoneNumber”吧!

前言

小程序有一个获取用户很便捷的api,就是通过getPhoneNumber获取用户的已经绑定微信的手机号码。有一点要大家注意,现在微信和注重用户体验,有些方法都是需要用户主动去触发才能调用的,比如getPhoneNumber。

实现思路:

通过wx.login获取code,从而获取到用户的openID和sessionKey

通过getPhoneNumber获取encryptedData,iv

通过参数【encryptedData】 、【iv】 、【sessionKey】  请求后台解密获取用户手机号

直接上干货:

用户点击获取用户手机号码按钮

<button class='pop_btn' plain="true"open-type='getPhoneNumber' bindgetphonenumber="getPhoneNumber">获取用户手机号</button>

弹出授权图片:

微信小程序用户如何授权获取手机号-getPhoneNumber

通过解密获取手机号码

微信小程序用户如何授权获取手机号-getPhoneNumber

直接上代码:

wxlogin: function() { //获取用户的openID和sessionKey  var that = this;  wx.login({    //获取code 使用wx.login得到的登陆凭证,用于换取openid    success: (res) = >{      wx.request({        method: "GET",        url: 'https://xxxwx/wxlogin.do',        data: {          code: res.code,          appId: "appIdSbcx",          appKey: "appKeySbcx"        },        header: {          'content-type': 'application/json' // 默认值        },        success: (res) = >{          console.log(res);          that.setData({            sessionKey: res.data.session_key          });        }      });    }  });}getPhoneNumber: function(e) { //点击获取手机号码按钮  var that = this;  wx.checkSession({    success: function() {      console.log(e.detail.errMsg)      console.log(e.detail.iv)      console.log(e.detail.encryptedData)      var ency = e.detail.encryptedData;      var iv = e.detail.iv;      var sessionk = that.data.sessionKey;      if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {        that.setData({          modalstatus: true        });      } else { //同意授权        wx.request({          method: "GET",url: 'https://xxx/wx/deciphering.do',          data: {            encrypdata: ency,            ivdata: iv,            sessionkey: sessionk          },          header: {            'content-type': 'application/json' // 默认值          },          success: (res) = >{            console.log("解密成功~~~~~~~将解密的号码保存到本地~~~~~~~~");            console.log(res);            var phone = res.data.phoneNumber;            console.log(phone);          },          fail: function(res) {            console.log("解密失败~~~~~~~~~~~~~");            console.log(res);          }        });      }    },    fail: function() {      console.log("session_key 已经失效,需要重新执行登录流程");      that.wxlogin(); //重新登录    }  });}

后台代码:

@RequestMapping(value = "deciphering", method = RequestMethod.GET)public @ResponseBody String deciphering(String encrypdata, String ivdata, String sessionkey,HttpServletRequest request) {    byte[] encrypData = Base64.decode(encrypdata);     byte[] ivData = Base64.decode(ivdata);     byte[] sessionKey = Base64.decode(sessionkey);     String str="";try {str = decrypt(sessionKey,ivData,encrypData);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}    System.out.println(str);     return str;}public static String decrypt(byte[] key, byte[] iv, byte[] encData) throws Exception {     AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv);     Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");     SecretKeySpec keySpec = new SecretKeySpec(key, "AES");     cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);     //解析解密后的字符串     return new String(cipher.doFinal(encData),"UTF-8");   }

总结

到此,相信大家对“微信小程序用户如何授权获取手机号-getPhoneNumber”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

微信小程序用户如何授权获取手机号-getPhoneNumber

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

微信小程序用户如何授权获取手机号-getPhoneNumber

本篇内容主要讲解“微信小程序用户如何授权获取手机号-getPhoneNumber”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序用户如何授权获取手机号-getPhoneNumber”吧!
2023-06-13

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

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

怎么用微信小程序getPhoneNumber快速获取用户手机号组件

本篇内容介绍了“怎么用微信小程序getPhoneNumber快速获取用户手机号组件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明获取微信
2023-06-26

.NET6使用微信小程序授权登录获取手机号

本文章介绍了如何在.NET6中使用微信小程序授权登录获取用户的基本信息,包括昵称、头像、性别和所在城市。此外,还介绍了如何获取用户的手机号,对于需要手机号验证的应用非常有用。文章提供了详细的步骤,包括注册微信开放平台应用、配置微信授权登录、处理授权登录回调、验证手机号(可选)以及将手机号与用户关联。最后,文章给出了最佳实践建议,例如使用HTTPS连接、加密存储手机号和遵守微信开放平台的政策。
.NET6使用微信小程序授权登录获取手机号
2024-04-02

微信小程序如何结合ThinkPHP5授权登陆后获取手机号

这篇文章给大家分享的是有关微信小程序如何结合ThinkPHP5授权登陆后获取手机号的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.在我们授权登陆后会获取到用户的 sessionKey 这个是获取手机号不可分割的
2023-06-25

微信小程序结合ThinkPHP5授权登陆后获取手机号

1.在我们授权登陆后会获取到用户的 sessionKey 这个是获取手机号不可分割的一部分上代码wxml:
2015-12-07

【uniapp开发小程序】点击获取手机号(使用@getphonenumber)

一、实现效果 二、代码实现: template>view>view class="shopadd" v-if="info.mobile">{{info.mobile}}view>button class="getNumber" v-els
2023-08-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录