问题标签 [magnetic-cards]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1822 浏览

.net - 在 Visual Basic 2010 中使用磁卡读卡器

嗨,我正在尝试制作一个程序,该程序可以从磁卡阅读器中获取信息,以填写诸如 ID 和/或密码之类的文本框。或创建一个新帐户。我使用的是 MagTek SureSwipe 读卡器 21040140?我怎样才能做到这一点????

0 投票
2 回答
2819 浏览

java - 如何解析 Java Swing 文本框中的磁条卡数据输入?

我正在尝试编写一个应用程序,该应用程序将使用使用扫描条形码找到的或嵌入磁条卡数据中的 id 密钥的数据来搜索和检索用户的个人资料。后一个是让我伤心的。在搜索用户配置文件之前,需要解析磁条数据。

我的问题,有没有办法捕获扫描到文本框中的文本并在它显示在文本框中之前对其进行解析?

我的阅读器/扫描仪是键盘仿真类型,因此就好像在条带上编码的每个字符都在文本框中输入。我想一个解决方案(但它是最好的吗?)将拦截每个击键(由磁条阅读器模拟),将它们存储在缓冲区中并显示一个空字符,直到读取字符串结束。一旦读取了卡片数据的结尾,我就可以解析并显示 id 的 id 部分。问题是......如果它们作为单独的字符按键输入,你怎么知道它是卡片数据字符串的结尾?

0 投票
1 回答
883 浏览

api - 将磁条信息从身份证发送到 Web 服务和 API 以进行处理

也许有人可以在这个问题上启发我,我正在研究普通信用卡机器(他们应该能够)是否可以读取身份证(任何带有磁条的卡)。我想知道这些卡在发布到某个 Web 服务/网络时是如何编码的(它们是否对 IP 网关进行编码?)......以及是否有 api 或一些文献来处理磁条信息。

0 投票
2 回答
2217 浏览

java - Java:需要在 GUI 中获取输入行,仅在控制台中工作

我和我的朋友们用 Java 编写了一个带有 GUI 的程序,专为没有键盘/鼠标的触摸屏终端而设计。一切都发生在 GUI 中,大部分输入都是按钮按下。我们想连接一个磁卡读卡器(在键盘模式下)并从卡中读取,然后根据其中的数据执行处理。

我编写了一个在控制台中工作的类,但是当通过 GUI 运行时,它只是挂起,直到我 alt+tab 并在 IDE(Eclipse 的)控制台内单击并刷卡。我正在寻找的是一种无需离开 GUI 即可获得此输入的方法。

MCR 的工作方式就像您只需在键盘上键入卡信息一样——它会在您可以键入同一行、txt 文档、控制台等任何位置的任何地方发送包含两个数据轨道的行。

相关代码如下:

在 GUI 中,代码很简单:

我想也许 InputStream 会起作用,但我从来没有真正和他们一起工作过。我用谷歌搜索并找到了这个 线程:我尝试整合关于 IOUtils 的建议,如下:

我不知道我这样做是否正确,但是在控制台中(尚未在 GUI 中尝试过),它现在显示“扫描卡”并且永远不会打印出 raw_card_data 或执行其他任何操作。“closeQuietly”我从这里得到:

...但同样,我不知道我是否做得对。也从未使用过 apache IOUtils。

所以我被困住了,我期待着你们。如何在不离开 GUI 的情况下获取此卡数据?

重要提示:卡片数据中有一个可变的空格数(我们需要保留),所以像 Scanner.next() 这样的任何东西都不起作用。读卡器设置为发送一行,其中两个轨道由分隔符分隔,然后是回车,因此 .nextLine() 有效。卡数据也是字节/字符的变量#。

另外:在第一个代码块中, System.out.println 在 do while 循环之前 raw_card_data = read.nextLine() 实际上在(我把它省略了,因为我觉得它不相关,但现在我很好奇为什么它正在这样做)。当 println 更改为 setText() 以在 GUI 中显示到 JTextArea 时,它直到在控制台中输入卡片数据之后才会显示,即使它发生在 do while 之前并且应该在它之前执行。没看懂,呵呵。

0 投票
1 回答
3945 浏览

delphi - 发送打印机特定命令

我在这里有一个问题,我正在尝试将磁条数据编码到 Fargo DTC400 打印机,在规范中它说我需要从示例记事本、写字板等发送以下字符串命令:

此示例对音轨 1 中的字符串以及音轨 2 和 3 中的数字 123456789 进行编码。这适用于 Notepad.exe。

编辑: 我使用的当前德尔福代码适用于另一台打印机:

当我试图从我自己的应用程序中编码这个字符串时,我遇到了麻烦,似乎打印机完全忽略了我的命令,当我选择打印到文件时,我可以读取二进制数据并在打印文件中看到我的字符串,当我尝试从示例notepad.exe打印到文件我只得到rubish二进制数据并且根本找不到我的字符串......

所以我想知道记事本如何发送我不发送的这个字符串命令?

希望有人能对此有所了解,因为我一直渴望在我的应用程序中实现对 Fargo 的支持很长一段时间。

谢谢

更新。 下面的代码是古老的,但它可以完成工作,但是有没有另一种方法可以将它与上面的 Passthrough 代码一起使用?

0 投票
3 回答
3670 浏览

c# - 将 KeyDown 事件 (Keys) 连接到一个 C# (wpf) 字符串

我有一个使用键盘输入发送数据的磁卡读卡器。我正在使用获取此对象的 KeyDown 事件(C# WPF):

我想把我得到的钥匙变成一个字符串。我试图 concat e.Key.ToString(),但这不起作用。我的输入有很多数字和符号(例如 ; ? = 等),并且 e.Key.ToString() 东西不起作用(它给我 D3 一个数字,而 SHIFT 或 CTRL + 另一个键标志)。

我只想要字符串,所以当我使用例如 Console.WriteLine 我会得到类似的东西

并不是

我尝试使用 KeyConverter,但我无法弄清楚这一点。

有人可以帮帮我吗?

我当前的事件处理程序(不能正常工作)是:

其中 TypedText 是我想要将键连接到的字符串。上面解释了输出结果。


我自己解决了。这是答案。下面的 GetCharFromKey函数获取一个密钥(您应该发送 e.Key)并返回一个字符:

0 投票
2 回答
7070 浏览

javascript - 是否有用于读取驾驶执照的 JavaScript(或其他)库?

我正在开发一个 JavaScript 项目,该项目涉及在键盘仿真模式下从 USB 磁条阅读器读取信用卡和驾驶执照。事实证明,让信用卡工作非常容易,因为它们都采用相同的格式。然而,很快就发现驾驶执照要困难得多,因为即使在单个州 (CA) 内,格式也因一张卡而异。

无论如何,我们的目标是从刷驾照(使用磁条阅读器)中获取原始数据并从中提取数字,从而为尽可能多的美国州(全部 50 个州)生成正确的数字。是惊人的)。值得一提的是,我并不特别关心验证,至少目前不是。

有没有其他人已经这样做了,并将它们全部打包在我可以使用的库(免费或商业)中?那将是真棒。

我还应该指出,虽然我很想看到 JavaScript 解决方案,但实际上我愿意研究任何用任何语言编写的解决方案。

0 投票
1 回答
1657 浏览

magnetic-cards - Maestro 信用卡:从 MSR 转储中提取信息(任何语言)

我们有一个系统,允许您在 MSR 上扫描您的信用卡,然后从转储中提取所需的字段,例如 name/cc/exp。最近我们不得不为此添加全球化信用卡。对于提供的几乎所有卡片,我仍然能够提取信息,因为它们似乎都遵循一个标准。然而,一个例外是 Maestro 卡。格式完全不同,因为我既没有人验证卡上的实际数字与转储数据,也无法访问任何其他转储,我很难找出这些数据的正确格式。我还做了一些谷歌搜索,但从 MSR 转储中提取数据的运气不佳。

与几乎所有其他卡片不同,第一道不以“%B”开头,第二道不以“;”开头。两首曲目似乎都以“?”结尾 (基于分析整个转储,而不是跟踪)。Track 3 确实似乎是空的,这是正常的。

整个转储似乎缺少任何名称数据,并且基本上采用以下格式:

请注意,除了单个 #,我有 3 它是可变长度的。

同样,我只能访问一个转储,出于显而易见的原因,我无法在此处发布。

如果有人有任何语言的示例代码,或者可以将我链接到一些帮助,我将非常感激。

提前致谢,

安东尼

0 投票
1 回答
1201 浏览

c# - 使用 Windows 键盘挂钩时,在键盘状态下错误地检测到 SHIFT 键

我正在使用磁卡读卡器。

当插入 USB 端口并打开记事本时,我得到以下正确结果:

当我使用调用 Windows API 函数的键盘挂钩(用 C# 编写)时,我得到不一致的结果,例如:

如您所见,这里的问题是第一个 '90' 变成了 '()',就好像在按下 '9' 和 '0' 键时按下了 SHIFT。

键盘钩子代码来自这里(Keyboard.cs): https ://nappybar.googlecode.com/svn/Keyboard.cs ,它的设置方式如下:

如上所述,我将其与读卡器一起使用时得到的结果不一致。似乎 (GetKeyboardState) 中的键盘状态并不完全正确。主要是,它有时会说 SHIFT 在不应该按下时按下,反之亦然。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms646299(v=vs.85).aspx

有谁知道为什么会发生这种情况以及为什么它在记事本中正常工作?更重要的是,我如何修复/解决它?谢谢你。

0 投票
0 回答
1313 浏览

windows - 对磁卡阅读器进行编程以读取员工编号

我正在尝试对磁卡读卡器进行编程,但我不知道从哪里开始。我做了研究,但似乎没有太多。

  1. 我可以将读卡器连接到计算机并通过 Eclipse 之类的 IDE 对其进行编程吗?
  2. 它会是什么语言?
  3. 如果可能的话,如何在 Windows 7 上查看设备(如拇指驱动器)?

我有我想要的文本格式。我只是不明白读者编程的过程。

非常感谢你的帮助。