0

这是新事物,我从未做过任何与在线交易或借记卡/信用卡相关的编码。我被告知要研究 EMV(EuroPay Master Visa)卡以在 Android 应用程序中实现它。

到目前为止,我收集了关于

  • APDU
  • 文件结构
  • 发送“APDU 命令”以从卡中获取有用信息。
  • APDU 字段(CLA、INS、P1、P2、Lc、数据、Le)
  • “APDU 响应”从卡发送回读卡器。

所有这些过程都发生在卡和读卡器之间。就我而言,读卡器连接到安卓设备。我可能需要在 android 应用程序中向用户显示卡详细信息(例如:显示卡号的最后 4 位数字)。我的问题是

  1. 如果我想对卡进行身份验证,APDU 命令字段中的可能值是什么?
  2. 如何使用 Java 在读卡器和设备之间进行通信。

PS:我不需要任何代码。我只需要一个简单的解释,一旦我理解了这个概念,我将继续研发。

4

2 回答 2

1

您要求的是 EMV 课程,这对于 SO 问题来说很多。

正如@kushal 所述,您必须阅读EMV 规范,它们包含大量命令示例,并将描述完成事务所需的命令序列。

但是通过这样做,您想要实现的是编写一个 EMV 内核,如此SO question中所述,这既昂贵又耗时。算上这几年的发展,不考虑银行集成部分......如果你想要实现的只是处理交易,你想做的是购买一个EMV内核(例如:来自level2kernel, verifone、Ingenico 等)。

您可以在此处查看Interac Flash 事务(非接触式 EMV)的示例,它可以让您大致了解协议的复杂性。

于 2015-10-06T08:17:18.360 回答
0

EMV 卡规范首先你要了解 EMV 4.2

然后你必须在 UsbManager 类的帮助下与阅读器与安卓设备进行通信。然后将特定的 APDU 发送到卡,然后卡提供以下信息。

于 2015-10-06T07:23:05.327 回答