Протоколы Internet



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


/p>

Формирование продавцом отклика PInitRes осуществляется следующим образом.

Шаг

Действие

1

Сформировать структуру данных PInitRes следующим образом:

  • Сгенерировать TransID согласно следующей процедуре:
  • Скопировать LID-C, XID и Language из записи транзакции
  • Если запись транзакции содержит LID-M, скопировать его
  • Занести текущую дату в TransIDs.PReqDate
  • Скопировать RRPID из записи транзакции
  • Скопировать Chall-C из записи транзакции
  • Сформировать новый Chall-M
  • Если оттиск для текущего BrandCRLIdentifier не получен или устарел, занести новый BrandCRLIdentifier
  • На основе информации из PInitReq (BrandID, BIN и сертификат владельца карты) выбрать расчетный центр. Записать в PEThumb оттиск сертификата выбранного расчетного центра.
  • Скопировать оттиски из PInitReq, если он имеется. Это позволяет владельцу карты проверить, что продавцу корректно доставлены все посланные оттиски.
  • Опционно: добавить любые PIRqExtensions
  • 2

    Ввести Compose SignedData. Если оттиск для Cert-PE не получен в PInitReq, включить в подпись Cert-PE.

    3

    Вставить все эти данные в цифровой конверт и послать владельцу карты

    Информационная структура PInitRes представлена ниже в таблице 4.6.2.56.

    Таблица 4.6.2.56

    . Структура PInitRes

    PInitRes

    S(M, PInitResData)

    PInitResData

    {TransIDs, RRPID, Chall-C, Chall-M, [BrandCRLIdentifier], PEThumb, [Thumbs], [PIRsExtensions]}

    TransIDs

    Смотри описание структуры TransID выше

    RRPID

    Идентификатор пары запрос/отклик

    Chall-C

    Копируется из сообщения PInitReq

    Chall-M

    Вызов продавца, служащий для проверки новизны подписи владельца карты

    BrandCRLIdentifier

    Список текущих CRL для всех СА в рамках заданной платежной системы.

    PEThumb

    Оттиск сертификата ключевого обмена расчетного центра.

    Thumbs

    Копируется из PInitReq

    PIRsExtensions

    Запрос инициализации покупки незашифрован, по этой причине эти расширения не должны содержать конфиденциальных данных.

    При получении владельцем карты сообщения PInitRes он обрабатывает его следующим образом.

    Шаг

    Действие

    1

    Извлечь PInitRes из входного сообщения

    2

    Вызвать Receive SignedData

    3

    Проверить TransID следующим образом:

  • Осуществить поиск транзакции с использованием LID-C. Если поиск безуспешен:
  • Послать сообщения Error с ErrorCode равным unknownLID
  • Остановить обработку PInitRes
  • Если LID-M был послан во время инициализационного процесса SET, сравнить LID-M с LID-M в записи транзакции. Если они неэквивалентны, то:
  • Послать сообщение Error с ErrorCode равным unknownLID
  • Остановить обработку PInitRes
  • с) Если LID-M не был послан и имеется LID-M, то:

  • Послать сообщение Error с ErrorCode равным unknownLID
  • Остановить обработку PInitRes
  • 4

    Сравнить RRPID со значением из записи транзакции. Если они отличаются, то:

  • Послать сообщение Error с ErrorCode равным unknownRRPID
  • Остановить обработку PInitRes
  • 5

    Сравнить Сhall-C со значением из записи транзакции. Если они отличаются, то:

  • Послать сообщение Error с ErrorCode равным challengeMismatch.
  • Остановить обработку PInitRes
  • 6

    В опционном варианте управления со стороны владельца карты из сертификата продавца извлекается его имя и отображается для пользователя. Если владелец карты одобряет кандидатуру, процесс продолжается, в противном случае обработка PInitRes прерывается.

    7

    Занести данные, включая TransID и Chall-M, в запись транзакции

    8

    Обработать BrandCRLIdentifier, если он присутствует.

    9

    Использовать PEThumb для идентификации сертификата шифрования (Cert-PE), чтобы использовать в PReq при шифровании данных для расчетного центра.

    10

    Проверить, что сертификат платежной системы продавца и сертификат расчетного центра (Cert-PE) согласуются с платежной системой владельца карты, указанной в PInitReq. Если согласия нет, владелец карты оповещается об этом, а обработка PInitReq прерывается.

    11

    Если поле Thumbs присутствует, сравнить его значение с тем, что прислано в PInitReq. Если значения совпадают, перейти к исполнению пункта 14, в противном случае:

  • Послать сообщение Error с ErrorCode равным thumbsMismatch
  • Остановить обработку PInitRes
  • 12

    Если поле Thumbs отсутствует, проверить, что Thumbs не было послано в PInitReq. Если Thumbs было послано в PInitReq, то:

  • Послать сообщение Error с ErrorCode равным thumbsMismatch
  • Остановить обработку PInitRes
  • 13

    Если PIRsExtensions существуют, их необходимо обработать. Если они не распознаны, а флаг критичности (criticality) равен TRUE, сформировать сообщение Error, в противном случае расширения следует игнорировать.

    14

    Проверить Cert-PE (идентифицированный в PEThumb) для неподписанных транзакций. Если индикатор в Cert-PE не допускает неподписанных транзакций, а владелец карты не имеет сертификата, информировать его о том, что транзакция не может быть продолжена и прервать обработку.

    15

    Владелец карты может теперь продолжить процедуру посылкой запроса покупки.

    <


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