You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android NFC支付项目中多AID银行卡的正确选择方法问询

解决多AID银行卡NFC读取问题的步骤

1. 先通过PPSE获取完整AID候选列表

必须先发送标准PPSE选择命令:00 A4 04 00 0E 325041592E5359532E4444463031 00,卡片会返回包含所有支持AID的FCI(文件控制信息)。解析响应时,重点提取:

  • 每个AID的优先级(由标签88的长度决定,长度越短优先级越高)
  • 对应AID的应用模板数据

2. 按优先级遍历AID执行全流程命令

拿到AID列表后,按优先级依次尝试每个AID的完整命令链:

  • 发送Select AID命令:00 A4 04 00 [AID长度] [AID值] 00
  • 若响应状态码为9000(命令成功),继续执行Get Processing Options:80 A8 00 00 02 8300 00
  • 根据GPO返回的PDOL构造对应数据,最后执行Read Record读取卡片信息
  • 只要有一个AID的全流程执行成功,立即停止遍历,避免无效操作

3. 修改开源库的多AID适配逻辑

针对你使用的开源库,需要调整单AID读取的硬编码逻辑:

  • 初始化阶段不再固定单个AID,改为从PPSE响应中动态生成AID列表
  • 遍历AID时,捕获SW_WRONG_LENGTH、SW_FILE_NOT_FOUND等异常,跳过失败的AID继续尝试
  • 保证每个AID的命令流程独立,前一个AID失败不会中断整个读取流程

推荐学习资源

  • EMV 3-D Secure Specification:官方规范,明确PPSE、AID选择及后续命令的交互标准
  • NFC Forum Type 4 Tag Operation Specification:了解NFC卡片的数据交换机制
  • EMVCo官方文档:包含APDU命令格式、响应码解析及多应用卡片的处理规则

内容的提问来源于stack exchange,提问作者Roop Kishore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:08:13