Шаг | Действие | ||
1 | Извлечь PurchAmt и OD | ||
2 | Сформировать OIData следующим образом: | ||
a) | Если имел место обмен PInitReq/ PInitRes: | Скопировать TransIDs из PInitRes | |
В противном случае: | Для формирования TransIDs владелец карты сгенерирует PreqDate (текущие дата/время), LID-C и XID | ||
b) | Сформировать новый RRPID, запомнить его значение для сверки с откликом продавца | ||
Если имел место обмен PInitReq/PInitRes: | Скопировать Chall-c из PInitRes | ||
В противном случае: | Сформировать новый Chall-C | ||
c) | Сформировать новый ODSalt | ||
d) | Сформировать HODInput посредством следующей процедуры:
| ||
e) | Сформировать HOD с HODInput из пункта 2 d | ||
f) | Если имел место обмен PInitReq/ PInitRes: | Скопировать Chall-M из PInitRes и не заполнять BrandID | |
В противном случае: | Не заполнять Chall-M Записать BrandID, указав предпочтительный тип карты | ||
g) | Произвести записьв поле BIN с HODInput из пункта 2d | ||
h) | Если HODInput из шага 2.d имеет какие-то расширения OIExtensions, внести ODExtOIDs со всеми OID в ODExtensions. ODExtOIDs будут перечислены в том же порядке, что и расширения ODExtensions, таким образом продавец сможет вычислить тот же самый хэш | ||
i) | Опционно: добавить любые расширения OIExtensions. | ||
3 | Сформировать PIHead следующим образом: | ||
a) | Скопировать TransIDs, вычисленные в пункте 2.а | ||
b) | Сгенерировать Inputs согласно процедуре:
| ||
c) | Скопировать MerchandID из сертификата продавца в PInitRes, или из CD-ROM-каталога | ||
d) | Скопировать InstallRecurData из пункта 2.d.4 (если имеется) | ||
e) | Сформировать TransStain, как HMAC, используя XID в качестве данных и CardSecret - в качестве ключа. Если владелец карты не имеет сертификата, использовать CardSecret, заполненный нулями. | ||
f) | Записать SWIdent, который получен из локальных данных. Это значение будет соответствовать коду в цифровом конверте сообщения | ||
g) | Если присутствует туннельное расширение Cert_PE, сформировать AcqBackInfo следующим образом: | ||
h) | Опционно добавить любые PIExtensions | ||
4 | Сформировать PANData | ||
5 | Сгенерировать PU-OIData c L-оператором, используя PIHead из пункта 3 (параметр t1) и OIData из пункта 2 (параметр t2) | ||
6 | Используя результат пунктов 2, 3 и 4, сгенерировать PreqDualSigned, если владелец карты имеет сертификат или PreqUnsigned, если сертификата нет. |