"WeChat" atpažinimo ženklo patvirtinimas
Grįžk
1. "WeChat" viešosios platformos prieigos būdas yra ne kas kita, kaip 4 parametrai (parašas, laiko žyma, nonce, echostr) ir 1 žetonas (atitinkantis abi puses)
2. Surūšiavę žetonus, laiko žymą ir nonce žodynus, užšifruokite juos pagal eilutę "SHA1". Pateikia eilutę tmpStr (konvertuota į mažąsias raides)
3. Tada palyginkite, ar tmpStr yra lygus parašui, jei jis lygus, tai reiškia, kad užklausa yra iš WeChat.
4. Jei įsitikinsite, kad užklausa gaunama iš "WeChat", atlikote didelį žingsnį. Likęs - echostr parametro perdavimo į "WeChat" viešąją platformą darbas.
Mano parašo patvirtinimas sėkmingas, bet "WeChat" vis tiek negrąžina atpažinimo ženklo, nes grąžinau eilutę su xml formatu, kaip nurodyta toliau:
Sprendimas:
Čia reikėtų pabrėžti, kad tai susiję su PHP echo $echoStr, WebFrom's Response.Write(echoStr) ir kt. Po derinimo vėl ir vėl, buvo nustatyta, kad WeChat priėmimo metodas bus priimtas tik kaip "application/x-www-form-urlencoded", todėl aš naudojau HttpResponseMessage, kad nurodyčiau jo išvesties metodą. Pagaliau bandymas buvo sėkmingas!
Tačiau aš asmeniškai manau, kad aukščiau pateiktas sakinys nėra neteisingas, bet tingiu išbandyti, ir turėtų būti gerai nustatyti "tekstas/paprastas" į atitinkamą tipą.
POST grąžinimas
Pastaruoju metu "WeChat" mokėjimo funkcija buvo naudojama kuriant "WeChat" mini programas, o sąsajos kūrimui ASP.NET WEB API;
Sėkmingai atlikus mokėjimą, sąsaja gauna mokėjimo pranešimo rezultatą iš "WeChat" serverio, apdoroja duomenis ir grąžina duomenis į "WeChat" paslaugą.
"WeChat" serveris neatpažįsta grąžintų duomenų, todėl pranešimai pasikartoja.
Galutinis sprendimo kodas yra toks:
|