Как интерпретировать ответ от GET PROCESSING OPTIONS?

Я связываюсь с дебетовой картой Visa Electron через считыватель ACR и получаю следующий ответ от команды GET PROCESSING OPTIONS:

80 0A 1C 00 08 01 03 00 10 01 01 00 90 00

Как мне интерпретировать этот ответ, если в нем нет AFL (указателя файлов приложения) или AIP (профиля обмена приложениями)? Вот полный журнал общения:

SELECT PSEv2: 00 A4 04 00 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00
SELECT PSEv2 returned: 6A82 - Wrong parameter(s) P1 P2; file not found

SELECT PSEv1: 00 A4 04 00 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00
SELECT PSEv1 returned: 6A82 - Wrong parameter(s) P1 P2; file not found

SELECT ADF: 00 A4 04 00 07 A0 00 00 01 52 30 10 00
SELECT ADF returned: 6A82 - Wrong parameter(s) P1 P2; file not found

SELECT ADF: 00 A4 04 00 07 A0 00 00 00 03 10 10 00
SELECT ADF returned: 6A82 - Wrong parameter(s) P1 P2; file not found

SELECT ADF: 00 A4 04 00 07 A0 00 00 00 03 20 10 00
SELECT ADF returned: 6F 2C 84 07 A0 00 00 00 03 20 10 A5 21 50 0D 56 49 53 41 20 45 4C 45 43 54 52 4F 4E 87 01 01 5F 2D 04 62 67 65 6E BF 0C 05 9F 4D 02 0B 0A 90 00

SELECT ADF: 00 A4 04 00 05 A0 00 00 00 25 00
SELECT ADF returned: 6A82 - Wrong parameter(s) P1 P2; file not found

SELECT ADF: 00 A4 04 00 07 A0 00 00 00 04 10 10 00
SELECT ADF returned: 6A82 - Wrong parameter(s) P1 P2; file not found

SELECT ADF: 00 A4 04 00 07 A0 00 00 00 03 20 10 00
SELECT ADF returned: 6F 2C 84 07 A0 00 00 00 03 20 10 A5 21 50 0D 56 49 53 41 20 45 4C 45 43 54 52 4F 4E 87 01 01 5F 2D 04 62 67 65 6E BF 0C 05 9F 4D 02 0B 0A 90 00

GET PROCESSING OPTIONS: 80 A8 00 00 02 83 00 00
GET PROCESSING OPTIONS returned: 80 0A 1C 00 08 01 03 00 10 01 01 00 90 00

Большое спасибо!


person Lubo    schedule 18.06.2015    source источник


Ответы (1)


Подробную информацию можно найти в спецификации EMV. В ответе Только теги значений 0x82 и 0x94 без частей тега и длины.

В ответе команды Get Processing Option (GPO) BER-TLV закодированы данные. В вашем примере: в разделе Тег 0x80 «Шаблон, формат ответного сообщения 1» упакован Тег 0x82 «EMV, Application Interchange Profile (AIP)», значение 2 байта и rest - значение Tag 0x94 "EMV, Application File Locator (AFL)".

Вот результаты с парсером команд / ответов EMV APDU

> 80 A8 00 00 02 83 00 00
< 80 0A 1C 00 08 01 03 00 10 01 01 00 90 00

A8: # EMV, Get Processing Options
- rq:#"80A8000002830000" # ISO 7816-3, Case 4
  - CLA: "80" # Class byte
  - INS: "A8" # Instruction
  - P1P2: "0000" # Parameters 1 and 2
  - LcData:#"028300"
    - len: "02" # .
    - val:#"8300" # .
      - RFU: "8300" # Authorisation Cryptogram RFU
  - Le: "00" # .
- rs:#"800A1C0008010300100101009000" # Response
  - SW1SW2:#"9000" # Status byte 1 and 2
    - SW1: "90" # Status byte 1 // Normal processing
    - SW2: "00" # Status byte 2
  - DATA:#"800A1C000801030010010100" # .
    - x80:#"800A1C000801030010010100"
      - tag: "80"
      - len: "0A" #  // 10
      - val:#"1C000801030010010100" # Template, Response Message Format 1.
        - x82:#"1C00" # EMV, Application Interchange Profile (AIP)
          - val:#"1C00" # Application Interchange Profile (AIP).
            - B01: "1C"
              # ___1____ - bit 5, Cardholder verification is supported
              # ____1___ - bit 4, Terminal Risk Management is to be performed
              # _____1__ - bit 3, Issuer Authentication is supported
            - B02: "00" # RFU
        - x94:#"0801030010010100" # EMV, Application File Locator (AFL)
          - val:#"0801030010010100" # Application File Locator (AFL).
            - S1:#"08010300" # AFL Record
              - B01: "08" # SFI [xxxxx___] // 1
              - B02: "01" # From record // 1
              - B03: "03" # To record // 3
              - B04: "00" # First hashed
            - S2:#"10010100" # AFL Record
              - B01: "10" # SFI [xxxxx___] // 2
              - B02: "01" # From record // 1
              - B03: "01" # To record // 1
              - B04: "00" # First hashed
person iso8583.info support    schedule 19.06.2015