如何使用 APDU 命令从 PoS 终端读取 MCC 代码

Posted

技术标签:

【中文标题】如何使用 APDU 命令从 PoS 终端读取 MCC 代码【英文标题】:How to read the MCC code from the PoS-terminal using APDU commands 【发布时间】:2019-10-04 08:56:00 【问题描述】:

我正在尝试在 android 手机上实现 HostApduService,我需要从 PoS 终端读取 MCC 代码

我正在终端的 SELECT AID 上发送带有下一个标签的响应: TTQ-9F6604 金额 - 9F0206 金额2 - 9F0306 国家代码 - 9F1A02 电视录像机 - 9505 货币 - 5F2A02 日期 - 9A03 交易类型 - 9C01 中冶 - 9F1502 随机数 - 9F3704

RAW 请求 6F348407A0000000031010A5299F381B9F66049F02069F03069F1A0295055F2A029A039C019F15029F3704BF0C089F5A0560084006439000

原始响应 80A8000025832334A04000000000004677000000000000080400000000000980191003000000E0AFD09500

如您所见,终端发送 MCC 为 0000 是错误的

这有什么问题?

【问题讨论】:

【参考方案1】:

如果终端中不存在 PDOL 中请求的数据元素,则终端将发送十六进制零来代替预期长度的请求数据。

【讨论】:

我明白了,但我不明白没有配置 MCC 代码的终端是如何工作的。 除非你有非常具体的要求(你能解释一下吗),我认为你不需要在终端维护 MCC。在大多数情况下,收单方有信息就足够了。【参考方案2】:

Merchant Category Code (MCC) 由Terminal 管理,请咨询您的终端供应商以配置 MCC。可以是离线工具更新,也可以是OTA配置更新。

【讨论】:

我尝试了几个独立的终端,它们在咖啡馆、电影院和商店都可以使用。没有人回答我的 MCC 请求。我觉得我做错了什么。无论如何感谢您的回答 @Vitaliy 他们(商家)不会知道,POS 已经设置好了,他们只知道如何使用它。我提到的是terminal vendor,而不是merchant

以上是关于如何使用 APDU 命令从 PoS 终端读取 MCC 代码的主要内容,如果未能解决你的问题,请参考以下文章

使用 READ BINARY 命令 APDU 从智能卡读取大型二进制文件 (>32k)

发送 APDU 命令以读取被动标签?

APDU 命令读取二进制命令与文件结构不兼容

APDU 命令读取 SLE4432/42 卡

无法使用 APDU 命令验证智能卡 PIN

APDU读取文件java卡程序