Heute habe ich versehentlich das Debuggen von WeChat JSSDK eröffnet und festgestellt, dass die Debugging -Informationen immer einen Fehler in der Signatur ausgelöst haben. Die "gelegentlich" der API hat vor zwei Tagen nicht wirksam, nicht weil der Code nicht ausgeführt wurde, sondern weil die Signatur nicht korrekt ist! Dies ist ein 100% reproduzierbarer Fehler
Aber solange das Spa gerade erfrischt wurde oder nach dem Laden nicht in der Mitte springt, ist die Signatur korrekt.
Aber wenn sich die Route ändert, haben wir nach dem erneuten Vertrag die neue "Sprung" -Seite auf einen Signaturfehler gestoßen. Unsere Signatur ist offensichtlich korrekt. Es ist dasselbe, verschiedene Parameter für das WeChat JS Signature-Überprüfungs-Tool (http://mp.weixin.qqq.com/debug/cgi-ner/sandbox?t=jsapisign) zum Vergleich!
Eine große Entdeckung später. . . Genau genommen
Unterschreiben Sie einfach einmal beim Laden der Spa -Eingangsseite, da die von WeChat unterschriebene URL nur die URL der ersten vom Spa geladenen URL zu erkennen scheint. . . Das Fenster.Location.href -Sprung ist dem SPA -Laden wieder ziemlich ähnlich
Ich dachte, wenn die Route umgeleitet wurde, sollte ich die neue URL verwenden, um zurückzutreten, aber genau deshalb habe ich einen Fehler in der Signaturüberprüfung gemacht. .
Die Lösung ist also:
Unterschreiben Sie einfach die erste geladene Seite. Der Sprung mit UI-Router scheint gerade die Adresse geändert zu haben. . Und die Änderung dieser Adresse. . Wechats Unterschrift scheint nicht erkannt zu sein. . Er erkannte die URL der ersten Seite geladen.
In diesem Artikel hoffe ich, dass es Freunden helfen kann, die auf dieses Problem stoßen. Vielen Dank für Ihre Unterstützung für diese Website!