如何从付款应用程序向终端发送多个AID?

时间:2018-02-06 15:40:27

标签: android contactless-smartcard emv tlv

我想从我的Android支付应用程序向终端发送多个AID。为此,如何构造select命令的响应消息?

假设我从终端获得00 A4 04 00 0E(14字节数据)00。作为回应,我发送6F23840E(14字节数据)A511BF0C0E610C4F07A00000000310108701019000。我的AID是A0000000031010。如果我尝试连接两个AID,终端会立即取消该事务。我尝试使用以下响应消息进行连接:6F30840E325041592E5359532E4444463031A51EBF0C1B61194F07A00000000310108701024F08A0000000031010018701019000。

我使用TLV Parser检查了TLV。链接:https://www.emvlab.org/tlvutils/?data=6F30840E325041592E5359532E4444463031A51EBF0C1B61194F07A00000000310108701024F08A0000000031010018701019000

您能否建议我如何向终端发送多个AID列表?

2 个答案:

答案 0 :(得分:3)

通常,任何Payment应用程序在此应用程序的SELECT命令响应中仅返回其自己的AID(在标记84中)。这可能是终端在发送多个AID时终止处理的原因。 您似乎想要返回多个VISA AID。 你可以在PSE / PPSE类应用程序的帮助下实现这一目标。在PSE和PPSE中,您可以将多个AID返回到终端,然后终端将进一步发出SELECT命令以选择可用的应用程序。 有关PSE / PPSE或任何应用的响应构造,请参阅EMV第1册。 enter image description here

答案 1 :(得分:-3)

emvco下载EMV书籍1,2,3,4,B,C。这些都是预期要遵守的规范。

检查

  • 12.2.2 PSE的结构,

  • 12.3.2使用PSE

    部分。它已经详细解释了PSE。 PPSE也以同样的方式工作。通过以上文档,这些文档非常精确,我用它们在Android手机上开发NFC终端。