Протокол для работы с кредитными картами CyberCash




Оттиски (Thumbprints) - часть 72


Структура данных AuthReqPayload представлена в таблице 4.6.2.65.

Таблица 4.6.2.65. Структура AuthReqPayload

AuthReqPayload

{SubsequentAuthInd, AuthReqAmt, [AVSData],
[SpecialProcessing], [CardSuspect],
RequestCardTypeInd, [InstallRecurData],
[MarketSpecAuthData], MerchData, [ARqExtensions]}

SubsequentAuthInd

Булева переменная, указывающая на запросы со стороны продавца дополнительной авторизации из-за раздельной поставки

AuthReqAmt

Может отличаться от PurchAmt; политика банка продавца может наложить ограничение на допустимое отличие

AVSData

{[StreetAddress], Location}
Адрес счета владельца карты: содержимое получается от владельца карты посредством механизмов, выходящих за пределы SET.

SpecialProcessingЧисловое поле, указывающее тип запрошенной обработки
CardSuspect

Числовое поле, указывающее, что продавец подозревает владельца карты, и на причину подозрения

RequestCardTypeInd

Указывает, что тип карты должен быть прислан в поле CardType отклика. Если информация недоступна, присылается значение unavailable(0).

InstallRecurDataСм. табл. 4.6.2.41.
MarketSpecAuthData

< MarketAutoAuth, MarketHotelAuth, MarketTransportAuth >
Специфические авторизационные данные рынка

MerchData{[MerchCatCode], [MerchGroup]}
ARqExtensions

Данные в расширении авторизационного запроса должны иметь финансовый характер и относиться к процессу авторизации (или последующей оплаты заказа) расчетного центра, финансовой сети или эмитента карты.

StreetAddressАдрес улицы владельца карты
MarketAutoAuth{Duration}
MarketHotelAuth{Duration, [Prestige]}
MarketTransportAuth

{}
В настоящее время нет авторизационных данных для этого сегмента рынка

MerchCatCode

4-байтовый код (определен в ANSI X9.10), описывающий тип бизнеса, продукта или услуги продавца.

MerchGroupЧисловой код, идентифицирующий общую категорию продавца
Duration

Ожидаемая длительность транзакции (в днях). Эта информация помогает понять, какое время пройдет со времени авторизации до оплаты заказа (capture).

Prestige

Числовой тип приоритета, определяется платежной системы карты.

Схема обработки запроса AuthReq платежным центром представлена в таблице ниже.

ШагДействие
1Извлечь запрос из транспортного сообщения
2Дешифровать PI
3

Сравнить TransIDs из AuthTags и PIHead или AuthToken:

  1. Проверить что коды XID идентичны

  2. Проверить что коды LID-C идентичны

  3. Если LID-M присутствуют в AuthTags и PIHead, сравнить их значения

Если хотя бы одна из проверок не прошла, сообщение отбрасывается и возвращается AuthCode = piAuthMismatch

4

Если PI является AuthToken:

  1. Обработать AuthToken

В противном случае, если PI подписаны:

  1. Проверить, что платежная система в подписи владельца карты согласуется с платежной системой сертификата шифрования расчетного центра. Если согласия нет, то авторизация отвергается путем отправки AuthCode = CardMerchBrandMismatch.

  2. Проверить PANData

  3. Запомнить данные из PANData

В противном случае, если PI не подписаны:

  1. Проверить, что расчетный центр не требует подписи (путем проверки сертификата платежного центра). Если подпись требуется, отвергнуть авторизацию, послав AuthCode = signatureRequired

  2. Верифицировать хэш в EXH

  3. Запомнить данные из PANToken

5

Проверить состояние авторизации PI. Если PI была обработана и не отвергнута или отозвана, отвергнуть авторизацию, послав AuthCode = piPreviouslyUsed

6

Обработать PIHead:

  1. Проверить, что PiHeadMerchantID соответствует содержимому поля merID в расширении merchantData сертификата подписи, используемом при верификации подписи продавца для сообщения AuthReq. Если соответствия нет, авторизация отвергается и посылается отклик с AuthCode = piAuthMismatch. Это предотвращает атаки подстановки, когда PI разных продавцов меняются местами.

  2. Передать TransStain эмитенту через финансовую сеть для верификации или запоминания с последующей верификацией.

  3. Проверить хэши OIData, полученные от владельца карты и продавца. Если они не совпадают, прислать AuthCode = piAuthMismatch.

  4. Проверить, что HOD от HIHead соответствует HOD2 от AuthReqPayload, при несовпадении прислать сообщение Error c ErrorCode = HODMismatch

  5. Обработать PIExtensions. Если обнаружены неподдерживаемые расширения, сообщение отвергается путем посылки сообщения Error c кодом unrecognizedExtension

  6. Запомнить данные от PIHead

7

Если в AuthReq имеется InstallRecurData, проверить, что InstallRecurData в AuthReqPayload и в PIHead совпадают. Если это не так, отклонить авторизацию с AuthCode = InstallRecurMismatch.

8

Запомнить AcqBackInfo в безопасной локальной памяти, если таковая имеется.

9

Если captureNow=TRUE и платежная система не поддерживает этот режим, послать AuthCode = captureNotSupported

10

Выполнить авторизацию через финансовую сеть платежной карты

11

Если captureNow=TRUE, выполнить платеж через существующую финансовую сеть платежной карты

12Продолжить формирование сообщения AuthRes



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