6

磁気カードからトラック1とトラック2のデータを取得し、ネットワーク経由で待機中のサーバーに送信する必要があります。USB HID磁気カードリーダーからトラックデータを取得する簡単な方法は何ですか?

それが役立つ場合は、MAGTEKミニスワイプ磁気ストリップリーダー(部品番号21040140)を持っています

私はOSにとらわれません。Windows、Mac、またはLinux向けのソリューションがあれば素晴らしいでしょう。できれば.NETは使用しないでください。ただし、それが最も簡単な方法である場合は、.NETを使用します。

みなさんはどう思いますか?

ありがとう!

4

2 に答える 2

4

私が見たすべてのカードリーダーにはキーボードエミュレーターが搭載されているので、カードをスワイプすると、キーボードバッファーを介して文字が送信されます。これもそうしているように見えます(ドキュメント: 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]

したがって、トラック1のデータはトラック2のデータ%で始まり、?
トラック2のデータ;で終わります。?

ただし、質問にクレジットカードのタグが付けられていることに気付いたので、ネットワーク(内部ネットワークでも)を介して生のカードデータを送信した場合の結果を確認する価値があります。ペイメントカード業界のデータセキュリティ標準(PCI-DSS)をご覧ください:https ://www.pcisecuritystandards.org/security_standards/pci_dss.shtml


VBソースに付属しているその特定のリーダー用のデモプログラムがあります。
http://www.magtek.com/support/software/demo_programs/usb_swipe_insert.asp

于 2010-10-12T18:26:58.273 に答える
0

このリンクから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>

上記のコードに従って、テキストボックスにフォーカスを追加しました。カードに焦点を合わせたテキストボックスをスワイプすると、完全なクレジットカードデータ文字列が自動的に表示されます。

于 2013-01-12T12:21:15.237 に答える