У меня проблема.
Я хочу реализовать следующую задачу:
Отправка запроса на
https://securepay.tinkoff.ru/v2/Init что бы получить ссылку на оплату После успешной оплаты что бы тинькофф отправлял запрос на мой сервер(отправляю линк в notificationurl в init) Но я не понимаю как проверять токен?? В запросе который мне на сервер присылает тинькофф токен никак не сходится с тем который я генерирую
**private string GenerateTinkoffToken(Dictionary<string, string> dataForToken)
{
// 1. Сортируем ключи массива по алфавиту
var sortedDataKeys = dataForToken.Keys.OrderBy(k => k).ToList();
var sortedData = new Dictionary<string, string>();
foreach (var key in sortedDataKeys)
{
sortedData.Add(key, dataForToken[key]);
}
// 2. Конкатенируем только значения пар в одну строку (без разделителей)
var concatenatedString = string.Join("", sortedData.Values);
// 3. Применяем хэш-функцию SHA-256 (с поддержкой UTF-8 - по умолчанию в C#)
string calculatedToken;
using (SHA256 sha256Hash = SHA256.Create())
{
byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(concatenatedString));
StringBuilder builder = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
builder.Append(bytes[i].ToString("x2"));
}
calculatedToken = builder.ToString();
}
return calculatedToken;
}**