在 Android 上通过 NFC 读取 Visa payWave 信用卡详细信息

Posted

技术标签:

【中文标题】在 Android 上通过 NFC 读取 Visa payWave 信用卡详细信息【英文标题】:Reading Visa payWave Credit Card Details via NFC on Android 【发布时间】:2012-03-27 17:45:50 【问题描述】:

是否可以在三星 Galaxy Nexus 上通过 NFC 读取 Visa payWave 卡的信用卡详细信息(姓名、号码、有效期)?那么其他支持 NFC 的信用卡呢?

如果不可能,有没有办法从卡中检索唯一 ID?

此外,任何参考资料或示例代码都会有很大帮助。

【问题讨论】:

【参考方案1】:

Triangle.io 也有一个 API,允许您免费执行此操作,您可以将其集成到您自己的应用程序中。您可以从Google Play 下载示例应用程序。

免责声明:我为 triangle.io 工作

【讨论】:

当然使用起来很安全 :) 我们使用 RSA 2048 位加密,每个应用程序的密钥都是唯一的,并且只提供加密信息。我们的客户使用的典型设置是通过 HTTPS 将加密信息发送到他们的后端,并在那里解密数据以进行进一步处理。这样,手机内部就不会传输明文数据。 您的 triangle.io 初始化程序突然在我的项目中开始失败。太烂了 @Bagzerg,没有停机时间。您是否遇到了连接问题,或者您使用的是过期的试用密钥?请使用contact@triangle.io与我们联系,以便我们查看。 我目前正在使用 Triangle.io,非常棒!【参考方案2】:

至少有 2 个 android 应用已经可以做到这一点:Squareless 和 Electronic Pickpocket RFID.

一些参考资料:

说明如何操作:http://blog.saush.com/2006/09/08/getting-information-from-an-emv-chip-card/ Java 代码:http://code.google.com/p/javaemvreader/ 这也可能有帮助:http://cardpeek.googlecode.com/svn-history/r23/trunk/dot_cardpeek_dir/scripts/emv.lua 另请参阅此问题:How do I read the PAN from an EMV SmartCard from Java

【讨论】:

这些是了解如何在 Java 中读取 EMV 数据的重要资源,但它们似乎基于 USB/串行卡阅读器。如何通过 NFC API 在 Android 上读取 EMV 数据? (很明显,如果上面2个app能做到的话,是有可能的。) 上面最后一个link 中selectApplication() 的翻译示例:byte[] selectApplication(IsoDep tag) throws IOException byte[] command = new byte[]0x00, 0xA4, 0x04, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x04; return tag.transceive(command); tag 你会从 NFC 获得 Intent: IsoDep tag = IsoDep.get(getIntent().getParcelableExtra(NfcAdapter.EXTRA_TAG); 谢谢。我实际上自己弄清楚了这一点,但我不确定,所以感谢您对此的确认。最后一些问题:ISO14443 设备使用的 APDU 命令/响应是否与 ISO7816 设备相同?除了从 ISO 购买文档之外,是否有关于 ISO14443 APDU 命令的良好参考? 并非所有 ISO 14443-4 设备都使用 ISO 7816-4 APDU,但有不少设备使用(例如支付卡)。

以上是关于在 Android 上通过 NFC 读取 Visa payWave 信用卡详细信息的主要内容,如果未能解决你的问题,请参考以下文章

在android平板中如何进行NFC通信,就是通过rfid读卡器连接到平板的USB后,读取的内容显示到平板上

在 Android 上通过 NFC 获取信用卡信息

NFC阅读器没有在android中连续读取NFC标签

通过 NFC 部署 iPhone/Android 应用程序

android的NFC

从 NFC 阅读器直接读取到桌面 Web 应用程序?