/p>
Схема обработки запроса AuthReq платежным центром представлена в таблице ниже.
Шаг
|
Действие
|
1
|
Извлечь запрос из транспортного сообщения
|
2
|
Дешифровать PI
|
3
|
Сравнить TransIDs из AuthTags и PIHead или AuthToken:
Проверить что коды XID идентичны
Проверить что коды LID-C идентичны
Если LID-M присутствуют в AuthTags и PIHead, сравнить их значения
Если хотя бы одна из проверок не прошла, сообщение отбрасывается и возвращается AuthCode = piAuthMismatch
|
4
|
Если PI является AuthToken:
Обработать AuthToken
В противном случае, если PI подписаны:
Проверить, что платежная система в подписи владельца карты согласуется с платежной системой сертификата шифрования расчетного центра. Если согласия нет, то авторизация отвергается путем отправки AuthCode = CardMerchBrandMismatch.
Проверить PANData
Запомнить данные из PANData
В противном случае, если PI не подписаны:
Проверить, что расчетный центр не требует подписи (путем проверки сертификата платежного центра). Если подпись требуется, отвергнуть авторизацию, послав AuthCode = signatureRequired
Верифицировать хэш в EXH
Запомнить данные из PANToken
|
5
|
Проверить состояние авторизации PI. Если PI была обработана и не отвергнута или отозвана, отвергнуть авторизацию, послав AuthCode = piPreviouslyUsed
|
6
|
Обработать PIHead:
Проверить, что PiHeadMerchantID соответствует содержимому поля merID в расширении merchantData сертификата подписи, используемом при верификации подписи продавца для сообщения AuthReq. Если соответствия нет, авторизация отвергается и посылается отклик с AuthCode = piAuthMismatch. Это предотвращает атаки подстановки, когда PI разных продавцов меняются местами.
Передать TransStain эмитенту через финансовую сеть для верификации или запоминания с последующей верификацией.
Проверить хэши OIData, полученные от владельца карты и продавца. Если они не совпадают, прислать AuthCode = piAuthMismatch.
Проверить, что HOD от HIHead соответствует HOD2 от AuthReqPayload, при несовпадении прислать сообщение Error c ErrorCode = HODMismatch
Обработать PIExtensions. Если обнаружены неподдерживаемые расширения, сообщение отвергается путем посылки сообщения Error c кодом unrecognizedExtension
Запомнить данные от PIHead
|
7
|
Если в AuthReq имеется InstallRecurData, проверить, что InstallRecurData в AuthReqPayload и в PIHead совпадают. Если это не так, отклонить авторизацию с AuthCode = InstallRecurMismatch.
|
8
|
Запомнить AcqBackInfo в безопасной локальной памяти, если таковая имеется.
|
9
|
Если captureNow=TRUE и платежная система не поддерживает этот режим, послать AuthCode = captureNotSupported
|
10
|
Выполнить авторизацию через финансовую сеть платежной карты
|
11
|
Если captureNow=TRUE, выполнить платеж через существующую финансовую сеть платежной карты
|
12
|
Продолжить формирование сообщения AuthRes
|