如何获取 EMV 标签 9F19 令牌请求者 ID?

问题描述

我想识别具体的 NFC 类型 - 在 EMV 非接触式交易中使用 Apple、Google、Samsung Pay 等。 标签 0x9f6e 帮助我区分物理卡和 NFC,但不是确切的支付系统。 有很多关于标签9F19及其值的信息:

MasterCard:
50110030273 – APPLE_PAY
50120834693 – ANDROID_PAY
50139059239 – SAMSUNG_PAY

但是我没有发现如何获得这个标签 9F19。是 EMV 还是 ISO 7816 命令?或者什么东西?请帮我。或者说另一种获取所需信息的方式。

我尝试在所有范围内使用 READ RECORD 找到 9f19 但没有成功:

for sfi = 1; sfi <= 31; sfi++ {

        for rec := 1; rec <= 16; rec++ {

            apdu.Write([]byte{0x00,0xB2,byte(rec),(sfi << 3) | 4,0x00})
            cmd = smartcard.CommandAPDU(apdu.Bytes())
            if !cmd.IsValid() {
                panic("not valid apdu")
            }
            response.RAPDU,err = card.TransmitAPDU(cmd)
            if err != nil {
                panic(err)
            }
            if response.RAPDU.SW() != 0x9000 {
                fmt.Println("No data for record",rec)
                apdu.Reset()
                continue
            }
            tlvTag,err = bertlv.Find(0x9f19,response.RAPDU.Data())
            if err != nil {
                apdu.Reset()
                continue
            }
            fmt.Println("9F19 answer found at record ",rec)
            response.printResult()
            break
        }
    }

解决方法

标签 0x9F19 令牌请求者 ID读取记录 回复中返回。

您需要选择应用程序,然后根据非接触式支付规范发送 GPO 命令,并希望收到标签 0x94 应用程序文件定位器 (AFL >) 和短文件标识符列表 (SFI)。

然后您需要读取记录并解析回复标签。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...