Verificarea tokenului WeChat
Vino înapoi
1. Metoda de acces a platformei publice WeChat nu este mai mult decât 4 parametri (semnătură, timestamp, nonce, echostr) plus 1 token (corespunzător ambelor părți)
2. După sortarea dicționarelor token, timestamp și nonce, criptează-le conform șirului "SHA1". Obține un șir tmpStr (convertit în litere mici)
3. Apoi compară dacă tmpStr este egal cu semnătura, dacă este egal, înseamnă că cererea provine de la WeChat.
4. Dacă te asiguri că cererea vine de pe WeChat, ai făcut un pas important. Restul, lucrarea de transmitere a parametrului echostr către platforma publică WeChat.
Verificarea semnăturii mele este reușită, dar WeChat tot nu returnează tokenul pentru că am returnat un șir cu format xml, după cum urmează:
Soluție:
Trebuie subliniat aici că se referă la echo $echoStr din PHP, Response.Write(echoStr) al WebFrom, etc. După ce am depanat iar și iar, s-a stabilit că metoda de acceptare a WeChat va fi acceptată doar ca "application/x-www-form-urlencoded", așa că am folosit HttpResponseMessage pentru a specifica metoda de ieșire. În cele din urmă, testul a fost un succes!
Totuși, personal simt că propoziția de mai sus nu este greșită, dar sunt leneș să testez și ar trebui să fie în regulă să setez "text/plain" la tipul corespunzător.
POST înregistrează
Recent, funcția de plată WeChat a fost folosită în dezvoltarea mini-programelor WeChat și a API-ului ASP.NET WEB pentru dezvoltarea interfețelor;
După ce plata este reușită, interfața primește rezultatul notificării plății de la serverul WeChat, procesează datele și returnează datele către serviciul WeChat.
Serverul WeChat nu recunoaște datele returnate, ceea ce duce la notificări duplicate.
Codul final de rezoluție este următorul:
|