EMV非接交易区分:实体芯片卡与Apple/Google Pay识别问询
区分实体EMV芯片卡与Apple Pay/Google Pay非接交易的方案
一、最早识别节点
最早可区分的节点是非接卡片选择阶段(Selection)的ATS(Answer To Select)响应或Select PPSE命令的返回结果:
- 更早期的识别可通过ATS:Apple Pay/Google Pay这类虚拟支付设备的ATS会包含特定扩展标识(如Apple Pay的ATS含
0x80字节),与实体EMV芯片卡的标准ATS存在差异。 - 最可靠的早期节点是执行
Select PPSE命令后读取返回的FCI数据,通过9F06标签(Application Identifier,AID)的前缀即可快速区分虚拟卡与实体卡。
二、Apple Pay/Google Pay是否有唯一AIP?
没有。AIP(Application Interchange Profile)由卡组织定义,Apple Pay/Google Pay会沿用绑定卡片所属卡组织的AIP规则,绑定Visa卡的虚拟卡AIP与实体Visa卡一致,绑定Mastercard的则与实体Mastercard卡一致,因此无法通过AIP唯一区分虚拟卡与实体卡。
三、Tag 82的具体校验方法
Tag 82(Application Interchange Profile)为2字节结构,其中第一个字节的Bit 1和Bit 2用于标识卡片类型:
- Bit 1=1、Bit 2=0:实体EMV芯片卡
- Bit 1=0、Bit 2=1:HCE虚拟支付卡(Apple Pay/Google Pay)
校验步骤:
- 提取Tag 82的第一个字节值
- 将该值与
0x03执行按位与操作 - 根据结果判定:
- 结果为
0x01:实体卡 - 结果为
0x02:虚拟卡
- 结果为
注意:部分早期虚拟卡可能不遵循此规则,需结合其他标识交叉验证。
四、其他识别方式
- AID前缀匹配:Apple Pay的AID前缀固定为
A0000005591010,Google Pay的AID前缀为A0000005271010;实体卡的AID对应卡组织标准(如Visa:A0000000031010,Mastercard:A0000000041010),读取9F06标签即可区分。 - Tag 9F4D(Payment System Directory Entry):虚拟卡的该标签会包含
0x01字节标识虚拟支付应用,实体卡则为0x00。 - ATS扩展位验证:虚拟支付设备的ATS会携带
0x80扩展字节,标识支持ISO 14443-4协议的扩展功能,实体芯片卡的ATS通常无此字节。
内容的提问来源于stack exchange,提问作者Mat So
相关产品推荐
相关产品推荐

