当读者使用 HCE 通过 NFC 模拟支付应用程序发起交易时,我几乎没有问题
读卡器是否像常规非接触式卡基础设施一样发送 PPSE 命令?
主机控制器是否使用路由表中列出的已注册 AID 中的 AID 列表来响应 PPSE 命令?
那么读卡器选择AID后,主机控制器指向正确的HCE服务?
请纠正我对上述概念的理解。
EMV 支付卡终端不会区分塑料卡、基于安全元件的卡或 HCE 模拟卡。在所有情况下,它都会使用相同的协议。实际上,作为 EMV 的“协议s ”有几个不同的内核变体,它们与卡应用程序(略有)不同的协议。但这种差异化是基于应用程序变体和品牌(例如 MasterCard EMV、MasterCard MagStripe、Visa 等),而不是基于外形尺寸/“智能卡”硬件。
因此,非接触式 EMV 阅读器将为任何类型的卡(塑料、SE、HCE 等)选择 PPSE 来检测实际的支付应用程序。
Android 不会解释 PPSE 选择命令,因此,它不会生成或发送可用支付应用程序的列表。请注意,HCE 支付应用程序由用户通过设置 UI 选择,并且一次只能激活/访问一个支付应用程序。
由应用程序来处理 PPSE。因此,通常,基于 EMV 标准的 HCE 支付应用程序会同时注册支付应用程序 AID 和 PPSE DF 名称。请注意,从协议的角度来看,DF 名称和 AID 之间没有区别,因此您可以在主机 APDU 服务 XML 文件中注册它,并在其ASCII 十六进制表示325041592E5359532E4444463031
:
<aid-filter android:name="325041592E5359532E4444463031" />
因此,您的主机 APDU 服务将需要处理 PPSE 选择命令,并以 FCI 对其进行响应,该 FCI 在其任意数据模板中包含 EMV 支付应用程序列表。