Верификация на токена в WeChat
Върни се
1. Методът на достъп на публичната платформа WeChat е нищо повече от 4 параметъра (подпис, времеви печат, nonce, echostr) плюс 1 токен (съответстващ и на двете страни)
2. След като сортирате токена, времевия печат и nonce речниците, ги криптирайте според низа "SHA1". Дава струна tmpStr (преобразувана в малки букви)
3. След това сравнете дали tmpStr е равен на подписа – ако е равен, това означава, че заявката е от WeChat.
4. Ако се уверите, че заявката идва от WeChat, сте постигнали голяма стъпка. Останалото е работата по предаване на параметъра echostr към публичната платформа WeChat.
Проверката на подписа ми е успешна, но WeChat все още не връща токена, защото върнах низ с xml формат, както следва:
Решение:
Тук трябва да се подчертае, че се отнася до echo $echoStr на PHP, WebFrom Response.Write (echoStr) и др. След многократно отстраняване на грешки беше установено, че методът на приемане на WeChat ще бъде приет само като "application/x-www-form-urlencoded", затова използвах HttpResponseMessage, за да посоча неговия метод на изход. Накрая тестът беше успешен!
Въпреки това, лично аз смятам, че горното изречение не е грешно, но съм мързелив да го тествам и би трябвало да е приемливо да задавам "текст/обикновено" на съответния тип.
Резултати след
Напоследък платежната функция на WeChat се използва при разработването на мини програми на WeChat и ASP.NET WEB API за разработка на интерфейси;
След като плащането е успешно, интерфейсът получава резултата от уведомлението за плащане от WeChat сървъра, обработва данните и ги връща на услугата WeChat.
WeChat сървърът не разпознава върнатите данни, което води до дублирани известия.
Крайният код за резолюция е следният:
|