0

我有一个 Android Kiosk POS,我卖给我的客户以接受付款。为了接受付款,一个 USB 磁卡读卡器连接到 Android Kiosk(它有一个 USB 端口)并且在刷卡时,只要键盘输入进来,监听活动就会解析它并提取所需的卡信息。然后,我们从 Stripe 获得卡的令牌,并通过 Stripe 向它们收费。自从我们发布它以来,它一直运行良好。

然而,新的需求出现了。这就是接受 EMV 和 Google/Samsung/Apple Pay + 未来任何 NFC 支付的需要。我刚刚从中国购买了另一个接受芯片 + NFC + 刷卡的 USB 读卡器。我知道如何处理刷卡部分,因为它与我们目前在现场使用的单功能读卡器所做的相同。

但是,我不知道如何接受芯片,尤其是 NFC 支付。我在我的手机上设置了 Google Pay,每当我把它放在这个新的读卡器附近时,它就会发出哔哔声并输入一个 8 位数字(即使它不是键盘,它也被认为是键盘)。所以,我知道它会检测到它并生成一些数字,但我不知道这个数字是什么意思。我认为它应该给我卡号,并且一直磁刷给我轨道。EMV 部分也是如此……但是,对于读卡器的 EMV 部分,它甚至似乎没有得到任何输入。

我希望有人对这种类型的 Android 设备有经验并可以指导我。

我使用设备获得的 SDK 文档

新设备图片

4

2 回答 2

1

您在读卡器上收到的号码不是卡号 (PAN) - 它是代表您的卡的令牌(有时称为 DPAN),但与卡号不同。

来自Google Pay 商家帮助 - 付款方式(强调我的):

当商家在商店付款时,Google Pay 不会向商家发送其客户的实际卡号;相反,Google Pay 促进了一个称为令牌化的过程,其中一个令牌代表客户的实际信用卡和借记卡号码。

[...]

为了进行购买,客户在销售点终端上点击他们的移动设备或选择在您的移动应用程序中付款。Google Pay以客户的标记卡和用作一次性密码的密码作为响应。卡网络验证密码并将令牌与客户的实际卡号匹配。

实际上,这是一项安全功能,可防止恶意读卡器从支持 Google Pay、Apple Pay 或类似支付方式的手机中简单地读取和存储卡号。

于 2018-07-08T01:53:37.563 回答
0

我已经实现了一个开源 EMV 支付框架(https://github.com/vicente-da-silva/dcemv)。这实现了 EMV 非接触式和接触式内核。有各种 NFC 驱动程序。它在安卓上运行。您可以将其用于卡 PAN 是否已标记化的 EMV 交易,但对于通过 HCE 进行的标记化卡,您正在处理的银行/收单机构必须与三星/Apple/Google Pay 集成,以便向它们传递令牌和将其翻译回原始 PAN。

于 2018-07-12T10:19:57.157 回答