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