WeChat-tokenverifikation
Kom tilbage
1. Adgangsmetoden for WeChats offentlige platform er ikke mere end 4 parametre (signatur, tidsstempel, nonce, echostr) plus 1 token (svarende til begge sider)
2. Efter at have sorteret ordbøgerne for token, tidsstempel og nonce, krypter dem efter strengen "SHA1". Giver en streng tmpStr (konverteret til små bogstaver)
3. Sammenlign derefter, om tmpStr er lig med signatur; hvis det er ens, betyder det, at anmodningen kommer fra WeChat.
4. Hvis du sikrer dig, at anmodningen kommer fra WeChat, har du taget et stort skridt. Den resterende er arbejdet med at overføre echostr-parameteren til WeChats offentlige platform.
Min signaturverifikation er succesfuld, men WeChat kan stadig ikke returnere token, fordi jeg returnerede en streng med xml-format, som følger:
Opløsning:
Det bør understreges her, at der refereres til PHP's echo $echoStr, WebFrom's Response.Write(echoStr) osv. Efter gentagen fejlfinding blev det fastslået, at WeChats acceptmetode kun ville blive accepteret som "application/x-www-form-urlencoded", så jeg brugte HttpResponseMessage til at specificere dens outputmetode. Endelig lykkedes testen!
Personligt føler jeg dog, at ovenstående sætning ikke er forkert, men jeg er doven til at teste, og det burde være okay at sætte "tekst/klar" til den tilsvarende type.
POST vender tilbage
For nylig er WeChat-betalingsfunktionen blevet brugt i udviklingen af WeChat mini-programmer og ASP.NET WEB API til udvikling af grænseflader;
Når betalingen er gennemført, modtager interfacet betalingsnotifikationsresultatet fra WeChat-serveren, behandler dataene og returnerer dataene til WeChat-tjenesten.
WeChat-serveren genkender ikke de returnerede data, hvilket resulterer i dublerede notifikationer.
Den endelige resolutionskode er som følger:
|