8583报文解析实例

8583报文解析实例:

以下是主机从网控器收到的消费数据包(用二位十六进制数表示一个字节):

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”

猜你喜欢

转载自blog.csdn.net/mashengjun1989/article/details/53836455