Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Problem mit dem PHP-WeChat-Login-Fehler 41001

So lösen Sie das Problem mit dem PHP-WeChat-Login-Fehler 41001

藏色散人
藏色散人Original
2022-01-11 09:10:004375Durchsuche

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.

So lösen Sie das Problem mit dem PHP-WeChat-Login-Fehler 41001

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn