Maison  >  Article  >  développement back-end  >  Comment résoudre le problème d'erreur de connexion php WeChat 41001

Comment résoudre le problème d'erreur de connexion php WeChat 41001

藏色散人
藏色散人original
2022-01-11 09:10:004385parcourir

Solution à l'erreur 41001 de connexion php WeChat : 1. Vérifiez le journal ; 2. Supprimez les barres obliques inverses via des stripslashes ; 3. Décodez via json_decode.

Comment résoudre le problème d'erreur de connexion php WeChat 41001

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

Comment résoudre le problème d'erreur de connexion php WeChat 41001 ?

Connexion au mini-programme Données utilisateur décryptées Données cryptées -41001 : encodageAesKey illégal

Les pièges rencontrés lors de la connexion autorisée par WeChat pour les mini-programmes, le problème a finalement été résolu

Partagez maintenant quelques idées pour résoudre le problème.

Question :

Pour autoriser le mini-programme WeChat à se connecter, obtenez d'abord le code, puis obtenez la session_key et l'open_id, puis obtenez les données chiffrées et envoyez-les au serveur pour décrypter et obtenir les informations utilisateur, mais parfois cela réussit, parfois il renvoie -41001 Les erreurs et les journaux d'observation montrent que session_key est obtenu. Quelle en est la cause et comment le résoudre ?

Solution :

La direction que j'envisageais au début était l'expiration de session_key, car je ne connaissais pas l'expiration de session_key. Après de nombreux tests, j'ai découvert que ce n'était pas la cause

Puis j'ai commencé. en parcourant divers blogs connexes et en effectuant des recherches, je n'ai pas trouvé de solution au problème associé. Il se peut que ce problème soit trop inapproprié, il n'y a donc pas beaucoup de problèmes dans ce domaine

Enfin, j'ai commencé à parcourir la source déchiffrée du SDK. code, puis j'ai découvert que la raison de -41001 était de vérifier la session_key La longueur

if (strlen($this->sessionKey) != 24) {
 return ErrorCode::$IllegalAesKey;
}
//public static $IllegalAesKey = -41001;
//>-41001: encodingAesKey 非法

Enfin, j'ai regardé de plus près les journaux (j'ai également comparé session_key en détail auparavant, mais j'ai juste regardé la valeur, un long chaîne de caractères, et je n'ai pas compris le sens profond. Je savais que certains réussissaient et d'autres échouaient, et je n'ai trouvé aucun modèle), faites attention à la longueur de session_key, et vous pourrez alors voir l'astuce. dedans

La chaîne json de PHP est parfois échappée avec une barre oblique inverse "". Lors du traitement en PHP, vous devez d'abord supprimer la barre oblique inverse, puis json_decode

$str = stripslashes($json); 
$arr = json_decode($str,true);

utilisez la fonction stripslashes (), problème résolu !

*Ceci est une petite question, enregistrez-la pour vous donner un souvenir

Etude recommandée : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn