ISO8583协议总结
来源:互联网 发布:java写文件换行 编辑:程序博客网 时间:2024/05/22 15:10
最近有个关于ISO8583的项目,需要研究ISO8583协议,于是,自己查看了很多的文档,包括从网上下载了很多的资料。但是我发现一个缺点:网上的资料,很多是雷同的,或者说完全就是COPY别人的,而且很多资料在叙述的时候,很模糊,含糊不清,更有些资料在COPY的时候,出现了许多错误。鉴于以上原因,我在对ISO8583协议有相应的认识之后,想自己写一篇总结,作为以后的参考之用。现在将总结发表于此。
下图是ISO8583的数据的基本描述。叙述如下:
1 TPDU : TPDU是iso8583数据流的一个头,它标志着,数据的开始。它有5个字节。
2 数据类型定义:数据类型定义指明该iso8583数据流是何种类型的数据流,即定义了数据包的类型。
类型有一下几种:
0100授权交易
0110授权交易答复
0200金融交易
0210金融交易答复
0240查询交易
0250查询交易答复
0400冲正交易
0410冲正交易答复
0800管理交易
0810管理交易答复
3 主位图:主位图是iso8583中最重要的部分。它就像一个map一样,或者说像索引一样,能够查到数据位于哪些区域,第几个区域,以及如何划分数据包(数据流)。主位图有8 字节,共64位。这里有个数据位是需要做重要说明的:
bit 1 : 扩展位图标识位
如果该位为1,则表示数据包中有扩展位图,如果该位为0,则表示没有扩展位图。
bit 64 : 报文鉴别代码MAC,用于鉴别报文的始发源和报文内容的有效性。
65 bit:保留-ISO
bit 128 : 位于扩展位图中,报文鉴别代码MAC,用于鉴别报文的始发源和报文内容的有效性。
主位图和扩展位图一共有128位,每一个位都有自己独特的意义,如果该位为1,代表着:在位图之后的数据流中,有这位的数据,我们就要把他解包出来处理。
ISO8583协议规定了位图中每一位代表的意思是什么,以及该位索引的数据是什么类型的,有多大,多长。
我们来看一个位图例子:30 20 05 00 20 c0 02 01
简析如下:
将上面的数据转换为2进制的数据流:
3 0 2 0 0 5 0 0 2 0 c 0 0 2 0 1
0011 0000 0010 0000 0000 0101 0000 0000 0010 0000 1100 0000 0000 0010 0000 0001
即表示:3 4 11 22 24 35 41 42 52 55 64 位有数据,具体的数据如下
下表给出了详细的规定:
上表的格式这属性需要详细的说明,下面列出位元的定义及格式、属性。表中格式和属性栏使用的缩略语解释如下:
特别地:对于可变长度的类型如LLVAR 和LLLVAR,iso8583有规定:如果是LLVAR,则数据的前一个字节表示数据的长度。如果是LLLVAR,则数据的前两个字节表示数据的长度。例如:
第63位数据 LLLVAR ans...999类型的数据
00 3133 3A 50 50 30 30 2E 30 31 4D 53 41 4E 44 45 53 3A 50 50 30 30 2E 30 31 4D 53 41 4E
44 45 53
表示3为可变长度的数据。其中前两个字节表示后面的数据长度。00 31 即后面有31字节的数据流。
- ISO8583协议总结
- ISO8583协议
- ISO8583协议
- ISO8583协议(转载)
- iso8583协议说明
- ISO8583报文协议
- ISO8583报文协议
- ISO8583报文协议
- ISO8583报文协议详解
- iso8583 协议详解
- ISO8583报文协议详解
- ISO8583报文协议
- ISO8583协议理解
- ISO8583报文协议详解
- ISO8583报文协议
- ISO8583报文协议
- 全面掌握ISO8583报文协议
- 轻松掌握ISO8583报文协议
- 使用定制开发的CHROME内置集成SSH功能实现代理
- Singleton pattern
- CPLEX使用中的一点经验总结(一)
- struts2教程:11、请求参数接收
- Struts2返回JSON数据的具体应用范例
- ISO8583协议总结
- 意外!玩枪过程中的意外 真的很意外
- Linux:将java代码打包成可执行的jar包
- C#静态类、静态构造函数,类与结构体的比较
- 在浏览器地址栏运行javascript
- vpn route
- 触须避障程序
- 【Android游戏开发之八】游戏中添加音频-详解MediaPlayer与SoundPoo!并讲解两者的区别和游戏中的用途!
- 使用c# 根据IP 获取物理地址