因此,我最近在亚马逊上为我的 Raspberry Pi B+ 购买了 Mifare RFID RC522 芯片,此后一直未能成功地寻找一种方法让我的 iPhone 6 认为它是 Apple Pay 终端。
有没有人知道让 RFID 充当 Apple Pay 终端的方法,这样我的信用卡就会在 iPhone 靠近 NFC 阅读器时弹出,类似于这个视频?
因此,我最近在亚马逊上为我的 Raspberry Pi B+ 购买了 Mifare RFID RC522 芯片,此后一直未能成功地寻找一种方法让我的 iPhone 6 认为它是 Apple Pay 终端。
有没有人知道让 RFID 充当 Apple Pay 终端的方法,这样我的信用卡就会在 iPhone 靠近 NFC 阅读器时弹出,类似于这个视频?
为了模拟 iPhone 的非接触式信用卡终端(使用 Apple Pay),您需要使用 EMV 协议(从EMVCo获取规范)。
您将首先发送一个 SELECT PPSE 命令来读取可用支付卡应用程序的目录:
00 A4 0400 0E 325041592E5359532E4444463031 00
你会得到一个看起来像这样的目录作为响应:
6F23840E325041592E5359532E4444463031A511BF0C0E610C4F07A0000000031010870101 9000
使用 BER-TLV 解析器,您可以将其解码为:
6F [35]:文件控制信息 (FCI) 模板 84 [14]:专用文件 (DF) 名称 325041592E5359532E4444463031 A5 [17]:在 BER-TLV 中编码的专有信息 BF0C [14]:文件控制信息 (FCI) 发行人可自由支配的数据 61 [12]:应用程序模板 4F [7]:应用程序标识符(AID/DF 名称) A0000000031010 87 [1]:应用程序优先级指标 01
有趣的部分是应用程序模板(标记 0x61)。这包含支付应用程序的 AID(在标记 0x47 内):
A0000000031010
然后,您可以为支付应用程序发送一个 SELECT(按 AID/DF 名称)命令:
00 A4 0400 07 A0000000031010 00
这通常应该足以触发 Apple Pay 的 UI 组件。
为了使用 MFRC522 将这些 APDU 命令发送到 iPhone,您需要一个库来执行 iPhone 模拟的非接触式卡的防冲突和激活(直到 ISO/IEC 14443-4 层)并处理包装 APDU ISO/IEC 14443-4 传输协议的帧。
您可以使用简单的 NFC 读卡器来实现这一点。每次您出示手机时,信用卡都会弹出,您可以将信息发送给阅读器。由于其安全特性,每次您将手机呈现给阅读器时,它都会是一个新的 UID。