【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
【8583】ISO8583报文解析的更多相关文章
- ISO8583报文解析
		在此只写了一个8583报文的拆包,组包其实也差不多的. 不多说直接上文件, 具体思路过程,在解析类里面写的有. 其中包含了四个文件 8583resp.txt报文 ISO8583medata配置文件 B ... 
- [性能测试]:ISO8583报文解析实例
		现在我们有ISO8583报文如下(十六进制表示法): 60 00 03 00 00 60 31 00 31 07 30 02 00 30 20 04 C0 20 C0 98 11 00 00 00 0 ... 
- 银联ISO8583报文解析过程
		主密钥: aabbccddeeff11223344556677889900 1.从签到报文中获取工作密钥,包括MACKEY明文,PINKEY明文 签到: 12-03-31 16:38:09----&g ... 
- (转载)解析ISO8583报文实例
		本篇文章参考了中国银联POS终端规范,所以如有不明白的可以去我的资源里面下载. 现在我们有ISO8583报文如下(十六进制表示法): 60 00 03 00 00(前五个字节为TPDU) 60 31 ... 
- 解析ISO8583报文实例
		http://www.cnblogs.com/1971ruru/archive/2012/12/10/2811549.html 本篇文章参考了中国银联POS终端规范,所以如有不明白的可以去我的资源里面 ... 
- ISO8583报文协议
		最开始时,金融系统只有IBM这些大的公司来提供设备,象各种主机与终端等.在各个计算机设备之间,需要交换数据.我们知道数据是通过网络来传送的,而在网络上传送的数据都是基于0或1这样的二进制数据,如果没有 ... 
- 轻松掌握ISO8583报文协议
		http://www.itpub.net/thread-419521-1-1.html 我刚进入金融行业时,就知道了IS08583报文协议,我想可能我还没进入这个行业都已经听过了,可知ISO8583的 ... 
- 报文解析及CRC类
		/// <summary> /// 报文解析转换类 /// </summary> public class DatagramConvert { public static En ... 
- 基于DPI(深度报文解析)的应用识别
		一.概述 1.DPI(Deep packet inspection,深度报文解析) 所谓“深度”是和普通的报文分析层次相比较而言的,“普通报文检测”仅分析IP包4 层以下的内容,包括源地址.目的地址. ... 
随机推荐
- linux之getopts
			在编写shell脚本中,经常要处理一些输入参数,在使用过程中发现getopts更加方便,能够很好的处理用户输入的参数和参数值. getopts用于处理用户输入参数,举例说明使用方法: while ge ... 
- 人工智能_4_k近邻_贝叶斯_模型评估
			机器学习常用算法 k近邻算法 求出未知点 与周围最近的 k个点的距离 查看这k个点中大多数是哪一类 根号((x已知-x未知)^2+(y已知-y未知)^2) 即平面间2点距离公式 收异常点影响较大,因此 ... 
- 多线程--volatile
			在解释volatile关键字之前,先说说java的指令重排以及代码的执行顺序. 指令重排: public void sum(){ int x = 1; int y = 2; int x = x + 1 ... 
- Python 嵌套列表解析
			将一个3*4矩阵转为4*3矩阵Matrix = [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12],]afterMatrix = [[row[i] for ro ... 
- insmod: can't insert 'xxx.ko': unknown symbol in module, or unknown parameter
			手动加载内核模块时候,报如下错误信息 insmod: can't insert 'xxx.ko': unknown symbol in module, or unknown parameter 问题原 ... 
- Kubernetes的初始化容器initContainers
			initContainers是一种专用的容器,在应用程序容器启动之前运行,可以包括一些应用程序镜像中不存在的实用工具和安装脚本,可以完成应用的必要数据初始化等工作.总的来说就是在正式的容器启动之前做一 ... 
- linux-2.6.38poll机制简析(以tiny6410按键中断程序为基础)
			一.应用程序 /* struct pollfd { int fd; //文件描述符 short events; //表示请求检测的事件 short revents; //表示检测之后返回的事件 }; ... 
- TensorFlow 拾遗
			1..Here None in placeholder means that a dimension can be of any length. 2.. 3.. 4.. 5.. tf.mul ... 
- zencart价格筛选插件
			1.首先,新建文件includes\modules\sideboxes\price_range.php <?php function zen_count_products_in_price($p ... 
- flask调试模式
			想要启用调试模式,发现安装目前网上流行的两种方式均无法在Pycharm中打开调试模式. 1)直接在对象上设置 flask 更新到1.0以后 不支持使用debug =True 来开启调试模式了. Pri ... 
