2015-10-06 172 views
0

这是新东西,我从来没有做过任何与在线交易或借记卡/信用卡相关的编码。我被告知要研究EMV(EuroPay Master Visa)卡以在Android应用程序中实施它。读取和写入EMV卡

到目前为止,我已经收集了信息关于

  • APDU
  • 文件结构
  • “APDU命令” 发送到得到卡有用的信息。
  • APDU字段(CLA,INS,P1,P2,Lc,Data,Le)
  • “APDU响应”从卡发送回读卡器。

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

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

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

+0

为什么我的问题被拒绝投票? :/ – Darsh

回答

1

你所要求的是一个EMV课程,这对于一个SO问题来说很重要。

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

但是通过这样做,你想要实现的是编写一个EMV内核,这个代价高且耗时,如SO question所述。为此计数几年的开发,而不考虑银行集成部分......如果您想实现的只是处理事务,您想要做的就是购买EMV内核(例如:从level2kernel,验证,Ingenico等)。

您可以看一下Interac Flash事务(非接触式EMV)here的示例,它会给您一个协议复杂性的概述。

0

EMV Card Specification首先,你必须了解EMV 4.2

,那么你必须通过UsbManager类的帮助下,读者的Android设备进行通信。然后将特定的APDU发送给卡,然后卡给出以下信息。