网页手机号抓取程序(亿速云网站:请求后台解密获取用户手机号直接上干货)

优采云 发布时间: 2021-09-23 17:01

  网页手机号抓取程序(亿速云网站:请求后台解密获取用户手机号直接上干货)

  这个内容主要是解释“如何授权手机号码-goneNumber”,“感兴趣的朋友可能会看看。本文中介绍的方法简单又快速实用。让我们拿一个小系列带你”如何授权手机号码-GetPhoneNumber“”微信小程序用户“!”

  前言

  applet有一个api,让用户非常方便,是让用户的手机号码通过getphonumber绑定到微信。要注意的一件事要注意,现在微信并注意用户体验,需要一些方法需要主动触发呼叫,如GetPhonenumber。

  实现:

  1、通过wx.login获取代码,收益OpenID和Sessionkey

  2、 get encrypteddata,iv

  通过getphonenumber

  3、 pass参数[encypteddata],[iv],[sessionkey]请求背景解密用户手机号

  直接交付:

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

  获取用户手机号

  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",

          a*敏*感*词*ey: "a*敏*感*词*eySbcx"

        },

        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 block

e.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"); 

  }

  摘要

  在这里,我相信每个人都有更深入的了解“如何授权手机号码-GethoneNumber”“微信小程序”,“我必须实际上有一件事!这是亿速云网站,更多相关内容可以进入相关渠道查询,注意我们,继续学习!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线