【问题标题】:Android POS accept Google Pay via NFC & ChipAndroid POS 通过 NFC 和芯片接受 Google Pay
【发布时间】:2018-12-15 15:04:05
【问题描述】:

我有一个 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 documentation I got with device

Picture of the new device

【问题讨论】:

标签: android nfc kiosk pos google-pay


【解决方案1】:

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

来自Google Pay Merchant Help - How payments work(强调我的):

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

[...]

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

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

【讨论】:

  • 我还以为它会是一张标记化的卡片……但是,它每次都是同一个“标记”。即使我从谷歌支付换车。另外,我尝试了我的希尔顿信用卡,它内置了 nfc,而且每次都给出相同的号码。我非常怀疑如果它被标记化,即使对于同一张卡,它每次都是一样的。我认为它会读取序列号或卡片,因为我在手机上下载了一些随机应用程序,声称可以读取 nfc 卡和设备正在获取的号码,这个应用程序说它是序列号......
  • 我最好的猜测是您的读者没有正确遵循 EMVCo 非接触式支付规范。但即使这样做了,您尝试做的事情(读取卡号然后输入在线支付表格)根本不可能通过代币的设计实现。
  • 那我在安卓上通过触碰支付接受谷歌/三星/苹果支付的方式是什么?
  • 您可能想要一个可以接受和处理非接触式付款的实际信用卡终端。仅使用 NFC 阅读器是不够的。许多现代信用卡终端都可以连接到 Android 设备(通常通过蓝牙),因此如果您想保留当前的解决方案,您可能可以获得其中之一。
  • 嗯...你能推荐一个连接Android的设备吗?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 2018-04-05
    相关资源
    最近更新 更多