第一、GPO命令
GPO命令主要的功能时告诉卡片,交易的金额,是否支持电子现金,以及终端的交易属性等参数,在选择应用时,卡片会返回一个PDOL标签值,其标签为9F38,终端应该保存这个列表,GPO命令的数据域就是依据PDOL列表发送的,数据发送的顺序是按照标签在PDOL中的顺序排列的。
举例来说:
卡片返回的PDOL数据:9F66049F02069F03069F1A0295055F2A029A039C019F3704
具体解析如下
9F6604 标签9F66的定义如下:
表1 终端交易属性(标签为“9F66”)
字节 |
位 |
定义 |
1 |
8 |
预留 |
7 |
1 – 支持非接触式借记/贷记应用 0 – 不支持非接触式借记/贷记应用 |
|
6 |
1 – 支持qPBOC 0 – 不支持qPBOC |
|
5 |
1 – 支持接触式借记/贷记应用 0 – 不支持接触式借记/贷记应用 |
|
4 |
1 – 终端仅支持脱机 0 – 终端具有联机能力 |
|
3 |
1 – 支持联机PIN 0 – 不支持联机PIN |
|
2 |
1 – 支持签名 0 – 不支持签名 |
|
1 |
预留 |
|
2 |
8 |
1 – 要求联机密文 0 – 不要求联机密文 |
7 |
1 – 要求CVM 0 – 不要求CVM |
|
6-1 |
预留 |
|
3 |
8-1 |
预留 |
4 |
8-1 |
预留 |
终端在GPO命令中应该如实的将终端的性能参数等发给卡片,以便卡片进行下一步的操作。
9F0206 授权金额
所谓授权金额,其实就是在交易时你要消费的金额。或者说终端机持有人输入的金额,然后要求你输入密码确认。
这个授权金额为6个字节,每半个字节代表10进制的一位,且单位为分,请注意不是“元”
例如假如你的银行卡里有563.99元人民币,那么存储的数据格式应该是:
0 0 0 0 0 0 0 5 6 3 9 9刚好占用6个字节
9F03 06,这个是其它金额,目前还没有定义,全部输入6个字节的0
9F1A 02 终端国家代码,中国的国家代码为01 56
95 05 是终端验证结果,这5个字节定义如下:
字节1:
b8 |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
意义 |
1 |
x |
x |
x |
x |
x |
x |
x |
未进行脱机数据认证 |
x |
1 |
x |
x |
x |
x |
x |
x |
脱机静态数据认证失败 |
x |
x |
1 |
x |
x |
x |
x |
x |
IC卡数据缺失 |
x |
x |
x |
1 |
x |
x |
x |
x |
卡片出现在终端异常文件中 |
x |
x |
x |
x |
1 |
x |
x |
x |
脱机动态数据认证失败 |
x |
x |
x |
x |
x |
1 |
X |
x |
复合动态数据认证/应用密文生成失败 |
x |
x |
x |
x |
x |
x |
0 |
x |
RFU |
x |
x |
x |