以下是主机从网控器收到的消费数据包(用二位十六进制数表示一个字节):
0201 06 60 00 07 08 08 |02 00 30 20 05 00 20 c0
02 0100 40 00 00 00 00 00 99 80 00 00 01 00 21
00 0337 62 14 02 10 00 07 41 50 78 d1 56 07 12
20 10 00 00 00 0031 32 33 34 35 36 37 38 30 34
33 20 20 20 20 20 20 20 20 20 20 20 20c5 8e b2
00 18 03 1e 9a00 06 30 30 30 30 30 31 00 06 30
30 30 30 30 3000 06 30 30 30 30 30 31|03 22
备注:|…|之间是8583数据包(|是人为加的);颜色只作为各个域区分,没其他含义。
解包分析:
02表示是数据开始
01 06表示后面数据长度为106个字节(在06到结束符03
之间,不包括03字符,即8583包)
60 00 07 08 08是网控tpdu的地址
02 00 8583包开始,表示交易信息码message_id
消费信息码为0200
30 20 05 00 20 c0 02 01是数据包的位图,8个字节,64位,3的二进制0011
第一位为0,所以没有扩展位图,二进制展开后如下域
有信息: 3 4 11 22 24 35 41 42 52 60 61 62
03是数据结束 ??
31是crc校验:02后面开始,即从01开始到03之间字 ??
节(包括03)异或的结果。??
数据元解包分析:实据元是从位图后开始,到03结束之前。
位图分析有3 4 11 22 24 35 41 42 52 60 61 62域的信息
格式说明:
a表示字符,
n表示数字,
s表示特殊字符,
b二进制数据
第3域:
名称:处理代码
格式:n6(固定长度为6的数字)
截取字符:00 40 00
原始数据:“004000”。
第4域:
名称:交易金额
格式:n12
截取字符:00 00 00 00 99 80
原始数据:99.80
第11域:
名称:系统流水号
格式:n6
截取字符:00 00 01
原始数据:000001
第22域:
名称:服务点方式
格式:n3
截取字符:00 21
原始数据: “021”
第24域:
名称:国际网络识别符
格式:n3
截取字符:00 03
原始数据:“003”
第35域:
名称:第2磁道数据
格式:llvar
长度为37,取整后有19个字符
截取字符:37 62 14 02 10 00 07 41 50 78 d1 56 07 12 20 10 00 00 00 00
原始数据:62 14 02 10 00 07 41 50 78 d1 56 07 12 20 10 00 00 00 0
第41域:
名称:终端号
格式:ans8 (字母,数字,特殊字符皆可,长度为8)
截取字符:31 32 33 34 35 36 37 38
原始数据:“12345678”
第42域:
名称:商户号
格式:ans15
截取字符:30 34 33 20 20 20 20 20 20 20 20 20 20 20 20
原始数据:“043”
第52域:
名称:个人密码
格式:b64 (表示二进制数据64位)
截取字符:c5 8e b2 00 18 03 1e 9a
原始数据:c5 8e b2 00 18 03 1e 9a
第60域:
名称:保留使用(实际存放pos的批次号)
格式:lllvar
长度为00 06
截取字符:00 06 30 30 30 30 30 31
原始数据:“000001”
第61域:
名称:保留使用(实际存放操作员和操作员密码)
格式:lllvar
长度为00 06
截取字符:00 06 30 30 30 30 30 30
原始数据:“000000”00操作员,0000密码
第62域:
名称:保留使用(实际存放pos的票据号)
格式:lllvar
长度为00 06
截取字符:00 06 30 30 30 30 30 31
原始数据:“000001”