новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Артем
Приватное сообщение
Новый заказчик

Необходимо исправить ошибку в подписи сертификатом HTTP Запроса Т-Банка (Тинкофф)

Ростов-на-Дону(Россия )
19 мая 2025 в 15:27:16 (3 дня 4 часа назад)
5300
Текст задания
В Интеграции 1С с сервисом СПБ (система быстрых платежей) Т-Банка (Тинкофф) Необходимо исправить ошибку в подписи HTTP Запроса сертификатом.
Есть рабочий код по формированию и отправке запроса методом GetSbpMembers (получение Список участников, принимающих переводы через СБП). Передается один реквизит TerminalKey. На сформированную подпись возвращается правильный ответ. Однако при использовании этого же кода подписи в другом методе Init (Инициализация выплаты) в котором передается несколько реквизитов возвращается ответ «Передана некорректная подпись».
Есть мануал банка по СПБ и подписи
https://www.tbank.ru/kassa/dev/payouts/#tag/Metody-SBP
https://www.tbank.ru/kassa/dev/payouts/#tag/Podpis-s-pomoshyu-KriptoPro
В мануале есть ссылки на открытый код на библиотеку dll и подпись на С#. Допустимый вариант адаптировать эту библиотеку в 1С


ИСПОЛЬЗУЕМЫЙ КОД

&НаСервере
Функция ВычислитьХешИПодписьRawSignature(Сертификат, СтрокаТелаЗапроса)

СтруктураРезультатов = Новый Структура("Хеш,Подпись");

HashedData = Новый COMОбъект("CAdESCOM.HashedData");
HashedData.Algorithm = 101;
UTF8Encoding = Новый COMОбъект("System.Text.UTF8Encoding");
HashedData.Hash(UTF8Encoding.GetBytes_4(СтрокаТелаЗапроса));
СтруктураРезультатов.Хеш = Base64Строка(ПолучитьДвоичныеДанныеИзHexСтроки(HashedData.Value));

oSignedData = Новый COMОбъект("CAdESCOM.RawSignature");
sSignedMessage = oSignedData.SignHash(HashedData, Сертификат);
СтруктураРезультатов.Подпись = Base64Строка(ПолучитьДвоичныеДанныеИзHexСтроки(sSignedMessage));

Возврат СтруктураРезультатов;

КонецФункции
0
Выбранные исполнители
Отклики