Operation Code buffer и FIT таблицы

Все про APTRA

Модератор: central

DimaZP
Прохожий
Сообщения: 1
Зарегистрирован: 19 июн 2014, 18:23

Operation Code buffer и FIT таблицы

Непрочитанное сообщение DimaZP »

Ребят, привет.
Пишу эмулятор банкомата. Есть мануал по NDC протоколу.
Но в связи с тем, что мало знаком с банкоматами, есть пару вопросов.
Очень подзастрял на отправке сообщения для транзакции. Именно на поле Operation code buffer (иногда operation code data). Там восемь символов. Вроде как - коды нажатых клавиш. Однако попробовал на банкомате снять деньги и взял после этого логи.

Там буфер выглядит так (звездочками отмечены пробелы):
"CD***CBC" - просмотр баланса;
"AD***CBC" - снятие денег;
"AD***BBB"- снятие денег с печатью чека.

В общем, мне непонятно. На коды клавиш не сильно похоже (если брать FDK раскладку банкомата). Нажимались клавиши и с левой стороны монитора и с правой. Не могу понять - что это за буквы. И что за пробелы между ними? Может, знает кто? Как правильно формировать этот буфер?

И вторая непонятная мне тема - это FIT-таблица, которая мне приходит. Вернее, первые ее поля:
PIDDX (Institution ID Index) и PFIID (Institution ID).
В общем, таблица разбита сепараторами на 3 части. Везде данные одинаковые, кроме этих первых двух полей.

Описание для меня непонятно.

PIDDX (Institution ID Index) 8
Each card contains an ID number to identify the financial institution it belongs to. This field gives the offset for the FIID on the card. The range is 00-7F hex.
"каждая карта содержит ID.." что это дает, для чего эти данные?
Спасибо всем, кто ответит.
booby
Специалист
Сообщения: 405
Зарегистрирован: 21 янв 2013, 07:14
Поблагодарили: 1 раз

Re: Operation Code buffer и FIT таблицы

Непрочитанное сообщение booby »

DimaZP писал(а):И вторая непонятная мне тема - это FIT-таблица, которая мне приходит. Вернее, первые ее поля
Там же ясно написан ответ: "This field gives the offset for the FIID on the card."
То есть, PIDDX содержит смещение в PAN карты, где начинается БИН (FIID). Обычно PIDDX=000.
PFIID - это БИН (или его часть), которая определяет финансовый институт (платежная система, банк etc).
Аватара пользователя
magarila
Местный
Сообщения: 59
Зарегистрирован: 29 сен 2011, 20:09
Поблагодарили: 4 раза

Re: Operation Code buffer и FIT таблицы

Непрочитанное сообщение magarila »

Мнээ... а Вы данный эмулятор часом не для курсовой пишете? :hahaha:
Аватара пользователя
Shoroh
Администратор
Сообщения: 5439
Зарегистрирован: 12 май 2010, 19:55
Благодарил (а): 121 раз
Поблагодарили: 116 раз

Re: Operation Code buffer и FIT таблицы

Непрочитанное сообщение Shoroh »

Ну зачем так сразу, для курсовой. Может это просто для тестирования картридера ))
Test
Аватара пользователя
Shurik
Специалист
Сообщения: 266
Зарегистрирован: 16 окт 2013, 00:55
Откуда: Хабаровск-Краснодар

Re: Operation Code buffer и FIT таблицы

Непрочитанное сообщение Shurik »

А мне кажется, что вы загоняетесь. Хотя "эмулятор банкомата" - звучит ооочень сомнительно, да... :unknown:
Не издевайтесь над русским языком, пожалуйста! Ему и так несладко.
gy1610
Специалист
Сообщения: 412
Зарегистрирован: 21 апр 2011, 00:32
Откуда: Грузия, Тбилиси
Благодарил (а): 14 раз
Поблагодарили: 8 раз

Re: Operation Code buffer и FIT таблицы

Непрочитанное сообщение gy1610 »

DimaZP писал(а):Там буфер выглядит так (звездочками отмечены пробелы):
"CD***CBC" - просмотр баланса;
"AD***CBC" - снятие денег;
"AD***BBB"- снятие денег с печатью чека.

В общем, мне непонятно. На коды клавиш не сильно похоже (если брать FDK раскладку банкомата). Нажимались клавиши и с левой стороны монитора и с правой. Не могу понять - что это за буквы. И что за пробелы между ними? Может, знает кто? Как правильно формировать этот буфер?
Для того, чтобы сформировался буфер, есть D - Pre-Set Operation Code Buffer State. В него можно жёстко прописать буквы, а можно их передавать из selection стейта(E или Y). В selection стейте указываем позицию буфера(0-7). И тогда при нажатии FDK клавиши в эту позицию прописывается соответствующая нажатой клавише буква(от A до I). Это удобно, например, для выбора печати чека или для выбора платежа.
Аватара пользователя
magarila
Местный
Сообщения: 59
Зарегистрирован: 29 сен 2011, 20:09
Поблагодарили: 4 раза

Re: Operation Code buffer и FIT таблицы

Непрочитанное сообщение magarila »

Имхо, самый лучший и 100% работающий эмулятор банкомата - это программная эмуляция XFS с мультивендорным софтом сверху (прокэш винкоровский к примеру) - гораздо проще реализовать имитацию поведения устройств, чем ваять тот же сборщик-разборщик NDC сообщений...
А человек, по его словам, обладающий документацией по NDC и не понимающий, как формируется opcode buffer, - как минимум эту документацию не читал. И ответчать ему "RTFM" как минимум глупо, ибо не в коня корм.
booby
Специалист
Сообщения: 405
Зарегистрирован: 21 янв 2013, 07:14
Поблагодарили: 1 раз

Re: Operation Code buffer и FIT таблицы

Непрочитанное сообщение booby »

magarila писал(а):Имхо, самый лучший и 100% работающий эмулятор банкомата - это программная эмуляция XFS с мультивендорным софтом сверху (прокэш винкоровский к примеру) - гораздо проще реализовать имитацию поведения устройств, чем ваять тот же сборщик-разборщик NDC сообщений...
Я так понимаю, ТС пишет эмулятор именно со стороны сети хост-терминал.
Аватара пользователя
Mingun
Друг Банкоматчика
Друг Банкоматчика
Сообщения: 14
Зарегистрирован: 03 окт 2014, 20:32

Re: Operation Code buffer и FIT таблицы

Непрочитанное сообщение Mingun »

magarila писал(а):гораздо проще реализовать имитацию поведения устройств, чем ваять тот же сборщик-разборщик NDC сообщений...
Ну не скажите, я уже имею PEG-грамматику для разбора сообщений от NDC (а также грамматики для DDC и Triton Legacy) -- ничего особо сложного. Фактически, единственная сложность в том, чтобы навесить на парсер действия для сохранения результата разбора во что-то удобное для работы, например, в XML-подобную структуру.

Вот обратная сборка сообщения из такой структуры в бинарное сообщение -- более интересная задача, но тоже в принципе ничего сложного -- у меня на работе используется подобный инструмент. К сожалению, его возможностей недостаточно для разбора NDC/DDC протокола, так что приходится по-старинке, врукопашную :( Хотя я уже думал над идейным продолжением такого инструмента, который будет способен разобрать (и собрать) эти протоколы.
Ответить