Vérification des jetons WeChat
Reviens
1. La méthode d’accès de la plateforme publique WeChat n’est plus que 4 paramètres (signature, horodatage, nonce, echostr) plus 1 jeton (correspondant aux deux côtés)
2. Après avoir trié les dictionnaires de jeton, d’horodatage et de nonce, chiffrez-les selon la chaîne « SHA1 ». Donne une chaîne tmpStr (convertie en minuscule)
3. Compare ensuite si tmpStr est égal à signature, si c’est égal, cela signifie que la requête provient de WeChat.
4. Si vous vous assurez que la demande provient de WeChat, vous avez accompli une étape importante. Le reste est le travail de transmission du paramètre echostr vers la plateforme publique WeChat.
Ma vérification de signature est réussie, mais WeChat ne retourne toujours pas le jeton car j’ai renvoyé une chaîne au format xml, comme suit :
Solution:
Il convient de souligner ici que cela fait référence à l’écho $echoStr de PHP, à Response.Write (echoStr) de WebFrom, etc. Après avoir débogé encore et encore, il a été déterminé que la méthode d’acceptation de WeChat ne serait acceptée que comme « application/x-www-form-urlencoded », alors j’ai utilisé HttpResponseMessage pour spécifier sa méthode de sortie. Enfin, le test a réussi !
Cependant, je pense personnellement que la phrase ci-dessus n’est pas fausse, mais je suis paresseux pour tester, et il devrait être acceptable de définir « text/plain » sur le type correspondant.
POST revient
Récemment, la fonction de paiement WeChat a été utilisée dans le développement de mini-programmes WeChat, ainsi que ASP.NET API WEB pour le développement d’interfaces ;
Après la réussite du paiement, l’interface reçoit le résultat de notification de paiement du serveur WeChat, traite les données et renvoie ces données au service WeChat.
Le serveur WeChat ne reconnaît pas les données retournées, ce qui entraîne des notifications en double.
Le code final de résolution est le suivant :
|