Форум по программам и оборудованию > > >

HandleMCR: Неверная карта (Дисконтная карта ',,' не обслуживается)

16.12.2018 0:27


26.06.2016 17:28
Alexei
 
При прокатывании ДК с магнитной полосой через ридер появляется окно с надписью "Неверная карта". Если сначала нажать кнопку "Скидка" и в появившемся окне запроса номера карты прокатать карту через ридер, то появляется окно с надписью "Дисконтная карта ',,' не обслуживается".
Такое происходит не на всех картах. Меня смутил номер карты ',,'. Включил расширенный лог для мониторинга клавиатуры в ukm.ini:
Код:
UKM_OPTIONS='--log-add=ckeyboardportstandard'
В логах:
Код:
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r65
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r60
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r42
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r49
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r44
15:19:14: 0x00004000: WARNING: debug#/usr/local/storage/home/ukm/build-br-71-2016_06_20_17_43_54/ukm/libukm/ccontext_default.cpp(4051) HandleMCR: Неверная карта
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r65
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r60
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r42
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r48
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r30
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r31
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r35
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r03
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r03
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r09
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r08
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r09
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r0f
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r0c
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r44

Красным цветом выделено то, что соответствует номеру карты: 0000000303989 (похоже, что r40 - это 0).
Если прокатать карту через ридер, подключенный в разъем клавиатуры на компе, то выглядит все правильно ;0000000303989? (да и в УКМ2 работает).
На картах, которые работают нормально, в логах отсутствует первая часть r65 r60 r42 r49 r44 (до WARNING ... HandleMCR: Неверная карта)
Похоже, что УКМ рассматривает r44 (выделено зеленым цветом) как конец данных и пытается получить номер ДК. Пробовал в шаблоне менять номера дорожек на 1 и 3 с соответствующими префиксами, но это ничего не дало. Менял шаблон так, что после символа ';' все остальное - номер карты, но все равно получал окно "Дисконтная карта ',,' не обслуживается". Подозреваю, что карта криво намагничена.
Может быть, как-то можно сделать так, чтобы r44 был частью префикса в шаблоне?
27.06.2016 03:18
whitewizard
 
Шаблон покажи
27.06.2016 09:07
Alexei
 
Скриншот
Нажмите на изображение для увеличения
Название: template.png
Просмотров: 122
Размер:	31.4 Кб
ID:	7548
Шаблон: ;<длина от 4 символов>?<длина от 0 символов>
Номер карты: $2
27.06.2016 11:12
whitewizard
 
1. Если карта магнитная, то зачем включена клавиатура в шаблоне?
2. ;<длина карты>?<длина от 1 символа>
27.06.2016 11:58
Alexei
 
Цитата:
whitewizard 1. Если карта магнитная, то зачем включена клавиатура в шаблоне?
2. ;<длина карты>?<длина от 1 символа>
1. Убрал галки с клавиатуры и сканера, оставил только вторую дорожку.
2. Сделал так.
По-прежнему "Неверная карта".
27.06.2016 12:03
winmasta
 
у меня в шаблоне Номер карты - ;$0?, попробуйте по аналогии, например ;$2? или вообще шаблон переделать
27.06.2016 12:04
whitewizard
 
Поставь $0 вместо $2 и посмотри, что он вообще читает
27.06.2016 12:04
winmasta
 
Картинка для наглядности. Записано на магнитной полосе ;999xxx999? или ;999xxxx999?
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 118
Размер:	261.4 Кб
ID:	7549  
27.06.2016 12:56
Alexei
 
Цитата:
whitewizard Поставь $0 вместо $2 и посмотри, что он вообще читает
Получается, что читает ',,' (две запятые)
Если провести "хорошей" картой, то читает ',;0000000319706?>,'.
27.06.2016 13:30
whitewizard
 
На картах вообще ничего не записано на второй дорожке? Или что?

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.