WeChat-tokenverifisering
Få igjen
1. Tilgangsmetoden til WeChats offentlige plattform er ikke mer enn 4 parametere (signatur, tidsstempel, nonce, echostr) pluss 1 token (tilsvarende begge sider)
2. Etter å ha sortert token-, tidsstempel- og nonce-ordbøker, krypter dem i henhold til strengen "SHA1". Gir en streng tmpStr (konvertert til liten bokstav)
3. Sammenlign deretter om tmpStr er lik signatur, hvis det er likt, betyr det at forespørselen kommer fra WeChat.
4. Hvis du sørger for at forespørselen kommer fra WeChat, har du tatt et stort steg. Den gjenværende, arbeidet med å overføre echostr-parameteren til WeChats offentlige plattform.
Min signaturverifisering er vellykket, men WeChat klarer fortsatt ikke å returnere token fordi jeg returnerte en streng med xml-format, som følger:
Løsning:
Det bør understrekes her at man refererer til PHPs echo $echoStr, WebFroms Response.Write(echoStr), osv. Etter gjentatte feilsøkinger ble det bestemt at WeChats akseptmetode kun ville bli akseptert som "application/x-www-form-urlencoded", så jeg brukte HttpResponseMessage for å spesifisere dens utdatametode. Endelig var testen vellykket!
Personlig føler jeg imidlertid at setningen over ikke er feil, men jeg er lat til å teste, og det burde være greit å sette «tekst/klar» til tilsvarende type.
POST returnerer
Nylig har WeChat betalingsfunksjon blitt brukt i utviklingen av WeChat mini-programmer, og ASP.NET WEB API for grensesnittutvikling;
Etter at betalingen er vellykket, mottar grensesnittet betalingsvarslingsresultatet fra WeChat-serveren, behandler dataene og returnerer dataene til WeChat-tjenesten.
WeChat-serveren gjenkjenner ikke de returnerte dataene, noe som resulterer i dupliserte varsler.
Den endelige oppløsningskoden er som følger:
|