Das Miniprogramm sammelte persönliche Benutzerinformationen und lud sie hoch, wurde jedoch abgelehnt: Hallo, die Funktionen der Mini-Programm-Seite umfassen: das Sammeln biometrischer Daten des Benutzers (Gesichtsfotos oder Videos) und anderer sensibler Informationen zur Identitätserkennung oder Identifizierung, Um die vertraulichen persönlichen Identitätsinformationen der Benutzer zu schützen, unterstützt die Plattform diese Funktion derzeit nicht. Bitte entfernen Sie die entsprechenden Merkmale und senden Sie die Anfrage erneut. Dann suchte ich auf Baidu und fand heraus, dass ich mich bewerben musste für wx.startFacialRecognitionVerify({}) https://api.weixin.qq.com/cgi-bin/token?appid=appid&secret=secret&grant_type=client_credential https://api.weixin.qq.com/cityservice/face/identify/getinfo?access_token=access_token https://api.weixin.qq.com/cityservice/face/identify/getimage?access_token=access_token Zunächst müssen Sie zwei Parameter an die von Ihnen beantragte Schnittstelle senden: Name und ID-Nummer foto.js Daten: { geöffnete ID: '', custName: 'Name', custIdCard: 'Ausweisnummer', Bild überprüfen: '' }, /** * Lebenszyklusfunktion - auf Seitenladen warten*/ onLoad: Funktion (Optionen) { dies.setData({ Kundenname: Optionen.Kundenname, custIdCard: Optionen.custIdCard }); var _this = dies; wx.checkIsSupportFacialRecognition({ checkAliveType: 2, Erfolg: Funktion (res) { if (res.errCode === 0 || res.errMsg === "checkIsSupportFacialRecognition:ok") { //Gesichtserkennung aufrufen_this.startface(_this.data.custName.replace(/(^\s*)|(\s*)$/g, ""), _this.data.custIdCard); //Ausweisname, Ausweisnummer return; } wx.showToast('Die WeChat-Version ist zu niedrig, diese Funktion kann vorübergehend nicht verwendet werden, bitte aktualisieren Sie auf die neueste Version von WeChat.') }, Fehler: Funktion (Res) { wx.showToast('Die WeChat-Version ist zu niedrig, diese Funktion kann vorübergehend nicht verwendet werden, bitte aktualisieren Sie auf die neueste Version von WeChat.') } }) }, startface(name, idcard) { console.log('Ich bin dabei!!!'); var _this = dies; wx.startFacialRecognitionVerify({ Name: _this.data.custName, //Name der ID-Karte idCardNumber: _this.data.custIdCard, //ID-Kartennummer Erfolg: Funktion (Res) { var verifyResult = res.verifyResult; //Authentifizierungsergebnis //Schnittstelle wx.request({ aufrufen URL: „https://api.weixin.qq.com/cgi-bin/token?appid=wx2cafec51ec4c2153&secret=8d3e68a5a2c702673340d72d1c7db4cc&grant_type=client_credential“, Daten: { }, Methode: 'POST', Kopfzeile: { „Inhaltstyp“: „Anwendung/json;Zeichensatz=utf-8“ }, Erfolg: Funktion (res) { Konsole.log(Res.Daten); Konsole.log(Res.Daten.Zugriffstoken) var token = res.data.zugriffstoken; wx.Anfrage({ URL: 'https://api.weixin.qq.com/cityservice/face/identify/getinfo?access_token=' + res.data.access_token, Daten: { verify_result: Überprüfungsergebnis }, Methode: 'POST', Kopfzeile: { „Inhaltstyp“: „Anwendung/json;Zeichensatz=utf-8“ }, Erfolg: Funktion (res) { konsole.log(res.daten) console.log('Ich habe es endlich geschafft...') wx.Anfrage({ URL: 'https://api.weixin.qq.com/cityservice/face/identify/getimage?access_token=' + Token, Daten: { verify_result: Überprüfungsergebnis }, Methode: 'POST', Antworttyp: "Array-Puffer", Kopfzeile: { 'Inhaltstyp': 'Anwendung/json;Zeichensatz=utf-8', }, Erfolg: (res) => { // console.log('data:image/png;base64,'+wx.arrayBufferToBases64(res)) Konsole.log(Res.Daten); var base64 = wx.arrayBufferToBase64(res.data); _this.setData({ verifyImg:'data:image/png;base64,'+base64}) wx.navigateTo({ url: '../msg/msg?msg=Herzlichen Glückwunsch, die Überprüfung Ihrer Informationen war erfolgreich&verifyImg=' + _this.data.verifyImg }); }, Fehler: Funktion (Res) { console.log('fehlgeschlagen', res.data) } }) }, Fehler: Funktion (Res) { } }) }, Fehler: Funktion (Res) { } }) console.log(überprüfenErgebnis) // wx.navigateTo({ // URL: „../msg/msg?msg=Gesichtsüberprüfung erfolgreich“ // }); }, checkAliveType: 2, //Bildschirm blinkt (Interaktionsmodus zur Gesichtsverifizierung, Standard 0, Zahlen lesen) fehlgeschlagen: err => { wx.showToast('Bitte sorgen Sie für ausreichend Licht, blicken Sie direkt und ohne Hindernisse auf das Telefon.') wx.navigateTo({ url: „../msg/msg?msg=Bitte sorgen Sie für ausreichend Licht, blicken Sie direkt auf das Telefon und ohne Behinderung, verlassen Sie das Gebäude und versuchen Sie es erneut.“ }); } }) } Die größte Schwierigkeit besteht darin, dass Sie die Schnittstelle mehrere Male beantragen müssen und das endgültige Geschäft noch eine Union-ID benötigt, sodass Sie eine Authentifizierung auf der offenen WeChat-Plattform beantragen müssen. Wenn Sie dann das Bild des Verifizierungsergebnisses abrufen möchten, benötigen Sie das oben genannte https://api.weixin.qq.com/cityservice/face/identify/getimage?access_token=access_token Die zurückgegebenen Daten müssen in Base64-Code konvertiert und dann im Bild-Tag angezeigt werden. Ich übergebe sie direkt an das Backend. Unten ist mein msg js Code msg.js const app = getApp(); Seite({ /** * Ausgangsdaten der Seite */ Daten: { Nachricht:'', Bild überprüfen:'', url:app.globalData.PostData }, /** * Lebenszyklusfunktion - auf Seitenladen warten*/ onLoad: Funktion (Optionen) { var Zeitstempel = Datum.parse(neues Datum()); Zeitstempel = Zeitstempel/1000 console.log(Optionen) var das = dies; dass.setData({ msg:Optionen.msg, verifyImg:Optionen.verifyImg }); console.log(diese.Daten.URL) console.log(das.Daten.verifyImg) wx.Anfrage({ url: that.data.url+'fileUpload!upBase64.do', //Nur ein Beispiel, keine echte Schnittstelle addressdata: { Datei:that.data.verifyImg, Dateiname:Zeitstempel, Dateidaten:diese.Daten.verifyImg }, Methode: 'POST', Kopfzeile: { „Inhaltstyp“: „Anwendung/x-www-form-urlencoded;Zeichensatz=utf-8“ }, Erfolg:Funktion (res){ const Daten = res.Daten console.log('Erfolg',Daten); //etwas tun }, Fehler:Funktion(res){ console.log('fehlgeschlagen',res) } }) } Base64-Konvertierungscode für Hintergrund-Upload öffentliche Leere upBase64() { System.out.println("======Bilder hochladen===="); System.out.println(Datei); Json j = neues Json(); String FilePath = ServletActionContext.getServletContext().getRealPath(Constants.IMGPATH+"/"+Constants.PHOTOPATH); DateipfadDatei = neue Datei(Dateipfad); versuchen { // Wenn es IE ist, müssen Sie es auf text/html einstellen, andernfalls wird ein Popup-Fenster zum Herunterladen geöffnet // response.setContentType("text/html;charset=UTF-8"); Antwort.setContentType("application/json;charset=UTF-8"); String FileName = request.getParameter("Dateiname"); Zeichenfolge FileData = request.getParameter("filedata"); System.out.println(Dateiname+"**************"+Dateidaten); if (null == FileData || FileData.length() < 50) { j.setMsg("Upload fehlgeschlagen, Daten sind zu kurz oder nicht vorhanden"); j.setSuccess(false); } anders { // Entfernen Sie die unangemessenen Daten am Anfang FileData = FileData.substring(30); FileData = URLDecoder.decode(FileData, "UTF-8"); System.out.println("FileData="+FileData); byte[] data = FileUtil.decode(FileData); /*wenn (null == Dateiname || Dateiname.länge() < 1) { Dateiname = System.currentTimeMillis() + ".jpg"; }*/ // In Datei schreiben FileOutputStream outputStream = new FileOutputStream(new File(PathFile,FileName)); outputStream.write(Daten); AusgabeStream.flush(); outputStream.schließen(); System.out.println(Dateiname+"**************"+Dateidaten); j.setMsg("Upload erfolgreich"); j.setSuccess(true); } } Fang (Ausnahmefehler) { j.setMsg("Hochladen fehlgeschlagen"); j.setSuccess(false); err.printStackTrace(); } schreibeJson(j); } Oben finden Sie eine ausführliche Erläuterung der offiziellen Gesichtsauthentifizierung des WeChat Mini-Programms. Weitere Informationen zur offiziellen Gesichtsauthentifizierung des WeChat Mini-Programms finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Richtiger Einsatz von MySQL-Partitionstabellen
>>: So verwenden Sie die Firewall-Iptables-Strategie zum Weiterleiten von Ports auf Linux-Servern
Inhaltsverzeichnis DragEvent-Schnittstelle Übersi...
Bei der Webentwicklung kann es vorkommen, dass Fl...
Es gibt viele Server, die statische Websites host...
Inhaltsverzeichnis 3 Möglichkeiten zum Bereitstel...
Inhaltsverzeichnis Same Origin-Richtlinie für Bro...
1. Vergleichen Sie den alten virtuellen DOM mit d...
Die Indexzusammenführung ist ein intelligenter Al...
<br />Um die Fahrzeuge zu regeln, die in die...
Zur Aufzeichnung: Es kann in Zukunft verwendet we...
1. Installationsumgebung Docker unterstützt die f...
Sowohl die Optionen „Nur lesen“ als auch „Deaktiv...
Wenn man online nach Methoden sucht, um Angular -...
Lernprogramm zum Hyperlink-Tag einer HTML-Webseit...
Inhaltsverzeichnis 1. Zeitüberwachung 2. Ereignis...
Neue Funktionen in MySQL 8: Meine persönliche Mei...