您好我是android开发人员。我已经建立了Android NFC读写器和编写器和光束。所以使用writer我可以在NFC标签上写简单的数据,在读者的帮助下,我可以从标签中读取数据。使用波束I可以在两个支持NFC的设备之间传输数据。所以到现在为止一切正常。现在我想开始进行NFC支付。我正在开发android平台。所以我的问题是NFC阅读器如何工作用于支付。他们是在Beam上工作还是我们的设备充当NFC读卡器的nfc标签,它只是从设备读取数据。我在设备方面如何遵守这个读卡器用于付款或其他东西。我读到了关于android的HCE,它对理解概念有很大帮助。但是对于读者概念和工作场景我有点困惑。有没有人可以帮我理解这些东西,需要帮助。谢谢。
答案 0 :(得分:5)
当您谈到付款时,我假设您参考基于众所周知的信用卡计划(如AmEx,Discover,JCB,MasterCard,VISA等)的付款。他们的付款协议在EMVCo标准化。请注意,还有其他(不是广泛的)支付方案使用不同的方法。
对于基于EMV的支付卡的非接触式protc,它们通常遵循以下方案:
(在Android的读写器模式NFC API术语中,“ISO / IEC 14443防冲突和激活(A型或B型)”将是NfcA
或NfcB
和组合“ISO / IEC 14443防冲突和激活(A型或B型)和”ISO / IEC 14443-4传输协议“将是IsoDep
。)
因此,支付终端(例如POS)为上述协议栈实现了阅读器侧。用户侧支付设备(例如塑料信用卡,带虚拟信用卡的移动电话)实现了这些协议的卡侧。
那么你的问题:
这些支付卡计划不涉及Beam(或NFC的点对点模式)。
NFC的读写器模式(在Android设备上实现)主要能够实现这些方案的支付终端。
在这种情况下,我不喜欢“充当NFC标签”一词。 NFC标签(由NFC Forum定义)是具有读取(和可选写入)访问的纯数据容器,其中可以存储NDEF消息。然而,支付卡是具有处理能力(即它们执行程序代码),安全数据存储和加密能力的(非接触式)智能卡。除了可自由读取的静态数据外,它们通常还包含处理来自读取器端的请求的程序逻辑,并且它们还包含用于签名生成而不是通过支付交易等的密钥(通过传统方式永远无法从卡读取)。
Android的HCE工具允许开发人员在Android设备上实现上述协议栈。因此,使用HCE和Android设备可以将其作为非接触式智能卡并解释ISO / IEC 7816-4智能卡命令(APDU)。