首页前端开发JavaScript微信小程序用户授权获取手机号(getPhoneNumber)

微信小程序用户授权获取手机号(getPhoneNumber)

时间2024-02-01 03:14:03发布访客分类JavaScript浏览742
导读:收集整理的这篇文章主要介绍了微信小程序用户授权获取手机号(getPhoneNumber),觉得挺不错的,现在分享给大家,也给大家做个参考。 前言小程序有一个获取用户很便捷的api,就是通...
收集整理的这篇文章主要介绍了微信小程序用户授权获取手机号(getPhoneNumber),觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

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

实现思路:

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

2、通过getPhoneNumber获取encryptedData,iv

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

直接上干货:

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

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

2、弹出授权图片:

3、通过解密获取手机号码

直接上代码:

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();
 //重新登录    }
  }
    );
}
    

后台代码:

/*** 解密并且获取用户手机号码* @param encrypdata* @param ivdata* @param sessionkey* @param request* @return* @throws Exception */@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)
  • 微信小程序获取手机号授权用户登录功能
  • 微信小程序用户授权、位置授权及获取微信绑定手机号
  • 微信小程序如何获取用户手机号
  • 微信小程序getPhoneNumber获取用户手机号
  • 微信小程序获取用户信息及手机号(后端TP5.0)
  • 微信小程序开发之获取用户手机号码(php接口解密)
  • 微信小程序获取用户绑定手机号方法示例
  • 微信小程序如何同时获取用户信息和用户手机号

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: 如何在微信小程序中使用less详解...下一篇:微信小程序开发篇之踩坑记录猜你在找的JavaScript相关文章 html font标签如何设置字体大小?html font标签属性用法介绍2022-05-16vue3+TypeScript+vue-router的使用方法2022-04-16vue3获取当前路由地址2022-04-16如何利用React实现图片识别App2022-04-16JavaScript展开运算符和剩余运算符的区别详解2022-04-16微信小程序中使用vant框架的具体步骤2022-04-16Vue elementUI表单嵌套表格并对每行进行校验详解2022-04-16如何利用Typescript封装本地存储2022-04-16微信小程序中wxs文件的一些妙用分享2022-04-16JavaScript的Set数据结构详解2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: 微信小程序用户授权获取手机号(getPhoneNumber)
本文地址: https://pptw.com/jishu/594846.html
c语言提供的合法的数据类型关键字是什么 js canvas实现滑块验证

游客 回复需填写必要信息