VorwortDas Miniprogramm verfügt über eine sehr praktische API zum Abrufen von Benutzern, nämlich zum Abrufen der an WeChat gebundenen Mobiltelefonnummer des Benutzers über getPhoneNumber. Eines müssen wir alle beachten: WeChat konzentriert sich mittlerweile auf die Benutzererfahrung. Einige Methoden müssen vom Benutzer aktiv ausgelöst werden, bevor sie aufgerufen werden können, z. B. „getPhoneNumber“. Umsetzungsideen:1. Holen Sie sich den Code über wx.login, um die OpenID und den Sitzungsschlüssel des Benutzers abzurufen 2. Holen Sie sich verschlüsselte Daten über getPhoneNumber, iv 3. Fordern Sie das Backend auf, die Mobiltelefonnummer des Benutzers über die Parameter [encryptedData], [iv] und [sessionKey] zu entschlüsseln und abzurufen. Direkt auf der Trockenware:1. Der Benutzer klickt auf die Schaltfläche, um die Mobiltelefonnummer des Benutzers abzurufen <button Klasse='pop_btn' plain="true" open-type='getPhoneNumber' bindgetphonenumber="getPhoneNumber">Telefonnummer des Benutzers abrufen</button> 2. Popup-Autorisierungsbild: 3. Erhalten Sie die Handynummer durch Entschlüsselung Direkt zum Code: wxlogin: function() { //Holen Sie sich die OpenID und den Sitzungsschlüssel des Benutzers var das = dies; wx.login({ //Code abrufen Verwenden Sie die von wx.login erhaltenen Anmeldeinformationen, um sie gegen OpenID einzutauschen Erfolg: (res) = >{ wx.Anfrage({ Methode: "GET", URL: „https://xxxwx/wxlogin.do“, Daten: { Code: res.code, Anwendungs-ID: "appIdSbcx", Anwendungsschlüssel: "appKeySbcx" }, Kopfzeile: { 'content-type': 'application/json' // Standardwert}, Erfolg: (res) = >{ konsole.log(res); dass.setData({ Sitzungsschlüssel: res.data.session_key }); } }); } }); } getPhoneNumber: function(e) { //Klicken Sie auf die Schaltfläche „Telefonnummer abrufen“ var that = this; wx.checkSession({ Erfolg: Funktion() { console.log(e.detail.errMsg) console.log(e.detail.iv) console.log(e.detail.verschlüsselteDaten) var ency = e.detail.encryptedData; var iv = e.detail.iv; var sessionk = dieser.Daten.SessionKey; if (e.detail.errMsg == 'getPhoneNumber:fail Benutzer deny') { dass.setData({ Modalstatus: wahr }); } else { //Autorisierung zustimmen wx.request({ Methode: "GET", URL: „https://xxx/wx/deciphering.do“, Daten: { Daten verschlüsseln: Verschlüsselung, iv-Daten: iv, Sitzungsschlüssel:sessionk }, Kopfzeile: { 'content-type': 'application/json' // Standardwert}, Erfolg: (res) = >{ console.log("Entschlüsselung erfolgreich~~~~~~~Speichern Sie die entschlüsselte Nummer lokal~~~~~~~~"); konsole.log(res); var Telefon = res.data.phoneNumber; konsole.log(Telefon); }, Fehler: Funktion (Res) { console.log("Entschlüsselung fehlgeschlagen~~~~~~~~~~~~~~"); konsole.log(res); } }); } }, fehlgeschlagen: Funktion() { console.log("session_key ist abgelaufen, Sie müssen den Anmeldevorgang erneut ausführen"); that.wxlogin(); //Erneut anmelden} }); } Hintergrundcode: /** * Entschlüsseln und die Mobiltelefonnummer des Benutzers abrufen * @param encrypdata * @param ivdata * @param Sitzungsschlüssel * @param Anfrage * @zurückkehren * @throws Ausnahme */ @RequestMapping(Wert = "Entschlüsselung", Methode = RequestMethod.GET) öffentliche @ResponseBody String-Entschlüsselung (String-Verschlüsselungsdaten, String ivdata, String Sitzungsschlüssel, HttpServletRequest-Anfrage) { byte[] verschlüsselnDaten = Base64.decode(verschlüsselnDaten); byte[] ivData = Base64.decode(ivdata); byte[] Sitzungsschlüssel = Base64.decode(Sitzungsschlüssel); Zeichenfolge str=""; versuchen { str = entschlüsseln(Sitzungsschlüssel, ivData, verschlüsselnDaten); } Fang (Ausnahme e) { // TODO Automatisch generierter Catch-Block e.printStackTrace(); } System.out.println(str); gibt str zurück; } öffentliche statische String-Entschlüsselung (Byte[] Schlüssel, Byte[] iv, Byte[] encData) löst Ausnahme aus { AlgorithmParameterSpec ivSpec = neue IvParameterSpec(iv); Verschlüsselung cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); SecretKeySpec keySpec = neuer SecretKeySpec(Schlüssel, "AES"); cipher.init(Cipher.DECRYPT_MODE, Schlüsselspezifikation, ivSpec); //Entschlüsselten String analysieren return new String(cipher.doFinal(encData),"UTF-8"); } ZusammenfassenDies ist das Ende dieses Artikels über die Benutzerberechtigung des WeChat Mini-Programms zum Abrufen von Mobiltelefonnummern. Weitere relevante Inhalte zur Benutzerberechtigung des WeChat Mini-Programms zum Abrufen von Mobiltelefonnummern finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den unten stehenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Tutorial zur Installation von Ubuntu Server in Vmware
>>: VMWare Linux MySQL 5.7.13 Installations- und Konfigurationstutorial
Vim ist ein leistungsstarker Vollbild-Texteditor ...
Inhaltsverzeichnis 1. Gewöhnliche Funktionen 2. P...
Inhaltsverzeichnis Vorwort 1. Null-Koaleszenzoper...
Lassen Sie mich zunächst erklären, dass wir uns o...
Die offizielle Version 8.0.11 von MySQL 8 wurde v...
1. Konstruktion 1. Bereiten Sie die Datei htpassw...
1. Die chinesischen verstümmelten Zeichen erschei...
Zitat aus Baidus Erklärung zu Pseudostatik: Pseud...
Inhaltsverzeichnis TypeScript-Umgebungskonstrukti...
Es gibt zwei spezielle Werte, die jeder Eigenscha...
Diese eingeführten HTML-Tags entsprechen nicht un...
Vorwort Ich wollte schon immer wissen, wie eine S...
Hallo zusammen, ich bin Liang Xu. Sind Sie bei de...
MySQL ist die am häufigsten verwendete Datenbank....
Hinweis: Der grundlegende Verzeichnispfad für die...