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
Beispiele: Über den PHP-Hintergrundcode können Si...
Wenn Sie nach der Installation der Datenbank das ...
1. 1 Spalte ändern Update Student S, Stadt C setz...
will-change teilt dem Browser mit, welche Änderun...
Inhaltsverzeichnis 1. MySQL-Architektur 2. Netzwe...
Datensortierung aufsteigend, absteigend 1. Sortie...
Direkt codieren: Wählen Sie „bigint unsigned“ als...
Erstellen einer Datenbank Rechtsklick - Neue Date...
Dieser Artikel erläutert anhand von Beispielen da...
Seit der Geburt von vue3 ist viel Zeit vergangen ...
MySQL bietet mehrere Möglichkeiten, mehrere SQL-D...
Der HTML-Kopfteil enthält viele Tags und Elemente,...
Ich bin erst vor kurzem mit countly in Kontakt ge...
Dieser Artikel verwendet Javascript + CSS, um den...
1. Voraussetzungen Wir verwenden zum Importieren ...