我知道NFC是什么,并且对NFC移动支付(即将手机靠近阅读器进行支付,就像谷歌钱包一样)做了很多研究。我现在的问题是读卡器与信用卡公司或发行买方使用的借记卡的银行之间会发生什么。我们面临的另一个问题是读卡器与卡公司或银行之间交换数据的媒介。
我的问题是::
1) 当用户将手机带到读卡器处进行付款时,读卡器和银行或信用卡系统之间会发生什么。W 读者是否联系信用卡/银行系统进行验证?
2) 读者通过什么媒介联系信用卡公司或银行进行身份验证并检查是否有足够的余额进行购买?读者是否通过互联网发送这些信息?
3)对于火车票,读者如何知道车票有效?它还联系后端系统吗?如果是的话,在哪种媒介上?通过互联网还是什么?
我用谷歌搜索了一整天的答案,但我得到的所有文章都太模糊了。他们不谈论支付阅读器与银行或信用卡公司之间发生的事情。
如果有人能给我详细的描述或向我指出回答这些问题的教程或其他问答,我会很高兴。
谢谢。
我想使用我的 Android 手机作为阅读器与我的 android HCE(主机卡仿真)应用程序进行通信。在互联网上,我找到了 ACS Reader(PC Reader)的示例客户端应用程序代码。相反,我想将我的 Android 手机用作 NFC 阅读器。我找到了一些适用于 Android 的 Mifare 卡示例,而不适用于 HCE 通信
请分享如果有任何示例代码 URL /API 来帮助我。谢谢你
我有一个应用程序可以扫描 NFC 标签、从标签收集数据并将该数据发送到服务器。标签上的数据采用以下格式:
1,3,30012,somebodys name
Run Code Online (Sandbox Code Playgroud)
这些标签被放置在客户的家里供护理人员扫描。每次扫描都会将它们记录到通话中。
到目前为止,这一切都运行良好。我现在遇到的问题是,护理人员必须在我们的应用程序旁边使用另一个应用程序,该应用程序扫描不同的 NFC 标签,上面有不同的数据,并将其发送到不同的服务器。此应用程序安装在同一护理人员的手机上。
该其他应用程序将扫描可能包含以下格式数据的 NFC 标签:
abc|123??
Run Code Online (Sandbox Code Playgroud)
问题是我如何确保当护理人员扫描我们的标签时,仅启动我们的应用程序?
清单中有没有办法在我的应用程序的意图过滤器中指定这一点?
这就是我的活动清单中的内容。据我了解,如果启动 Intent 并且有 2 个应用程序可以处理 NFC 标签,则会向用户呈现一个列表。Android 文档不鼓励这样做。
提前致谢。
[编辑]我注意到的一件事是,如果手机位于主屏幕上并且我扫描标签,那么我的应用程序就会启动。如果护理人员扫描正确的标签就可以了。
<activity android:name=".NfcscannerActivity"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="com.carefreegroup.rr3.QRCODE_ACTION" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
</activity>
Run Code Online (Sandbox Code Playgroud) 我已经成功地从非接触式借记卡/信用卡中检索了卡号和有效期。但是,在 READ RECORD 命令响应中没有返回持卡人姓名。我错过了什么吗?
- Select Application
# IN_DATA_EXCHANGE
>> D4 40 01 00 A4 04 00 07 A0 00 00 00 03 10 10 00
<< D5 41 00 6F 43 84 07 A0 00 00 00 03 10 10 A5 38 50 10 56 69 73 61 20 20 20 20 20 20 20 20 20 20 20 20 9F 38 18 9F 66 04 9F 02 06 9F 03 06 9F 1A 02 95 05 5F 2A …Run Code Online (Sandbox Code Playgroud) 我在此调用中使用node-hid:
HID.devices()
Run Code Online (Sandbox Code Playgroud)
我应该得到所有连接的USB设备的列表,这里的指南中列出。
结果我得到了这个设备列表:
[ { vendorId: 1452,
productId: 33346,
path: 'USB_05ac_8242_6500000',
serialNumber: '',
manufacturer: 'Apple Computer, Inc.',
product: 'Apple IR',
release: 22,
interface: -1 },
{ vendorId: 1452,
productId: 567,
path: 'USB_05ac_0237_6300000',
serialNumber: '',
manufacturer: 'Apple Inc.',
product: 'Apple Internal Keyboard / Trackpad',
release: 144,
interface: -1 },
{ vendorId: 1452,
productId: 567,
path: 'USB_05ac_0237_6300000',
serialNumber: '',
manufacturer: 'Apple Inc.',
product: 'Apple Internal Keyboard / Trackpad',
release: 144,
interface: -1 },
{ vendorId: 0,
productId: …Run Code Online (Sandbox Code Playgroud) 如何确定 NTAG216 中可以写入的最大页数?我在文档中找不到任何可以让我检查最大可用内存的方法。另外根据文档:
接下来的36页是用户读/写区域。
这是否意味着我只能写到第 36 页?我尝试写到第 50 页,但没有给出任何错误。
我使用 NFC 工具来检查最大内存,但是一旦我从第 4 页开始写入字节,有关最大内存的数据就变得不可用。
编辑:请阅读 henrycjc 和我提交的两个答案以获得完整的解释
在哪里可以找到要使用的文档android.nfc.tech.NfcA?
/**
* Provides access to NFC-A (ISO 14443-3A) properties and I/O operations on a {@link Tag}.
*
* <p>Acquire a {@link NfcA} object using {@link #get}.
* <p>The primary NFC-A I/O operation is {@link #transceive}. Applications must
* implement their own protocol stack on top of {@link #transceive}.
*
* <p class="note"><strong>Note:</strong> Methods that perform I/O operations
* require the {@link android.Manifest.permission#NFC} permission.
*/
public byte[] transceive(byte[] data) throws IOException
Run Code Online (Sandbox Code Playgroud)
我不太确定 tranceive 语法是如何工作的,我目前的理解是 first …
我想知道 NFC 是否可以检测低频 RFID 读取器,例如 30khz 到 300khz。
我正在尝试开发一个自定义的加密安全协议,用于通过 RFID 智能卡进行身份验证,我在互联网上所能找到的只是关于如何将静态标签写入卡中的通用信息。对于我的项目,我需要读卡器向卡发送挑战随机数(固定长度的随机字节),然后卡应该发回使用硬编码密钥(例如使用 AES CBC)或哈希 HMAC 加密的挑战。
问题是:我如何对卡进行编程以执行此类行为?我可以编写代码来做到这一点,但如何将它“闪存”到卡上。此外,阅读器的代码不是问题(我想使用带有阅读器模块的 Arduino)。
然后有一个无源芯片有足够的功率来进行这种计算,还是最好使用有源芯片,考虑到距离只有几厘米,例如在门后?
I'm trying to read a page of a Mifare Ultralight tag (more specifically EnOcean PTM 215B) using NFCMifareTag.sendMifareCommand method after it has been discovered and connected onto. The problem is that all commands I've tried to send cause a "Tag connection lost" error which is quite odd as I've just successfully connected to it.
The (simplified) code looks like:
// tag has been determined to be of type NFCMifareTag earlier
session.connect(to: tag) { (error: Error?) in
if (error != …Run Code Online (Sandbox Code Playgroud)