Телекоммуникационные технологии



         

SET и другие системы осуществления платежей - часть 41


Шаг Действие
1 Сформировать ErrorTBC следующим образом:

  1. Установить ErrorCode равным значению, указывающему на причину (см. табл. 4.6.2.16)
  2. Сформировать новый ErrorNonce
  3. Если ошибка случилась из-за того, что приложение не знает, как обрабатывать расширение сертификата или сообщения, занести в ErrorOID объектный идентификатор расширения.
  4. Если ошибка произошла из-за проблем с сертификатом, занести в ErrorThamb ThumbPrint сертификата
  5. Если ошибка является результатом неудачной верификации подписи, занести в ErrorThamb хэш сертификата
  6. ErrorMsg формируется следующим образом: заносится MessageHandler или все сообщение (но не более 20 килобайт). Выбор того, следует ли заносить все сообщение или только заголовок, оставляется на усмотрение разработчика.
2 Подписать сообщение Error, если имеется сертификат подписи
3 Вызвать формирование цифрового конверта и отправить сообщение

Для сообщения Error определены следующие поля

Имя поля Описание
Error <Signed Error, UnsignedError >
SignedError S(EE, ErrorTBS)
UnsignedError ErrorTBS

Неподписанная версия Error будет использоваться, если объект не имеет сертификата подписи

ErrorTBS {ErrorCode, ErrorNonce, [ErrorOID], [ErrorThumb], ErrorMsg}
ErrorCode Цифровой код, определяющий условия ошибки (см. табл. 4.6.2.16)
ErrorNonce Разовый код, который гарантирует, что подпись генерируется для трудно предсказуемых данных
ErrorOID Объектный идентификатор неподдерживаемых критических расширений, вызвавших ошибку
ErrorThumb Оттиск сертификата, который вызвал ошибку или хэш сертификата, если произошла ошибка верификации подписи
ErrorMsg <MessageHeader, BadWrapper>
MessageHeader Заголовок сообщения, которое вызвало ошибку
BadWrapper Цифровой конверт сообщения, которое вызвало ошибку (не более 20 килобайт)

Таблица 4.6.2.16. ErrorCode

Ошибка Описание
unspecifiedFailure Причина неудачи не фигурирует в списке стандартных ошибок
messageNotSupported Этот вполне корректный тип сообщения не поддерживается получателем
decodingFailure Произошла ошибка в процессе DER-кодирования сообщения
invalideCertificate Сертификат, необходимый для обработки сообщения, некорректен. Поле ErrorThumb идентифицирует этот сертификат.
expiredCertificate Время действия сертификата, необходимого для обработки сообщения, иссякло. Поле ErrorThumb идентифицирует этот сертификат.
revokedCertificate Сертификат, необходимый для обработки сообщения, отозван. Поле ErrorThumb идентифицирует этот сертификат.
missingCertificate Сертификат, необходимый для обработки этого сообщения, отсутствует в кэше сертификатов получателя.
signatureFailure Цифровая подпись сообщения не может быть верифицирована
badMessageHeader Заголовок сообщения не может быть обработан
wrapperMsgMismatch Содержимое цифрового конверта сообщения не согласуется с внутренним содержимым сообщения.
versionTooOld Номер версии сообщения слишком стар для получателя
versionTooNew Номер версии сообщения слишком нов для получателя
unrecognizedExtension Сообщение или сертификат содержит критическое расширение, которое получатель не может обработать. Поле ErrorOID идентифицирует расширение. Если расширение присутствует в сертификате, поле ErrorThumb идентифицирует сертификат
messageTooBig Сообщение слишком длинно для получателя
signatureRequired Неподписанная версия сообщения неприемлема
messageTooOld Дата сообщения слишком далеко в прошлом для получателя
messageTooNew Дата сообщения слишком близка для получателя
thumbsMismatch Оттиск, посланный в неподписанном запросе, не согласуется с тем, что прислано запрашивающей стороне
unknownXID Получен неизвестный RRPID
challengeMismatch Вызов, посланный в запросе, не согласуется с вызовом в отклике
<


Содержание  Назад  Вперед