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
1. Die Div-CSS-Maushandform ist Cursor:Zeiger; 2. ...
Der spezifische Code lautet wie folgt: Paket epoi...
Inhaltsverzeichnis 8. Kreisförmiger Fortschritts-...
Nginx kann nicht nur Versionsinformationen verber...
Vue+js realisiert das Ein- und Ausblenden des Vid...
Ich glaube, jeder kennt dieses Gefühl: Ein Video m...
MySQL-Einstellungscode für grüne Version und Fehl...
Aktualisierung der Ereignisantwort: Aktualisierun...
Heute werden wir darüber sprechen, wie wir Jenkin...
Inhaltsverzeichnis Vorwort Kerncode Datei zeigt e...
Rendern Prinzip Im Formularelement gibt es ein Mu...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Funktionale Komponenten So sch...
Interviewer: Haben Sie den Quellcode von Vue gele...
Vorwort Wie wir alle wissen, ist JavaScript im Ke...