La colonne tutorielle suivante du framework thinkphp partagera avec vous les pièges de l'intégration des comptes d'entreprise par thinkphp. J'espère qu'elle sera utile aux amis qui en ont besoin !
Les pièges de ThinkPHP dans l'utilisation des rappels de compte d'entreprise WeChat
J'ai récemment travaillé sur une interface pour les rappels de compte d'entreprise. J'ai déjà créé plusieurs applications de compte d'entreprise. . Lors de ma première connexion à Thinkphp, diverses erreurs ont été signalées. Je n'ai pas eu de chance car j'ai dû faire face à tous les pièges qu'il fallait éviter.
J'ai failli abandonner après être tombé dans un piège cette fois. Quiconque a développé un compte Entreprise sait que le rappel du compte Entreprise passera par un algorithme crypté, qui oblige le développeur à le déchiffrer pour activer le rappel. C'est ce rappel. Le message d'erreur de WeChat est extrêmement envahissant. Quelle que soit votre erreur, il dit simplement "la vérification echostr a échoué. Veuillez vérifier si elle est correctement déchiffrée et si elle affiche le texte en clair echostr". À tout le moins, le développeur doit être informé de la longueur de la réponse reçue par WeChat, ou elle peut être vérifiée avec sa propre sortie si la longueur est incohérente, sans parler du contenu.
Si vous utilisez le framework tp comme moi, alors vous devriez faire attention. Cet article prend Thinkphp3.2.3 php version 5.3 comme exemple
Pit 1
-
Téléchargez l'exemple d'interface de traitement officiel et placez-le dans le répertoire Thinkphp>Bibliothèque>Wechat (auto-construit)
-
Modifiez WXBizMsgCrypt.php en WXBizMsgCrypt.class.php
Déclarez l'espace de noms Wechat dans WXBizMsgCrypt;
Introduisez la classe utiliser Wechat WXBizMsgCrypt;
Après cela, utilisez simplement l'exemple de copie officiel pour saisir votre projet et modifiez-le simplement pour terminer l'intégration. Le processus est assez simple, mais ! La méthode d'écriture du constructeur avant PHP5.3 a changé par rapport à celle après PHP5.3. Le constructeur ne peut plus être nommé avec le nom de la classe comme nom de fonction. Vous devez utiliser __construct pour déclarer un constructeur, ce qui signifie utiliser des exemples officiels pour l'intégrer. Bien entendu, une erreur sera certainement signalée, à condition que vous utilisiez également une version ultérieure à PHP5.3.
Vous devez donc toujours
modifier le nom de la fonction WXBizMsgCrypt dans le fichier WXBizMsgCrypt pour __construct
modifier le pkcs7Encoder dans le fichier pkcs7Encoder Changez le nom de la fonction en __construct
Vous avez terminé Cela peut ne pas être applicable aux versions inférieures de Thinkphp ou de php5.3 ou inférieures. 🎜>
puits 2Lorsque vous remplissez les informations de rappel du numéro d'entreprise et que le clic sur Enregistrer échoue, cliquer encore quelques fois fera vraiment des merveilles !Ce n'est pas une blague~~ Parce que la signature aléatoire envoyée par le compte d'entreprise au développeur est susceptible de contenir un signe + Lorsque vous obtenez l'URL, PHP filtrera automatiquement le signe + dans un espace, provoquant l'envoi de la signature. être différent de Si la signature de l'adresse réelle est incohérente, la vérification de la signature échouera et 40001 : Une erreur de vérification de la signature sera signalée.
Bien sûr, vous pouvez également remplacer les espaces par des signes + pour vous assurer qu'ils sont cohérents avec l'adresse de signature envoyée. (Je pense que c'est un petit bug dans le rappel WeChat, la signature ne doit pas contenir de symboles avec des significations aussi particulières)
Les éléments du tampon ne seront pas imprimés localement Lorsque WeChat accède à votre site Web, la première chose qu'il obtient est le contenu du tampon au lieu du texte clair que vous affichez. Par conséquent, le tampon doit d'abord être vidé en utilisant ob_clean() avant echo. On estime que les autres frameworks sont identiques.