首頁 web前端 js教程 在微信小程式中如何才可以取得使用者手機號碼訊息

在微信小程式中如何才可以取得使用者手機號碼訊息

Jun 09, 2018 pm 01:49 PM
微信小程式 手機號 使用者

這篇文章主要為大家詳細介紹了微信小程序如何獲取用戶手機號,具有一定的參考價值,有興趣的小伙伴們可以參考一下

#最近在做一款微信小程序,需要取得使用者手機號,具體步驟如下:

流程圖:

#1、首先,客戶端呼叫wx.login,回呼資料了包含jscode,用於取得openid(使用者唯一識別)和sessionkey(會話密鑰)。

2、拿到jscode後,將其傳送給服務端,服務端拿它與微信服務端做互動取得openid和sessionkey。具體取得方法如下:

(1)需要寫一個HttpUrlConnection工具類別:

public class MyHttpUrlConnection { 
 private final int mTimeout = 10000; // 超时时间 
 /** 
 * get访问 
 */ 
 public String[] requestJson(String url) { 
 return request(url); 
 } 
 private String[] request(String connurl) { 
 String[] resultStr = new String[]{"", ""}; 
 StringBuilder resultData = new StringBuilder(""); 
 HttpURLConnection conn = null; 
 try { 
  URL url = new URL(connurl); 
  conn = (HttpURLConnection) url.openConnection(); 
  conn.setRequestMethod("GET"); 
  conn.setUseCaches(false); 
  conn.setConnectTimeout(mTimeout); 
  conn.connect(); 
  int resultCode = conn.getResponseCode(); 
  InputStreamReader in; 
  if (resultCode == 200) { 
  in = new InputStreamReader(conn.getInputStream()); 
  BufferedReader buffer = new BufferedReader(in); 
  String inputLine; 
  while ((inputLine = buffer.readLine()) != null) { 
   resultData.append(inputLine); 
   resultData.append("\n"); 
  } 
  buffer.close(); 
  in.close(); 
  } 
  resultStr[0] = resultData.toString(); 
  resultStr[1] = resultCode + ""; 
 } catch (Exception e) { 
  e.printStackTrace(); 
 } finally { 
  if (conn != null) { 
  conn.disconnect(); 
  } 
 } 
 return resultStr; 
 } 
}
登入後複製

(2)然後透過這個工具類別與微信伺服器建立連接,取得想要的資料:

 String url = "https://api.weixin.qq.com/sns/jscode2session?appid=""&secret=""&js_code=" 
   + jsCode + "&grant_type=authorization_code"; 
 String res[] = connection.requestJson(url); 
 System.out.println(res[0]); 
 JSONObject object = JSON.parseObject(res[0]); 
 String openId = object.getString("openid"); 
 String session_key = object.getString("session_key");
登入後複製

其中appid和secret都是自己開發者帳號裡可以查詢到的,js_code是客戶端發過來的,這樣在回傳的資料中就可以取得sessionkey。

3、伺服器A拿到sessionkey後,產生一個隨機數我們叫3rdsession,以3rdSessionId為key,以sessionkey openid為value緩存到redis或memcached中;因為微信團隊不建議直接將sessionkey在網絡上傳輸,由開發者自行產生唯一鍵與sessionkey關聯。其功能是: (1)、將3rdSessionId回傳至客戶端,維護小程式登入態。

(2)、透過3rdSessionId找到使用者sessionkey和openid。

4、客戶端拿到3rdSessionId後快取到storage,
5、透過wx.getUserIinfo可以取得到使用者敏感資料encryptedData 。
6、客戶端將encryptedData、3rdSessionId和偏移量一起傳送到伺服器A
7、伺服器A根據3rdSessionId從快取中取得session_key
8、在伺服器A使用AES解密encryptedData,從而實現使用者敏感資料解密。

解密資料需要用到的參數有三個,分別是:

1、encryptedData(密文)
2、iv(向量)
3、aesKey(金鑰)也就是sessionkey

在解密的時候要將上述三個變數做Base64解碼:

byte[] encrypData = UtilEngine.decode(encData); 
byte[] ivData = UtilEngine.decode(iv); 
byte[] sessionKey = UtilEngine.decode(session_key);
登入後複製

然後使用AES解密方法進行解密:

public static byte[] decrypt(byte[] key, byte[] iv, byte[] encData) 
 throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, 
 InvalidKeyException, BadPaddingException, IllegalBlockSizeException { 
 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 cipher.doFinal(encData); 
}
登入後複製

這樣在回傳的數據中就可以拿到用戶的手機號碼。

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

express建置查詢伺服器

#使用js自訂trim函數刪除兩端空格

JavaScript運作原理

#

以上是在微信小程式中如何才可以取得使用者手機號碼訊息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何用小紅書號找出用戶?能查到手機號碼嗎? 如何用小紅書號找出用戶?能查到手機號碼嗎? Mar 22, 2024 am 08:40 AM

隨著社群媒體的迅速發展,小紅書已經成為了備受青睞的社群平台之一。用戶可以透過建立小紅書號來展示個人身份,並與其他用戶交流互動。如果你需要找某個用戶的小紅書號碼,可以按照以下簡單步驟來操作。一、如何用小紅書號找出用戶? 1.開啟小紅書APP,點選右下角的「發現」按鈕,然後選擇「筆記」選項。 2.在筆記清單中,找到你想找的用戶發布的筆記。點擊進入筆記詳情頁。 3.在筆記詳情頁中,點選使用者頭像下方的「追蹤」按鈕,即可進入該使用者的個人首頁。 4.在使用者個人主頁右上角,點選三個點按鈕,然後選擇「個人資訊

微信不允許透過手機號碼添加怎麼設置 微信不允許透過手機號碼添加怎麼設置 Mar 12, 2024 pm 05:04 PM

微信不允許透過手機號碼添加怎麼設定?​​在微信APP中是可以不允許透過手機號添加微信,但是多數的用戶不知道如何設定不允許微信通過手機號,接下來就是小編為用戶帶來的微信不允許透過手機號添加設定方法教程,有興趣的用戶快來一起看看吧!微信使用教學微信不允許透過手機號碼新增怎麼設定1、先開啟微信APP,進入到主頁點選右下角【我】進入,選擇【設定】功能;2、之後進入到設定功能頁,找到【朋友權限】服務功能;3、然後在朋友權限介面,滑動【加我為朋友時需要驗證】後方的按鈕;4、最後在下圖所示的頁面,滑動【手機號】後

小紅書帳號怎麼改手機號碼?帳號改手機號碼有影響嗎? 小紅書帳號怎麼改手機號碼?帳號改手機號碼有影響嗎? Mar 22, 2024 am 08:11 AM

在數位時代,小紅書已成為許多人分享生活、發現好物的平台。隨著時間的推移,我們可能需要更改帳號的手機號碼。那麼,要如何更改小紅書的手機號碼呢?一、小紅書帳號怎麼改手機號碼? 1.登入小紅書帳號,進入「我的」頁面。 2.點選右上角的“...”,選擇“設定”。 3.在設定頁面,找到「帳號與安全」選項,點選進入。 4.在帳號與安全頁面,找到「手機號碼」選項,點選進入。 5.此時,頁面會顯示目前手機號碼,點選「更換手機號碼」。 6.輸入新的手機號碼,接收驗證碼,並填寫。 7.設定新的密碼,確保帳號安全。 8.完成上述步驟後,

以超級使用者登入Ubuntu 以超級使用者登入Ubuntu Mar 20, 2024 am 10:55 AM

在Ubuntu系統中,root使用者通常是停用狀態的。要啟動root用戶,可以使用passwd指令設定密碼,然後使用su-指令以root身分登入。根用戶是具有系統管理權限且不受限制的使用者。他擁有存取和修改檔案、使用者管理、軟體安裝和刪除,以及系統配置變更等權限。根用戶與一般用戶有著明顯的區別,根用戶擁有系統中最高的權限和更廣泛的控制權。根用戶可以執行重要的系統命令和編輯系統文件,而普通用戶則無法做到這一點。在本指南中,我將探討Ubuntu根用戶,如何以根用戶身份登錄,以及它與一般用戶的不同之處。注意

閒魚微信小程式正式上線 閒魚微信小程式正式上線 Feb 10, 2024 pm 10:39 PM

閒魚官方微信小程式悄悄上線,在小程式中可以發布閒置與買家/賣家私訊交流、查看個人資料及訂單、搜尋物品等,有用好奇閒魚微信小程式叫什麼,現在快來看一下。閒魚微信小程式叫什麼答案:閒魚,閒置交易二手買賣估價回收。 1、在小程式中可以發布閒置、與買家/賣家私訊交流、查看個人資料及訂單、搜尋指定物品等功能;2、在小程式的頁面中有首頁、附近、發閒置、訊息、我的5項功能;3、想要使用的話必要要開通微信支付才可以購買;

教學:Ubuntu系統如何刪除一般使用者帳號? 教學:Ubuntu系統如何刪除一般使用者帳號? Jan 02, 2024 pm 12:34 PM

Ubuntu系統增加了許多用戶,想在不用的用戶想要刪除,該怎麼刪除呢?下面我們就來看看詳細的教學。 1.開啟終端命令列,運用userdel指令刪除指定的用戶,注意要加sudo權限指令,如下圖所示2、在刪除的時候一定注意是在管理員目錄下的,普通的用戶是沒有這個權限的,如下圖所示3、刪除指令執行完了以後怎麼判斷是否真正刪除了呢?下面我們運用cat指令開啟passwd文件,如下圖所示4、我們看到passwd檔案中已經沒有了所刪除的使用者資料了,這證明使用者已經被刪除了,如下圖所示5、然後我們進入home文件

什麼是 sudo,為什麼它如此重要? 什麼是 sudo,為什麼它如此重要? Feb 21, 2024 pm 07:01 PM

sudo(超級使用者執行)是Linux和Unix系統中的關鍵指令,允許一般使用者以root權限執行特定指令。 sudo的功能主要體現在以下幾個方面:提供權限控制:sudo透過授權使用者以臨時方式取得超級使用者權限,從而實現了對系統資源和敏感操作的嚴格控制。普通用戶只能在需要時透過sudo獲得臨時的特權,而不需要一直以超級用戶登入。提升安全性:透過使用sudo,可以避免在常規操作中使用root帳號。使用root帳戶進行所有操作可能會導致意外的系統損壞,因為任何錯誤或不小心的操作都將具有完全的權限。而

一個手機號碼怎麼註冊兩個B站號? B站怎麼解除手機綁定? 一個手機號碼怎麼註冊兩個B站號? B站怎麼解除手機綁定? Mar 21, 2024 pm 10:10 PM

B站(嗶哩嗶哩)作為中國年輕人非常喜歡的影片分享網站,吸引了大量的用戶。有些使用者希望擁有兩個B站帳號,以便於分開管理和使用。那麼,一個手機號碼要怎麼註冊兩個B站號碼呢?本文將圍繞這一問題以及如何解除手機綁定展開講解。一、一個手機號碼怎麼註冊兩個B站號? 1.註冊新帳號:首先,在手機上開啟B站App或登入官網,點選「註冊」按鈕,選擇註冊方式,可以使用手機號碼、信箱或第三方帳號(如微信、QQ等)進行註冊。 2.註冊帳號時,請根據系統提示填寫必要的信息,包括手機號碼、驗證碼以及設定密碼等。務必確保兩個帳號使用不同

See all articles