1. La signature calculée est cohérente avec le bac à sable fourni par WeChat : http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
2. J'ai essayé d'utiliser deux méthodes pour résoudre le problème, mais j'ai toujours la même erreur : 1), transmettre l'URL du local au serveur, obtenir les données json du serveur via ajax, puis remplir le contenu de wx .config; 2), récupérez-le depuis le serveur Lien vers cette visite
3. Utilisez nginx comme proxy de nom de domaine inverse, mais il a été traité en amont
Conclusion : on soupçonne que le JSSDK de WeChat présente un bug
Il faudra peut-être vérifier
1) Mettez-vous en cache le jsticket de WeChat globalement sur le serveur ? Une fois un nouveau jsticket obtenu, le jsticket d'origine (y compris access_token) sera actualisé
2) Si l'URL est cohérente, y compris la chaîne de requête, etc.
3) Si nonceStr et timestamp sont cohérents avec la signature
Je soupçonne également qu'il y a un bug. La signature invalide n'est pas valide sous Android, mais elle est correcte sous iOS. Et il est transmis sur la page de débogage officielle. Je me demande si l'affiche originale l'a résolu maintenant ?
Peut-être
url
传入的问题,建议wx.config
est généré en arrière-plan puis écrit au premier plan.Comme le mien
Alors
Le problème de l'affiche a-t-il été résolu ? J'ai le même problème. Quoi qu'il en soit, j'ai également testé l'interface pour la comparer avec l'outil de test de WeChat, mais elle continue d'afficher une signature invalide
.La signature est la même que la signature officielle et l'URL est également obtenue via location.href.split('#')[0]. . Il continue également à demander config:invalid signature. Le nom de domaine de sécurité de l'interface JS du compte officiel est également configuré correctement, mais ne fonctionne pas. . Demandez à Dieu de l'aide,
Adresse de test : http://weixin.zhjckx.com/ApiWeiXin/JsSdk
Découvrez ma réponse d'une autre personne :
/q/1010000002502269/a-1020000002549180X2X
La situation que j'ai rencontrée était que lors de l'obtention de l'URL actuelle lors de la génération d'une signature, la méthode URL:full() du framework laravel était utilisée. En conséquence, cette méthode réorganisera l’ordre de la chaîne de requête dans l’URL. Par exemple, l'url lors de votre visite est
, le résultat obtenu en utilisant URL:full() est
Changé pour l'exemple officiel honnête et pratique de WeChat :
C'est bon.
Je l'ai modifié moi-même et je l'ai testé ok. La raison est que la fonction officielle httpGet ne peut pas être utilisée.
Dites-moi ces deux phrases dans jssdk.php