14

我想将 NFC 支付添加到我正在开发的 Android 应用程序中,以允许用户直接向 POS 付款。我有兴趣支持尽可能多的 POS。

我想知道这是否真的可能,或者它取决于专有协议/硬件。

我找到了有关阅读非接触式卡信息的信息(和代码示例),但我找不到任何有关付款本身的库或代码。

我知道 EMV 规范,但它看起来很长而且技术性很强,我想在深入研究之前知道它是否真的可行。

我们不能使用 Google 电子钱包,因为我不在美国。

4

2 回答 2

9

您将无法在您的应用程序中支持 NFC 支付,除非您是一家拥有 Visa/Mastercard/etc 协议的银行,并且可以访问证书来签署您的 EMV 交易。

非接触式 EMV 交易未加密。这就是为什么您可以轻松嗅探非接触式交易或读取非接触式支付卡信息的原因。

由于卡中嵌入了特定于发卡机构的证书(例如:维萨卡、万事达卡),交易仍然是安全的。此证书受保护(无法读取)。它用于签署交易详细信息(金额、日期、随机标识符等),以便 POS 和交易处理器(在银行侧)可以验证和验证交易。如果没有有效的签名,您的交易将被拒绝。

但是,由于所有主要发卡机构都在其最新规范中添加了移动支付支持(例如:万事达卡PayPass 3.0Visa PayWave 2.1)。他们最终可能会为手机上的其他应用程序提供 API 以启动交易。尽管如此,我的理解是手机需要一些特定的硬件(例如:加密处理器)来处理交易。

于 2015-07-27T14:24:52.467 回答
2

阅读的起点是“基于主机的卡模拟”

https://en.wikipedia.org/wiki/Host_card_emulation

https://developer.android.com/guide/topics/connectivity/nfc/hce.html

于 2015-07-23T09:44:27.237 回答