+7 499 990-10-21

[РЕШЕНО]Скидка по карте с магнитной полосой

[РЕШЕНО]Скидка по карте с магнитной полосой

Сообщение ksaa » 10 июл 2019, 12:32

Добрый день!

В наличии есть карты с магнитной полосой, клавиатуры Gigatek kb840 с ридером с клавиатурным интерфейсом, и желание использовать данные карты в качестве скидочных.


Вот таким образом данная карта читается в обычном текстовом редакторе
0000000000: 3B 34 37 34 32 35 3F 0A │ ;47425?◙

Соответственно ";" - префикс, 47425 - значимый номер и "?"+#CR - суффикс (несмотря на то, что в редакторе 0А - определяется именно 13)

Настроил у ридера префиксы 59,00 и суффиксы 63,13. В тесте считывается все верно.

Завожу в goods.txt следующее!
4;10%;10% Тест карты;47425;0;10;1;47425;1;0;1;;;;0;0;

и... ноль эффекта. Такая же скидка через сканер штрих кода прекрасно проходит.

Вопрос.. Чего не хватает для нормальной работы? Немного смущает "c_key = 4128 " после считывания цифр номера


------reg key press------
c_key = 59
c_ascii = 59
c_state = 0
c_text = ;
c_text len = 1
------------
KeyboardDevice::FindCode(code = 59, status = 0)
------reg key press------
c_key = 52
c_ascii = 52
c_state = 0
c_text = 4
c_text len = 1
------------
KeyboardDevice::FindCode(code = 52, status = 2)
------reg key press------
c_key = 55
c_ascii = 55
c_state = 0
c_text = 7
c_text len = 1
------------
KeyboardDevice::FindCode(code = 55, status = 2)
------reg key press------
c_key = 52
c_ascii = 52
c_state = 0
c_text = 4
c_text len = 1
------------
KeyboardDevice::FindCode(code = 54, status = 2)
------reg key press------
c_key = 50
c_ascii = 50
c_state = 0
c_text = 2
c_text len = 1
------------
KeyboardDevice::FindCode(code = 50, status = 2)
------reg key press------
c_key = 53
c_ascii = 53
c_state = 0
c_text = 5
c_text len = 1
------------
KeyboardDevice::FindCode(code = 53, status = 2)
------reg key press------
c_key = 4128
c_ascii = 0
c_state = 0
c_text =
c_text len = 0
------------
KeyboardDevice::FindCode(code = 4128, status = 2)
------reg key press------
c_key = 63
c_ascii = 63
c_state = 256
c_text = ?
c_text len = 1
------------
KeyboardDevice::FindCode(code = 63, status = 2)
------reg key press------
c_key = 4100
c_ascii = 13
c_state = 0
c_text =

c_text len = 1
------------
KeyboardDevice::FindCode(code = 4100, status = 3)
ksaa
 
Постов: 60
Зарегистрирован: 04 июн 2019, 09:27

Re: Скидка по карте с магнитной полосой

Сообщение Alexander » 10 июл 2019, 15:30

; не может быть префиксом, т.к. это спецсимвол разметки дорожек (бывают же ридеры на 1-2-3 дорожки). Надо добавить общий префикс. Мы традиционно настраиваем "ST" .... "EN".
Alexander
 
Постов: 4992
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Скидка по карте с магнитной полосой

Сообщение ksaa » 11 июл 2019, 15:12

То есть, чтобы данные карты нормально работали, их требуется перекодировать, добавив какой то префикс?
ksaa
 
Постов: 60
Зарегистрирован: 04 июн 2019, 09:27

Re: Скидка по карте с магнитной полосой

Сообщение Alexander » 11 июл 2019, 15:21

Не карты, а ридер
Alexander
 
Постов: 4992
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Скидка по карте с магнитной полосой

Сообщение ksaa » 11 июл 2019, 16:07

Спасибо за наводку! Запустил.
ksaa
 
Постов: 60
Зарегистрирован: 04 июн 2019, 09:27


Вернуться в Техподдержка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


cron

Кто сейчас на конференции

Сейчас посетителей на конференции: 11, из них зарегистрированных: 0, скрытых: 0 и гостей: 11 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (180) здесь было 29 апр 2024, 13:15

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11