Какой самый простой способ получить данные трека с простого USB HID считывателя магнитных карт? - PullRequest
6 голосов
/ 12 октября 2010

Мне нужно получить данные треков 1 и 2 с магнитных карт и отправить их по сети на ожидающий сервер. Какой простой способ получить данные трека с устройства чтения магнитных карт USB HID?

Если это поможет, у меня есть мини-считыватель магнитных полос MAGTEK (номер по каталогу 21040140)

Я независим от ОС - было бы неплохо решение для Windows, Mac или Linux. Предпочтительно нет .NET, но если это самый простой способ, я пойду на это.

Что вы все думаете?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 12 октября 2010

У каждого считывателя карт, который я видел, был эмулятор клавиатуры, поэтому вы проводите картой, и она отправляет символы через буфер клавиатуры.Похоже, что этот также делает это (документация: http://www.magtek.com/documentation/public/99875206-16.01.pdf)

Страница 14 описывает данные, отправленные после считывания, что опять-таки довольно стандартно для считывателей карт:
[Tk1 SS] [Tk1 Data][ES] [Tk2 SS] [Tk2 Data] [ES] [Tk3 SS] [Tk3 Data] [ES] [CR]

Таким образом, данные вашей первой дорожки начинаются с % и заканчиваются ?
Отслеживание двух данных начинается с ; и заканчивается ?

Я заметил, что вопрос был помечен как кредитная карта, поэтому стоит убедиться, что вы знаете о последствиях отправки необработанной карты.данные в сети (даже во внутренней сети). Ознакомьтесь с отраслевыми стандартами безопасности данных платежных карт (PCI-DSS): https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml


Для этого конкретного ридера существует демонстрационная программа, котораяпоставляется с источником VB.
http://www.magtek.com/support/software/demo_programs/usb_swipe_insert.asp

0 голосов
/ 12 января 2013

Самый простой способ скачать файл Cab по этой ссылке и включить его в каталог проекта в папке "magtek".

http://www.magtek.com/support/software/demo_programs/card/usb_hid_swipe_readers/read_parse.asp

Добавить этот код в файл aspx после тега(смените cab-файл src согласно)

   <object id="USBHID" classid="CLSID:22571E97-956A-4CDD-AF8D-AE9C26597683" codebase="magtek/99510060.CAB#version=1,13,0,2">
    </object>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
        $(function () {
$('#txtNameFirst').focus();  // Focus on a textbox is required
 USBHID.PortOpen = true;
            if (USBHID.PortOpen == false) {
                $('#<%= lblStatus.ClientID %>').text('Could not open MagTek reader');

            }
            else {
                $('#<%= lblStatus.ClientID %>').text('Please Swipe a card');
            }
    });
 $("#txtNameFirst").bind('change', function () {

var CCData = $("#txtNameFirst").val();  // CCData will contain the complete credit card data in a string.

alert(CCData);
$("#txtNameFirst").val(CCData.split('^')[1].split(' ')[0]);
                        $("#txtNameLast").val(CCData.split('^')[1].split(' ')[1]);
                        $("#txtCCNo").val(CCData.split('^')[0].substring(2, 18));
                        //alert('  Split1: ' + CCData.split('^')[1] + '  Split2: ' + CCData.split('^')[2]);
                        //alert('parsing good!');
                        $("#txtExpiDt_RoutingNo").val(CCData.split('^')[2].substring(2, 4) + '/' + CCData.split('^')[2].substring(0, 2));
});
    </script>

Согласно приведенному выше коду, я добавил фокус на текстовое поле.После считывания текстовых полей, ориентированных на карту, автоматически отображается полная строка данных кредитной карты.

...