最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序用戶(hù)授權(quán)獲取手機(jī)號(hào)(getPhoneNumber)

 更新時(shí)間:2021年03月12日 15:34:11   作者:chen_pan_pan  
這篇文章主要給大家介紹了關(guān)于微信小程序用戶(hù)授權(quán)獲取手機(jī)號(hào)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

小程序有一個(gè)獲取用戶(hù)很便捷的api,就是通過(guò)getPhoneNumber獲取用戶(hù)的已經(jīng)綁定微信的手機(jī)號(hào)碼。有一點(diǎn)要大家注意,現(xiàn)在微信和注重用戶(hù)體驗(yàn),有些方法都是需要用戶(hù)主動(dòng)去觸發(fā)才能調(diào)用的,比如getPhoneNumber。

實(shí)現(xiàn)思路:

1、通過(guò)wx.login獲取code,從而獲取到用戶(hù)的openID和sessionKey

2、通過(guò)getPhoneNumber獲取encryptedData,iv

3、通過(guò)參數(shù)【encryptedData】 、【iv】 、【sessionKey】  請(qǐng)求后臺(tái)解密獲取用戶(hù)手機(jī)號(hào)

直接上干貨:

1、用戶(hù)點(diǎn)擊獲取用戶(hù)手機(jī)號(hào)碼按鈕

<button class='pop_btn' plain="true"

open-type='getPhoneNumber' bindgetphonenumber="getPhoneNumber">獲取用戶(hù)手機(jī)號(hào)</button>

2、彈出授權(quán)圖片:

3、通過(guò)解密獲取手機(jī)號(hào)碼

直接上代碼:

wxlogin: function() { //獲取用戶(hù)的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' // 默認(rèn)值
        },
        success: (res) = >{
          console.log(res);
          that.setData({
            sessionKey: res.data.session_key

          });
        }
      });
    }
  });
}

getPhoneNumber: function(e) { //點(diǎn)擊獲取手機(jī)號(hào)碼按鈕
  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 { //同意授權(quán)
        wx.request({
          method: "GET",
url: 'https://xxx/wx/deciphering.do',
          data: {
            encrypdata: ency,
            ivdata: iv,
            sessionkey: sessionk
          },
          header: {
            'content-type': 'application/json' // 默認(rèn)值
          },
          success: (res) = >{
            console.log("解密成功~~~~~~~將解密的號(hào)碼保存到本地~~~~~~~~");
            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 已經(jīng)失效,需要重新執(zhí)行登錄流程");
      that.wxlogin(); //重新登錄
    }
  });
}

后臺(tái)代碼:

/**
* 解密并且獲取用戶(hù)手機(jī)號(hào)碼
* @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"); 
  }

總結(jié)

到此這篇關(guān)于微信小程序用戶(hù)授權(quán)獲取手機(jī)號(hào)的文章就介紹到這了,更多相關(guān)小程序授權(quán)獲取手機(jī)號(hào)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS自定義打印及靜默打印的實(shí)現(xiàn)方法

    JS自定義打印及靜默打印的實(shí)現(xiàn)方法

    在瀏覽器上打印應(yīng)該一個(gè)比較常見(jiàn)的操作, 最簡(jiǎn)單的打印方式就是直接點(diǎn)擊瀏覽器右上角,找到“打印”按鈕或者調(diào)用window.print(), 然而,實(shí)際情況下大多數(shù)需求都不會(huì)如此簡(jiǎn)單,所以本文給大家介紹了使用JS自定義打印及靜默打印的方法實(shí)現(xiàn),需要的朋友可以參考下
    2024-01-01
  • 腳本寫(xiě)的IE右鍵助手

    腳本寫(xiě)的IE右鍵助手

    腳本寫(xiě)的IE右鍵助手...
    2006-07-07
  • Weex開(kāi)發(fā)之地圖篇的具體使用

    Weex開(kāi)發(fā)之地圖篇的具體使用

    這篇文章主要介紹了Weex開(kāi)發(fā)之地圖篇的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • layer關(guān)閉彈出窗口觸發(fā)表單提交問(wèn)題的處理方法

    layer關(guān)閉彈出窗口觸發(fā)表單提交問(wèn)題的處理方法

    今天小編就為大家分享一篇layer關(guān)閉彈出窗口觸發(fā)表單提交問(wèn)題的處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • js的touch事件的實(shí)際引用

    js的touch事件的實(shí)際引用

    研究移動(dòng)端頁(yè)面的觸屏滑動(dòng)事件,搜索jquery 的相應(yīng)技術(shù)支持實(shí)在繁瑣,而js只需幾步簡(jiǎn)單定義即可,下面與大家分享下js的touch事件的實(shí)際引用
    2014-10-10
  • 微信公眾號(hào)h5使用微信支付及支付寶支付的步驟(前端)

    微信公眾號(hào)h5使用微信支付及支付寶支付的步驟(前端)

    微信H5支付是一種支付解決方案,主要適用于商戶(hù)在微信客戶(hù)端外的移動(dòng)端網(wǎng)頁(yè)上展示商品或服務(wù)的場(chǎng)景,這篇文章主要給大家介紹了關(guān)于微信公眾號(hào)h5使用微信支付及支付寶支付(前端)的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • javascript 播放器 控制

    javascript 播放器 控制

    javascript 播放器 控制...
    2007-01-01
  • 如何使用CocosCreator對(duì)象池

    如何使用CocosCreator對(duì)象池

    這篇文章主要介紹了CocosCreator對(duì)象池,對(duì)性能有研究的同學(xué),要著重看一下
    2021-04-04
  • 用javascript獲取textarea中的光標(biāo)位置

    用javascript獲取textarea中的光標(biāo)位置

    Javascript一向以他的靈活隨意而著稱(chēng),這也使得它的功能可以非常的強(qiáng)大,而由于沒(méi)有比較好的調(diào)試工具,又使得它使用起來(lái)困難重重,尤其使對(duì)于一些初學(xué)者,更是感覺(jué)到無(wú)從下手。今天探討的問(wèn)題是用javascript獲取textarea中光標(biāo)的位置。
    2008-05-05
  • javascript實(shí)現(xiàn)簡(jiǎn)易計(jì)算器

    javascript實(shí)現(xiàn)簡(jiǎn)易計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)簡(jiǎn)易計(jì)算器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評(píng)論

郯城县| 绥化市| 保靖县| 绵阳市| 建德市| 阳西县| 成安县| 阿克| 若羌县| 杭锦旗| 天镇县| 铁力市| 盖州市| 郎溪县| 石景山区| 札达县| 老河口市| 宝清县| 维西| 慈溪市| 永定县| 台东市| 砀山县| 增城市| 石狮市| 安陆市| 长垣县| 铜陵市| 梅河口市| 德令哈市| 密山市| 都安| 田东县| 汕尾市| 克山县| 克东县| 丰都县| 中超| 龙江县| 商河县| 花垣县|