<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p><strong>参考 Demo:</strong><strong>https://github.com/WTCool666/Iso8583/tree/master</strong></p>
讯享网
ISO8583报文(简称8583包)又称8583报文,是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。
【报文格式】
POS终端上送POS中心的消息报文结构包括TPDU、报文头和应用数据三部分:
TPDU:长度为10个字节,压缩时用BCD码表示为5个字节长度的数值。
报文头:总长度为12字节,压缩时用BCD码表示为6个字节长度的数值。
ISO8583Msg:信息类型域(2字节)+位图域(一般8字节,如果使用到65~128域则为16字节)+报文数据域。
在线16进制转2进制:https://www.jyshare.com/unit-conversion/7997/
16进制到ASCII字符串在线转换工具:https://coding.tools/cn/hex-to-ascii#google_vignette
【示例】
8583报文大部分情况下用在POS终端与后台收单系统的数据交换,一般情况下一段完整的报文由以下几个部分组成:
[长度(2字节)] + [TPDU(5字节)]+[报文头(6字节)]+[8583数据]
例如,一个demo报文报文:
005A 0 0200 C08000 000000000000000000026120d000000
报文长度:00 5A=90个字节
TPDU:60 00 16 00 00
Header:60 22 00 00 00 00
ISO8583Msg:信息类型0200 + 位图C08000+ 各域数据。
由位图数据可得域是 2 3 4 11 35 41 42,再看规范中的各域信息定义可知:
0000000000000000000000000000000
2 3 4 11 35 41 42
8583报文=信息类型域+位图域+报文数据域
前面10个字节的BCD码(也就是20个BCD码,亦是20个数字)表示报头,在上面报文中报头是<02 00 70 20 00 00 20 C0 82 00>
其中前面四个数字表示 信息类型(MTI),上面报文的信息类型是<02 00>
后面的16个BCD码为 位图域。上面报文的信息类型是<70 20 00 00 20 C0 82 00>
后面N个数字表示报文数据
1、信息类型<02 00>
其中每位数字都有他的含义。不做翻译
第一位:8583 version number

第二位:message class
第三位:message sub-class
第四位:transaction originator
2、位图域<70 20 00 00 20 C0 82 00>
开头不为1,则表示64位的位图。
将上面的位图转换成二进制,为:
000000000000000000000000000000
不足64位,前面补0,为:
0000000000000000000000000000000
现在看是数了,能够看出2、3、4、11、 35、 41、 42、 49这些位置是1.则表示在8583报文中,的2、3、4、11、 35、 41、 42、 49域是传输了数据的。
3、报文数据域
在解读数据域之前,你应该先了解报文的数据类型和代表符
位:二进制中,一个0或1,表示位
Bcd码:四个位表示一个bcd码(可以理解成八进制数中1位)
字节:八个位表示个字节(可以理解成十六进制数中1位)
N…x 代表数字类型 x代表位数 …代表变长,若x为技术,则自动补0,凑足一个bcd码
N4:4位定长数字
N6:6位定长数字
N…6:6位变长数字
AN…x AN代表数字或字母,用ANSCII码解析,;x代表位数; …代表变长
AN4:4位定长数字或字符
AN6:6位定长数字或字符
AN…6:6位变长数字或字符
ANS 代表数字、字母或特殊字符,用ANSCII码解析
ANS4:4位定长数字或字符、特殊字符
ANS6:6位定长数字或字符、特殊字符
ANS…6:6位变长数字或字符、特殊字符

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/153189.html