非接触式支付:检测移动设备或卡

Contactless Payments: Detect Mobile Device or Card

我正在尝试检测非接触式智能卡或配备 ApplePay、Google Pay 或 Samsung Pay 的移动设备是否用于非接触式 EMV 交易。

我查了EMV的书,好像有个标签9F6E提供了这样的数据:

EMV 第 3 册 - VISA

EMV 第 4 册 - 万事达卡

问题:

  1. VISA 在字段 9F6E 中提供了一个 4 字节的值,但我无法在任何地方找到可能值及其含义的列表。 EMV 书说 "out of scope"。有没有办法可靠地将其转换为已知的外形尺寸?
  2. MasterCard 为外形规格提供 2 个字节的数据,但我看到了我不理解的值 (32 31 ascii = 21)。是否有这些值和含义的列表?
  3. 是否有一种简单的方法来了解 CDCVM 是否已用于给定的非接触式交易,以便我可以将非接触式交易与非接触式 CDCVM 交易区分开来?

参考以下文档。您将需要 Visa Online 和 MasterCard connect 访问权限才能获得这些。

  1. VCPS_2.2 规格

  2. M/ChipRequirements 对于接触式和非接触式规格

  3. 在9F10里面查看CVM和CVR

Google Pay 使用的是基于云的支付,而 Apple 使用的是嵌入式安全元件。您可以在 Visa 的 9F6E 规格上找到此标签。但是,万事达卡或美国运通卡可能会有所不同。

要正确解决此问题,您可能需要检查 returns 到令牌请求者 ID 的 EMV 标签 9F19。检查此规范的 EMV 支付令牌化。令牌请求者 ID 如下所示:

万事达卡

  • 50110030273 – APPLE_PAY
  • 50120834693 – ANDROID_PAY
  • 50139059239 – SAMSUNG_PAY

签证

  • 40010030273 – APPLE_PAY
  • 40010075001 – ANDROID_PAY
  • 40010043095 – SAMSUNG_PAY
  • 40010075196 – MICROSOFT_PAY
  • 40010075338 – VISA_CHECKOUT
  • 40010075449 – 脸书
  • 40010075839 – Netflix
  • 40010077056 – FITBIT_PAY
  • 40010069887 – GARMIN_PAY

我相信还可以通过使用标记 0x82(应用程序交换配置文件)来检测交易是否由移动设备执行。我相信这是一种更好的方法,因为无论卡品牌如何,它都是一样的(只要有问题的卡品牌正确遵循 EMVCo 的规范。

这是一本 link 到 EMV Co 非接触式书籍。

https://www.emvco.com/wp-content/uploads/2017/05/C-4_Kernel_4_v2.6_20160512101635327.pdf

Screenshot Of Desired Table 检查字节 2(最右边的字节)的位 7(第二个最高有效位)。如果它是 1,则它来自移动设备。应用程序交换配置文件将始终为 2 字节。