Для интеграции через внешний интерфейс API СБИС.
Ошибка проверки ЭП: подпись недействительна, не соответствует файлу или испорчена. ФИО субъекта сертификата: '***'.Серийный номер сертификата: '***', отпечаток: ***
Как бы это банально не звучало, ошибка связана с тем что подпись под документом на самом деле недействительна.
Для понимания процесса, разберем алгоритм отправки с подписанием документов в СБИС API:
1) выполняем записать документ методом СБИС.ЗаписатьДокумент, если ответ с кодом 200, значит все ок, идем дальше
после этого метода, документ как есть записывается в ЛК СБИС, его можно найти в соответствующем реестре в ЛК СБИС, если в фильтре включить отображение Черновиков
2) выполняем СБИС.ПодготовитьДействие, для подписания после выполнения метода возвращается самое главное - хэш под каждым вложением
тут СБИС выполняет все подготовительные действия, в т.ч. модифицирует документ (заполняет ид участников и подписанта) если подпись под документом не была передана при СБИС.ЗаписатьДокумент
3) Получив хэш, надо подписать каждое вложение через API установленного криптопровайдера и передать на следующем шаге (СБИС.ВыполнитьДействие) подписи для каждого вложения в ранее записанный пакет
Варианты/причины ошибки:
1) Вы подписали не хэш, который вернулся на шаге 2, а целиком документ, тогда подпись под документом будет значительно больше по объему информации. Выкачайте подписанный документ в интерфейсе СБИС и сравните с тем что у вас получается через API по размеру.
2) При подписании использовался полученный на 2м шаге хэш, но ваша система (в частности такое есть в 1С в функции Подписать(ИсходныеДанные, Сертификат) сама вычисляет хэш, т.к. ждет на вход исходный документ), таким образом получается подписание 2го хэша, и в СБИС проверка не проходит.
3) вы решили подписывать не хэш вернувшийся от СБИС, а сами все рассчитать и подписали тот документ, который передавали в СБИС.ЗаписатьДокумент, он был модифицирован СБИС и документы по факту оказались разными.
Если вы решили вычислить хэш сами, то убедитесь что хэш вычисляется на уже модифицированном документе, см выше шаг 2.
4) вы по какой-то причине ошиблись сертификатом или модифицировали результат подписания
Уверены что ничего из перечисленного не случилось с вами? Пишите ниже, разберемся