1С:Фриланс
18.05
Необходимо исправить ошибку в подписи сертификатом HTTP Запроса Т-Банка (Тинкофф)
https://1clancer.ru/task/75985 Бюджет: 5 000.00
В Интеграции 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));
Возврат СтруктураРезультатов;
КонецФункции
еще контент в этом сообществе
еще контент в этом соообществе
1С:Фриланс
18.05
войдите, чтобы увидеть
и подписаться на интересных профи