安卓(Android):如何读取磁条(信用卡等)数据

25

实际应用程序实际上是一个Web应用程序,但由于我的第一印象是现在没有办法使用普通(Android)Web浏览器来完成这个任务,我想这可能可以通过WebView实现。

是否存在带有Android的API / SDK的读卡器附件?

2个回答

26
我们找到了一个可行的解决方案。MagTek提供了一种与SquareUp使用的设备相似的设备。该设备略大且较重,但他们提供了Android、iOS和Windows Phones的SDK。Android SDK可以在此处找到并下载: http://www.magtek.com/support/software/programming_tools/ 寻找SCRA SDK 您还可以直接联系他们,就像我们公司所做的那样,以便他们为您提供最新的SDK。
更新:
也尝试过idtech的UniMag移动卡阅读器: http://www.idtechproducts.com/products/mobile-readers/112.html 我在一台运行Android 3.1的三星Galaxy Tab 10.1英寸上进行了测试。按照广告所说的运作正常。
更新2: 我们的应用程序现在可以在Android商店中找到(但是对于除了我们的企业客户之外的任何人来说都没有什么用)。本质上,该应用程序是具有WebView的本地封装应用程序,并且使用JavaScript抽象和执行Web应用程序和包装器之间的通信。理论上,只要Web应用程序知道API,任何人都可以使用您的包装器。但是,我不允许发布API或任何特定的实现细节。我想如果有人感兴趣,老好人反编译器将揭示实现细节。

你好Hyangelo,我想知道你是否有那个的原型? - Thet Mon Aye
我没有原型,但unimag和magtek的SDK中包含一个示例应用程序,您可以编译并安装在您的设备上。 - Hyangelo
你的应用程序在安卓商店上有吗?如果有的话,我很想下载并查看它。我也想做同样的事情。 - M Charles
idtechproducts很糟糕。他们要求购买开发工具包,即使是为了开发。 - John Smith
@Hyangelo 我处于类似的情况,也在寻找Reader + SDK。MagTek看起来很有前途,但根据他们的[iOS] SDK,他们并没有提供读取完整信用卡号码的方法,只能获取末尾4位数字。你对此有何经验?在你的项目中能够读取到完整的卡片数据吗?我知道处理这些信息有规定,但我们的意图是将这些数据发送给Stripe进行令牌化处理。 - Arnie Schwarzvogel
个人经验:请注意,uDynamo不能直接“开箱即用”。您可以读取一些信息(例如卡号的最后4位数字、过期日期和姓名),但完整的卡号或发行者自定义数据等内容不可用。为了获得该功能,您必须支付MagTek的服务费以完全解密设备中的原始数据。这在他们的网站或PDF文档中根本没有宣传。加密密钥也是每个设备唯一的,并且在购买时由MagTek提供给原始买家;因此,在eBay上购买时要小心。 - Brian

0

Square(https://squareup.com/)使用可插入耳机插孔的自定义读卡器——因此硬件肯定是可用的。我猜想那一定是蓝牙读卡器。


2
是的,我知道Square,但我不认为他们提供SDK(即使是付费/商业)。我知道他们通过麦克风插孔读取数据,但我不确定解码数据有多难或如何开始。 - Hyangelo
他们获取音频流(PCM),然后进行一些神奇的信号处理 - 可能使用一些傅里叶变换或其他技术。我认为可以在谷歌上找到一些相关信息(Square曾经发表过一些内容)- 这些信息来自于旧的C / S书籍,涉及磁盘驱动器。 - Konstantin Pribluda
是的,我也知道这一点,但我们正在寻找商业SDK,这样我们就不必花时间做你刚才描述的事情了。而且我们刚刚从MagTek那里找到了一个(请参见我的上面的回答)。感谢您的建议。如果由我决定,这将是更有趣的路线。 - Hyangelo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接