【8583】ISO8583报文解析

ISO8583报文(简称8583包)又称8583报文,是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。

【报文格式】

POS终端上送POS中心的消息报文结构包括TPDU、报文头和应用数据三部分:

TPDU:长度为10个字节,压缩时用BCD码表示为5个字节长度的数值。

报文头:总长度为12字节,压缩时用BCD码表示为6个字节长度的数值。 

在POS上送的请求/通知报文中,该数值由POS终端应用程序在打包上送时根据POS终端参数和当前状态填入应用类别、软件总版本号、终端状态和软件分版本号(具体指各厂商的程序版本号),用于POS中心根据数值进行相应的处理。
在POS中心返回的应答报文中,由POS中心填入处理要求,其他域保持原值返回,POS将根据收到报文头中的处理要求进行相应处理。

ISO8583Msg:信息类型域(2字节)+位图域(一般8字节,如果使用到65~128域则为16字节)+报文数据域。

【示例】

8583报文大部分情况下用在POS终端与后台收单系统的数据交换,一般情况下一段完整的报文由以下几个部分组成:

[长度(2字节)] + [TPDU(5字节)]+[报文头(6字节)]+[8583数据]

例如,一个签到报文报文:

003B600006000060220000000008000020000000C000120012473538443031313135383837353844303438313635353535001100000001003000023031

报文长度:00 3B=59个字节 

TPDU:60 00 06 00 00 

Header:60 22 00 00 00 00

ISO8583Msg:信息类型0800 + 位图0020000000C00012 + 各域数据。

由位图数据可得域是11 41 42 60 63,再看规范中的各域信息定义可知: 

11域:00 12 47
41域:35 38 44 30 31 31 31 35
42域:38 38 37 35 38 44 30 34 38 31 36 35 35 35 35
60域:00 11 00 00 00 01 00 30
63域:00 02 30 31


参考摘录:

https://www.2cto.com/kf/201607/528427.html

https://www.cnblogs.com/yiyi16801/p/7442316.html

https://blog.csdn.net/qq282881515/article/details/52004796

原文地址:https://www.cnblogs.com/utank/p/11935792.html