读写EMV卡

时间:2015-10-06 07:01:37

标签: java android apdu emv

这是新的东西,我从未做过与在线交易或借记卡/信用卡相关的任何编码。我被告知要学习EMV(EuroPay Master Visa)卡以在Android App中实现它。

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

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

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

  1. 如果我想验证卡,APDU命令字段中的可能值是什么?
  2. 如何使用Java在读卡器和设备之间进行通信。
  3. PS:我不需要任何代码。我只需要一个简单的解释,一旦我理解了这个概念,我将继续研发。

2 个答案:

答案 0 :(得分:1)

What you are asking for is an EMV course, that's a lot for a SO question.

As outlined by @kushal, you'll have to go through the EMV Specifications, they contain a lot of command samples, and will describe the sequence of commands required to complete a transaction.

But by doing so, what you're trying to achieve is to write an EMV Kernel, which is costly and time consuming, as outlined in this SO question. Count a couple of years of development for this, not taking into account the bank integration part... If what you want to achieve is just to process transactions, what you want to do is to buy an EMV kernel (ex : from level2kernel, verifone, Ingenico, etc.).

You can take a look to an example of a an Interac Flash transaction (contactless EMV) here, that will give you an overview of the complexity of the protocol.

答案 1 :(得分:0)

EMV Card Specification首先,您已了解EMV 4.2

然后你必须在UsbManager Class的帮助下与读者联系到android设备。然后将特定的APDU发送到卡,然后卡提供以下信息。