WeChat-Token-Verifizierung
Ich melde mich wieder
1. Die Zugriffsmethode der öffentlichen WeChat-Plattform besteht aus nicht mehr als 4 Parametern (Signatur, Zeitstempel, Nonce, Echostr) plus 1 Token (entsprechend beiden Seiten)
2. Nach der Sortierung der Token-, Zeitstempel- und Nonce-Wörterbücher verschlüsseln Sie sie gemäß der Zeichenkette "SHA1". Ergibt eine Zeichenkette tmpStr (in Kleinbuchstaben umgewandelt)
3. Vergleichen Sie dann, ob tmpStr gleich der Signatur ist; wenn sie gleich ist, bedeutet das, dass die Anfrage von WeChat stammt.
4. Wenn Sie sicherstellen, dass die Anfrage von WeChat kommt, haben Sie einen großen Schritt gemacht. Der verbleibende Teil ist die Übertragung des Echostr-Parameters an die öffentliche WeChat-Plattform.
Meine Signaturverifizierung ist erfolgreich, aber WeChat kann das Token weiterhin nicht zurückgeben, weil ich eine Zeichenkette im XML-Format wie folgt zurückgegeben habe:
Lösung:
Es sollte hier betont werden, dass sich auf PHPs Echo $echoStr, WebFroms Response.Write(echoStr) usw. Nach wiederholtem Debuggen wurde festgestellt, dass die Akzeptanzmethode von WeChat nur als "application/x-www-form-urlencoded" akzeptiert wird, daher habe ich HttpResponseMessage verwendet, um die Ausgabemethode anzugeben. Endlich war der Test erfolgreich!
Ich persönlich finde jedoch, dass der obige Satz nicht falsch ist, aber ich bin faul beim Testen, und es sollte in Ordnung sein, "Text/Klartext" auf den entsprechenden Typ zu setzen.
POST kehrt zurück
Kürzlich wurde die WeChat-Zahlungsfunktion bei der Entwicklung von WeChat-Miniprogrammen und ASP.NET WEB-API für die Entwicklung von Schnittstellen verwendet;
Nach erfolgreicher Zahlung erhält die Schnittstelle das Zahlungsbenachrichtigungsergebnis vom WeChat-Server, verarbeitet die Daten und gibt sie an den WeChat-Dienst zurück.
Der WeChat-Server erkennt die zurückgegebenen Daten nicht, was zu doppelten Benachrichtigungen führt.
Der endgültige Auflösungscode lautet wie folgt:
|