Maison  >  Article  >  Applet WeChat  >  Solution à l'erreur de configuration : signature invalide

Solution à l'erreur de configuration : signature invalide

Y2J
Y2Joriginal
2017-05-11 11:47:384423parcourir

Plateforme publique WeChat, config:invalid signature continue d'afficher cette solution d'erreur
S'il s'agit d'une erreur de signature invalide. Il est recommandé de vérifier dans l'ordre suivant :
1. Confirmez que l'algorithme de signature est correct et vous pouvez utiliser le http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t= outil de page jsapisign pour la vérification.
2. Confirmez que le nonceStr (S majuscule standard en chameau en js) et l'horodatage dans la configuration sont cohérents avec le noncestr et l'horodatage correspondants utilisés dans la signature.
3. Confirmez que l'URL est l'URL complète de la page (veuillez confirmer sur l'alerte de la page actuelle (location.href.split('#')[0])), y compris le 'http(s):/ /' partie, et ' ? ', mais n'inclut pas la partie après le hachage '#'.
4. Confirmez que l'appid dans la configuration est cohérent avec l'appid utilisé pour obtenir jsapi_ticket.
5. Assurez-vous de mettre en cache access_token et jsapi_ticket.
C'est le point clé :
Assurez-vous que l'URL que vous obtenez pour la signature est obtenue dynamiquement. Pour les pages dynamiques, veuillez vous référer à l'implémentation PHP dans l'exemple de code. S'il s'agit d'une page HTML statique , l'URL est transmise au backend pour signature via ajax sur le front-end. Le front-end doit utiliser js pour obtenir le lien de la page actuelle à l'exception du '#'. partie de hachage (disponible location.href.split('#') [0] à obtenir, et encodeURIComponent est requis), car une fois la page partagée, le client WeChat ajoutera d'autres paramètres à la fin de votre lien Si le lien actuel n’est pas obtenu dynamiquement, la signature de la page partagée échouera.

Apprenez à vérifier si elle est correcte :
La méthode d'obtention dynamique de l'url est :

$protocol = (!empty($_SERVER[HTTPS]) && $_SERVER[HTTPS] !== off || $_SERVER[SERVER_PORT] == 443) ? "https://" : "http://";
$url = $protocol.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];

Étapes :
Tout d'abord, vous alertez(location. href.split(' #')[0]);
Ensuite, vous imprimez si l'URL obtenue dynamiquement est la même que l'adresse de votre alerte. Ils doivent être exactement les mêmes, y compris la majuscule.
Si vous trouvez qu'il est différent, changez-le en fonction de vos besoins. Quoi qu'il en soit, c'est pareil. La vérification de la signature doit réussir.

[Recommandations associées]

1. Téléchargement du code source de la plateforme de compte public WeChat

2 Téléchargement du code source du système de commande Alizi

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