Ошибка Parser при запросе команды GPO для карты EMV

У меня есть некоторые проблемы с командой GET PROCESSING OPTIONS (GPO) для карты VISA.

Ниже приведен мой ответ на команду SELECT для приложения VISA:

6F408407A0000000031010A535500A564953412044454249549F380C9F66049F02069F37049F1A025F2D02656EBF0C1242034761735F550255539F5A0511084008409000

Я извлек из этого следующий PDOL: 9F66049F02069F37049F1A02

Я не уверен насчет тега 9F66,

Моя команда GPO выглядит следующим образом:

80a800000100000001000000001000823DDE7A12400

Но я получаю ошибку парсера в ответ:

6A80

1 ответ

Кажется, у вашей команды GPO много проблем:

80 A8 0000 01       00000001 000000001000 823DDE7A 1240 0
           ^^ ^^^^^ ^^^^^^^^                       ^^^^ ^^
           4. 1.      2.                             3.   5.
  1. Прежде всего, ваша команда GPO отправляет несколько байтов данных без контекста. Вам нужно обернуть ваши элементы данных в объект данных, связанный с PDOL:

    83 10 wwwwwwww xxxxxxxxxxxx yyyyyyyy zzzz
    
  2. Ваши терминальные квалификаторы транзакций (9F66) установите биты RFU. Действительный TTQ может выглядеть так: B620C000, с

    • B6:
      • Режим Mag-Stripe поддерживается @bit 8
      • Режим EMV поддерживается @bit 6
      • Поддерживается контактный чип EMV @bit 5
      • поддерживается онлайн режим @bit 4
      • поддерживается онлайн-код @bit 3
      • подпись поддерживается @bit 2
      • другие биты = RFU
    • 20:
      • онлайн-криптограмма не требуется @bit 8
      • не требуется CMV @bit 7
      • (контактный чип) поддерживается автономный ПИН @bit 6
      • другие биты = RFU
    • C0:
      • поддерживается обработка обновлений эмитента @Bit 8
      • потребительское устройство CVM поддерживается @Bit 7
      • другие биты = RFU
    • 00: РФС
  3. Ваш код страны терминала недействителен. Код страны терминала должен представлять собой трехзначное числовое значение, кодированное BCD в два байта. Предполагая, что вы хотите использовать "124" (Кананда), правильный код страны будет 0124 (Австрия: 0040, СОЕДИНЕННОЕ КОРОЛЕВСТВО: 0826, СОЕДИНЕННЫЕ ШТАТЫ АМЕРИКИ: 0840).

  4. Байт Lc (установлен в 01 = один байт данных) не отражает фактическую длину данных. В вашем случае фактическая длина данных будет 16 байтов, поэтому Lc должен быть установлен в 10, Учитывая, что вам также необходимо включить тег и длину для объекта данных, связанных с PDOL, ваш байт Lc должен быть установлен в 12 (18 байт).

  5. Шестнадцатеричная строка, которую вы представили в качестве команды GPO, не выровнена по байтам, поэтому вам не хватает одного куска поля Le. Вы Le поле должно быть установлено в Le,

Таким образом, ваша команда GPO может выглядеть так:

80 A8 0000 12 83 10 B620C000 000000001000 823DDE7A 0124 00
Другие вопросы по тегам