该指令流仅适用于T=0协议卡片.
终端对IC卡的响应:
60 需要额外的工作等待时间,说明IC卡端数据还未处理好.
61 发送GET RESPONSE命令取应答数据
6C 加上取字节数,命令重发
依照其类型,文件可能通过文件名和SFI进行查询.
卡中的任何ADF(应用定义文件)或DDF(目录定义文件)可通过其DF(专用文件)名查询,ADF的DF名对应其AID,每个DF名在给定的卡中是唯一的.
SFI(短文件标识符)用于选择AEF(应用基本文件).对给定应用中的任何AEF,可以通过SFI(5位代码,取值范围1~30)查询.
<=3B 6D 00 00 80 65 08 49 04 86 53 00 00 00 00 00 00
ATR数据解析
字符 |
值 |
说明 |
TS |
3B |
正向约定,首先发送的是字符的最低有效位 |
T0 |
6D |
TB1和TC1存在,D表示历史字节的存在个数 |
TB1 |
00 |
不使用VPP |
TC1 |
00 |
指明所需额外保护的时间量 |
历史字节 |
80 65 08 49 04 86 53 00 00 00 00 00 00 |
|
=>00 A4 04 00 0E
<=A4(INS)
=>31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 //”1PAY.SYS.DDF01”
<=61 28
=>00 C0 00 00 28
<=C0
<=6F 26 // FCI模板
84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 3031 // DF名
A5 14 //FCI专用数据
88 01 01 5F 2D 02 7A 68 9F11 01 01 BF 0C 05 9F 4D 02 0B 0A //目标基本文件的SFI
<=90 00
命令解析
命令 |
|
00 A4 04 00 Lc |
SELECT, 04表示通过文件名选择,Lc命令数据域中存在的字节数 |
00 C0 00 00 Le |
GET RESPONSE, Le表示响应的期望数据的最大长度 |
数据解析
SELECTDDF的响应报文(FCI)
标志 |
值 |
数据 |
6F |
FCI模板 |
|
84 |
DF名 |
|
A5 |
FCI专用数据 |
|
|
|
88目标基本文件的SFI |
=>00 B2 01 0C 00 // Care: high_5bits_SFI + low_3bits_0x04 = 0x01<< 3 + 0x01= 0x0c
<=6C 27
=>00 B2 01 0C 27
<=B2
<=70 25 // 结构数据对象标识
61 23 // 应用模板
4F 08 A0 00 00 03 33 01 0101 //ADF名称(AID)
50 0A 50 42 4F 43 20 44 4542 49 54 // 应用标签
9F 12 0A 50 42 4F 43 20 4445 42 49 54 // 应用优先名称
<=90 00
命令解析
命令 |
|
00 B2 01 0C 00 |
READ RECORD,用于读取记录文件的内容 |
数据解析
ADF目录入口地址格式
标志 |
长度 |
值 |
||||
70 |
var. |
结构对象数据标示 |
||||
|
|
61 |
Var. |
应用模板 |
||
|
|
|
|
4F |
5-16 |
ADF名称(AID) |
|
|
|
|
50 |
1-16 |
应用标签 |
|
|
|
|
9F12 |
1-16 |
应用优先名称 |
=>00 A4 04 00 08
<=A4
=>A0 00 00 03 33 01 01 01
<=61 47
=>00 C0 00 00 47
<=C0
<=6F 45
84 08 A0 00 00 03 33 01 0101 // ADF名称(AID)
A5 39
50 0A 50 42 4F 43 20 44 4542 49 54 // 应用标签
87 01 01
9F 38 09 9F 7A 01 9F 02 065F 2A 02
5F 2D 02 7A 68
9F 11 01 01
9F 12 0A 50 42 4F 43 20 4445 42 49 54 // 应用优先名称
BF 0C 05 9F 4D 02 0B 0A
<=90 00
=>80 CA 9F 79 00
<=6C 09
=>80 CA 9F 79 09
<=CA
<=9F 79 06 00 00 00 00 00 00
<=90 00
命令解析
命令 |
说明 |
80 CA 9F 79 00 |
GET DATA,9F 79读取电子现金余额 |
数据解析
9F 79 06 00 00 00 00 00 00,返回6字节的余额数据,采用BCD编码,最后一个字节表示小数点后两位.