以下是主机从网控器收到的消费数据包(用二位十六进制数表示一个字节):
02 01 06 60 00 07 08 08 |02 00 30 20 05 00 20 c0
02 01 00 40 00 00 00 00 00 99 80 00 00 01 00 21
00 03 37 62 14 02 10 00 07 41 50 78 d1 56 07 12
20 10 00 00 00 00 31 32 33 34 35 36 37 38 30 34
33 20 20 20 20 20 20 20 20 20 20 20 20 c5 8e b2
00 18 03 1e 9a 00 06 30 30 30 30 30 31 00 06 30
30 30 30 30 30 00 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”