Lösung für den PHP-WeChat-Login-Fehler 41001: 1. Überprüfen Sie das Protokoll. 2. Entfernen Sie die Backslashes durch Stripslashes. 3. Dekodieren Sie durch json_decode.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Wie löse ich das PHP WeChat Login 41001-Fehlerproblem?
Miniprogramm-Anmeldung zum Entschlüsseln von Benutzerdaten, verschlüsselte Daten -41001: EncodingAesKey ist illegal
Die Fallstricke, die bei der autorisierten WeChat-Anmeldung mit dem Miniprogramm auftreten, sind endlich gelöst
Jetzt möchte ich einige Ideen zur Lösung des Problems mitteilen.
Frage:
Um das WeChat-Miniprogramm zum Anmelden zu autorisieren, holen Sie sich zuerst den Code, dann den Sitzungsschlüssel und die offene_ID, holen Sie sich dann die verschlüsselten Daten und senden Sie sie an den Server, um sie zu entschlüsseln und die Benutzerinformationen abzurufen Manchmal gelingt es, manchmal wird -41001 zurückgegeben. Fehler und Beobachtungsprotokolle zeigen, dass der Sitzungsschlüssel abgerufen wurde. Was ist die Ursache dafür und wie kann man das Problem lösen?
Lösung:
Die Richtung, die ich zuerst in Betracht gezogen habe, war der Ablauf von session_key, weil ich den Ablauf von session_key nicht kannte. Nach vielen Tests stellte ich fest, dass es nicht die Ursache war
Dann habe ich angefangen Beim Durchsuchen verschiedener verwandter Blogs und Suchen habe ich keine Lösung für das entsprechende Problem gefunden. Möglicherweise ist dieses Problem zu unangemessen, sodass es in diesem Bereich nicht viele Probleme gibt. Schließlich habe ich begonnen, die entschlüsselte SDK-Quelle zu durchsuchen Code, und stellte dann fest, dass der Grund für -41001 darin bestand, den session_key zu überprüfen. Die Länge
if (strlen($this->sessionKey) != 24) { return ErrorCode::$IllegalAesKey; } //public static $IllegalAesKey = -41001; //>-41001: encodingAesKey 非法
Abschließend habe ich mir die Protokolle genauer angesehen (ich habe zuvor auch session_key im Detail verglichen, aber ich habe mir nur den Wert angesehen, einen langen Ich wusste, dass einige Zeichen erfolgreich waren und andere fehlschlugen, und ich konnte überhaupt kein Muster finden. Achten Sie auf die Länge des Sitzungsschlüssels, und dann können Sie den Trick erkennen it
Der JSON-String von PHP wird manchmal mit einem Backslash „“ maskiert. Bei der Verarbeitung in PHP müssen Sie zuerst den Backslash entfernen und dann die Funktion „stripslashes()“ verwenden, das Problem ist gelöst!
*Dies ist eine kleine Frage. Nehmen Sie sie auf, um sich eine Erinnerung zu geben
Empfohlenes Studium: „
PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem mit dem PHP-WeChat-Login-Fehler 41001. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!