Wincor - PROCASH/DDC-EMULATION=2.1/01
Хочу сделать изменения приоритета метода считывания карты в момент когда она была вставлена в кардридер, а именно
чтоб всегда проверялся в первой очереди наличия чипа на карте - а именно если при обнаружения чипа банкомат должен идти сразу на сейт инициализации без проверки трэка 2 на магнитке. В случае если чип не обнаружен идёт переход на попытку считывать магнитку .
В документации(ProCashDDC V1.400 ProConsultDDC V1.200 User Guide_07-2006.pdf) я нашёл следующее (стр.64) :
Card Read State (A) – state 000
Read condition 1
Entry number: 5
Valid range: 001-015
Description: This is one of the three entries (used with entry no. 6 and 7) that
tell the terminal which card track(s) must be read. This is the first
read condition. If this condition cannot be met, read condition 2
is used next. Refer to table “Card read state entries” for the
definition of the card read conditions.
Read condition 2
Entry number: 6
Valid range: 001-015
Description: This is one of the three entries (used with entry no. 5 and 7) that
tell the terminal which card track(s) must be read. This is the
second read condition used. This one is used if read condition
1 cannot be done. If read condition 2 cannot be met, read
condition 3 is used. Refer to table “Card read state entries” for
the definition of the card read conditions.
Read condition 3
Entry number: 7
Valid range: 001-015
Description: This is one of the three entries (used with entry no. 5 and 6) that
tell the terminal which card track(s) must be read. If neither read
condition 1 or read condition 2 can be met, this read condition
is used. Refer to table “Card read state entries” for the definition
of the card read conditions.
Проблема в том что на самом деле игнорируются все приоритеты, описанные в документации, на пример у меня в реестре в стейте «000»
следующее STEP_PARAM :
[HKEY_LOCAL_MACHINE\SOFTWARE\Wincor Nixdorf\ProTopas\CurrentVersion\LYNXCI\STATE\000]
"STEP_PARAM"="010950011008008002001950"
"STEP_FUNC"="DC_CARD_READ"
Если смотреть по документации в функции по данному параметру "010950011008008006001950" кардридер должен при первой попытки считывать чип, если всё ОК идти на след. стейт 950, если нет – повторно попытаться считывать чип так как у нас там тоже «008», если и в этот раз не удалось считывать чип, перейти на 3-ю попытку «002» считывать 2-ой track с магнитке – это по документации должно так быть. На самом же деле игнорируются первые 2 попытке и кардридер сразу же идёт по магнитке«002». Почему так происходит ?
Вторая проблема :
В этой же доке нашёл что можно прочитать карточку с помощи стейта «Т» :
Card Read State (T)
You can use this state instead of the Card Read state (A), if you want to initiate
PIN entry be the card holder at the same time as the terminal reads the card.
This state performs the same functions as the card read state but it can be used
if applications have no 000 state. See also section “Card Read State (A)”.
Тут вообще полный игнор самого сейта Т – когда заливаю в реестр этот стейт, возникает синий экран смерти и банкомат
перезагружается :
[HKEY_LOCAL_MACHINE\SOFTWARE\Wincor Nixdorf\ProTopas\CurrentVersion\LYNXCI\STATE\000]
"STEP_FUNC"="DDC_CARD_READ_T"
"STEP_PARAM"="024951951951951018001951"
Такое впечатление что понятие "DDC_CARD_READ_T" для Protopas-a не существует.
У кого какие идеи ?