Weryfikacja tokenów WeChat
Wracać
1. Metoda dostępu na publicznej platformie WeChat to nic więcej niż 4 parametry (podpis, znacznik czasu, nonce, echostr) plus 1 token (odpowiadający obu stronom)
2. Po sortowaniu słowników token, timestamp i nonce zaszyfruj je według ciągu "SHA1". Daje ciąg tmpStr (przekształcony na małą literę)
3. Następnie porównaj, czy tmpStr jest równe podpisowi, jeśli jest równe, oznacza to, że żądanie pochodzi z WeChat.
4. Jeśli upewnisz się, że prośba pochodzi z WeChat, zrobiłeś duży krok. Pozostała to praca polegająca na przesyłaniu parametru echostr na publiczną platformę WeChat.
Moja weryfikacja podpisu zakończyła się sukcesem, ale WeChat nadal nie zwraca tokena, ponieważ zwróciłem ciąg w formacie xml, w następujący sposób:
Rozwiązanie:
Należy podkreślić, że odnosi się tu do echo $echoStr PHP, Response.Write(echoStr) WebFrom i innych. Po wielokrotnym debugowaniu ustalono, że metoda akceptacji WeChat będzie akceptowana tylko jako "application/x-www-form-urlencoded", więc użyłem HttpResponseMessage, aby określić jej metodę wyjścia. W końcu test się powiódł!
Jednak osobiście uważam, że powyższe zdanie nie jest błędne, ale jestem leniwy, żeby to sprawdzić, i powinno być w porządku ustawić "tekst/zwykły" na odpowiedni typ.
POST powraca
Ostatnio funkcja płatności WeChat została wykorzystana do tworzenia miniprogramów WeChat oraz ASP.NET API WEB do tworzenia interfejsów;
Po pomyślnej płatności interfejs otrzymuje wynik powiadomienia o płatności z serwera WeChat, przetwarza dane i zwraca je do usługi WeChat.
Serwer WeChat nie rozpoznaje zwróconych danych, co skutkuje duplikatami powiadomień.
Ostateczny kod rozdzielczości przedstawia się następująco:
|