Overenie tokenov WeChat
Vráť sa
1. Spôsob prístupu na verejnú platformu WeChat nie je nič viac ako 4 parametre (podpis, časová pečiatka, nonce, echostr) plus 1 token (zodpovedajúci obom stranám)
2. Po zoradení slovníkov tokenov, časových značiek a nonce slovníkov ich zašifrujte podľa reťazca "SHA1". Vytvára reťazec tmpStr (prevedený na malé písmená)
3. Potom porovnať, či je tmpStr rovné podpisu, ak je rovnaké, znamená to, že požiadavka pochádza z WeChatu.
4. Ak si zabezpečíte, že žiadosť pochádza z WeChatu, urobili ste veľký krok. Zvyšok spočíva v prenose parametra echostr na verejnú platformu WeChat.
Overenie podpisu je úspešné, ale WeChat stále nevracia token, pretože som vrátil reťazec v xml formáte, nasledovne:
Riešenie:
Tu treba zdôrazniť, že sa týka PHP echo $echoStr, WebFrom's Response.Write(echoStr) a podobne. Po opakovanom ladení sa zistilo, že akceptačná metóda WeChatu bude akceptovaná len ako "application/x-www-form-urlencoded", preto som použil HttpResponseMessage na určenie jej výstupnej metódy. Nakoniec bol test úspešný!
Osobne si však myslím, že vyššie uvedená veta nie je nesprávna, ale som lenivý to testovať a malo by byť v poriadku nastaviť "text/plain" na príslušný typ.
POST sa vracia
V poslednej dobe sa platobná funkcia WeChat používa pri vývoji WeChat mini programov a ASP.NET WEB API na vývoj rozhraní;
Po úspešnej platbe rozhranie prijíma výsledok platebného upozornenia zo servera WeChat, spracuje dáta a vráti ich službe WeChat.
WeChat server nerozpoznáva vrátené dáta, čo vedie k duplicitným notifikáciám.
Konečný kód rozlíšenia je nasledovný:
|