Какой самый простой способ отслеживать данные с простого считывателя USB HID Magnetic Card?
-
29-09-2019 - |
Вопрос
Мне нужно получить отслеживание 1 и отслеживать 2 данные с магнитных карт и отправить их по сети на сервер ожидания. Какой простой способ получить данные трека от считывателя USB HID Magnetic Card?
В случае, если это помогает, у меня есть считыватель магнитной полосы Magtek Mini (часть № 21040140)
Я os Agnostic - решение для Windows, Mac или Linux было бы отличным. Желательно нет .NET, но если это самый простой способ, я пойду на это.
Что вы все думаете?
Спасибо!
Решение
У каждого считывателя карт, который я видел, был эмулятор клавиатуры, поэтому вы проведите карту, и он отправляет символы через буфер клавиатуры. Похоже, это также делает это (документация: http://www.magtek.com/documentation/public/99875206-16.01.pdf)
Страница 14 описывает данные, отправленные после удара, что опять же, довольно стандартное для чтения карт:
TK1 SS] [DATA TK1] [ES] [TK2 SS] [DATA TK2] [ES] [TK3 SS] [DATA TK3] [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
Другие советы
Самый простой способ загрузить файл кабины по этой ссылке и включить его в каталог проектов в папку "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>
Согласно вышеуказанному коду, я добавил фокус на текстовом поле. После проведения текстовых поток, ориентированных на карту, автоматически показывают полную строку данных кредитной карты.