求助:如何用NFC-B卡的Java Card在iPhone打开网站?APDU返回0x6D00
解决NFCRing OMNI发送NDEF网址时APDU返回0x6D00的问题
错误原因明确
0x6D00响应的核心是指令字节(INS)无效,要么是你发送的APDU格式错误,要么是OpenjavacardNDEF小程序未成功安装/选中,导致卡片无法识别这些命令。
分步排查与解决
1. 确认小程序安装状态
先用GlobalPlatformPro检查卡片上的小程序列表,执行命令:
gp -list
如果输出中能看到AID为E104的小程序,说明安装成功;若没有,重新编译并安装:
gp -install <你的OpenjavacardNDEF.cap文件路径>
注意:NFCRing OMNI为Java卡,需确保cap文件与卡片固件版本兼容。
2. 正确选中NDEF小程序
你之前的选中命令格式错误,正确的APDU应为:
00 A4 04 00 02 E1 04 00
参数说明:
00:CLA(指令类)A4:INS(选择小程序指令)04 00:P1P2(按AID选择模式)02:AID长度(E104共2字节)E1 04:目标小程序AID00:Le(期望返回长度)
发送后若返回9000,则选中成功;若仍返回6D00,需检查AID是否正确或小程序是否安装到位。
3. 按协议发送NDEF写入命令
选中小程序后,将网址封装为NDEF格式(例如https://example.com对应的NDEF数据为D1 01 11 55 02 65 78 61 6D 70 6C 65 2E 63 6F 6D),再发送写入APDU:
00 D6 00 00 10 D1 01 11 55 02 65 78 61 6D 70 6C 65 2E 63 6F 6D
参数说明:
00:CLAD6:INS(NDEF写入指令)00 00:P1P2(写入起始偏移0)10:NDEF数据长度(16字节)- 后续为NDEF格式的网址数据
4. 修正你之前的错误命令
你尝试的几个命令均存在格式问题:
00000000:无有效指令字节,完全无效00a4000c:缺少AID长度与具体AID,格式不完整00a4000c02e10400:P1P2参数错误(000C是选择MF的参数,而非按AID选择)00b00150:未选中目标小程序就发送读指令,卡片无法识别
验证操作结果
写入完成后,用手机NFC触碰戒指,检查是否能正常弹出网址;也可发送读取APDU验证:
00 B0 00 00 20
若返回包含你写入的NDEF数据的响应,则操作成功。
内容的提问来源于stack exchange,提问作者DragonHuntr
相关产品推荐
相关产品推荐

