Протоколы Internet


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


/p>

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

Шаг

Действие

1

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

  1. Сгенерировать TransID согласно следующей процедуре:

  • Скопировать LID-C, XID и Language из записи транзакции
  • Если запись транзакции содержит LID-M, скопировать его
  • Занести текущую дату в TransIDs.PReqDate

  1. Скопировать RRPID из записи транзакции
  2. Скопировать Chall-C из записи транзакции
  3. Сформировать новый Chall-M
  4. Если оттиск для текущего BrandCRLIdentifier не получен или устарел, занести новый BrandCRLIdentifier
  5. На основе информации из PInitReq (BrandID, BIN и сертификат владельца карты) выбрать расчетный центр. Записать в PEThumb оттиск сертификата выбранного расчетного центра.
  6. Скопировать оттиски из PInitReq, если он имеется. Это позволяет владельцу карты проверить, что продавцу корректно доставлены все посланные оттиски.
  7. Опционно: добавить любые 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 следующим образом:

  1. Осуществить поиск транзакции с использованием LID-C. Если поиск безуспешен:

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

  1. Если LID-M был послан во время инициализационного процесса SET, сравнить LID-M с LID-M в записи транзакции. Если они неэквивалентны, то:

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

с) Если LID-M не был послан и имеется LID-M, то:

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

4

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

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

5

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

  1. Послать сообщение Error с ErrorCode равным challengeMismatch.
  2. Остановить обработку 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

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

<


Начало  Назад  Вперед



Книжный магазин