银联银行卡交换系统8583报文解析

ISO 8583报文 ISO 8583包(简称8583报文),金融交易卡原始电文-交易电文规范,是一个由国际标准化组织为其定义了消息格式和交易流程,以便于不同的系统能够交换交易请求和响应信息。8583报文交融交易信息数据包由消息类型、位图和按位图描述的顺序排列的数据系列组成。 (1).消息类型是一个4位数字的数字型字符,用来描述每一个交易信息的类别和功能,其中前两位数组标明信息类别,如授权信息、金融交易信息、管理信息 阅读详情
AI摘要

本文深入探讨了8583报文在银联银行卡交换系统中的应用,涵盖报文结构、位图解析及具体实例分析,适用于初学者快速上手。

前言

最近在做8583报文这块解析,也遇到一些坑。下面将会介绍自己学习和了解8583报文这块的经验,希望可以帮到那些刚刚接触8583报文的同学们。

入门

首先我们需要知道的是我们的8583报文是基于POS(销售终端的)还是基于银联银行卡交换系统的报文。网上有很多关于POS终端系统8583解析相关的文章,但是关于银联银行卡交换系统的报文很少。所以本文介绍的是基于银行银联卡交换系统8583报文解析的。阅读这篇博客之前,需要读者阅读这篇博客 8583报文基础知识 。

报文的结构

银联银行卡的报文结构包括4个部分,它们分别是报文头、报文类型标志符、位图、报文域,其结构图如下所示:
在这里插入图片描述

  • 报文头
    报文头的组成如下所示:
    在这里插入图片描述
    报文头一共占46个字节,且这些域为必填域。

  • 报文类型标志符

报文类型标志符是有4个定长数字字符组成,这4个定长数字字符表示的是该报文的一个类型,例如0200表示金融请求报文,0210表示金融响应报文。

  • 位图

报文中使用位图来标识报文中有哪些域而没有哪些域,一个报文可以有一个位图或者两个位图。
第一个位图:通常又被称做主位图,每一个报文都有主位图。它是由64个二进制位(即8个字节)组成。位于报文类型标识符之后。8583报文都是16进制数据的报文,所以需要将8个字节的16进制数据转换成二进制数据。转换后除了第一位,每一位和一个域相对应,即和域2到域64相对应。如果一个位为0表示与之对应的域不出现在报文中,反之为1表示与之对应的域出现在报文中。需要注意的是主位图的第一位用来指明在主位图后是否还有第二个位图,第二个位图同样也是64个二进制位(即8个字节)组成。

这里举一个例子加深我们对位图的理解,假设有一个报文的位图数据为F2 3E 40 81 8A C0 80 10 00 00 00 00 10 00 00 C1。解析之前需要知道1 byte = 8 个比特位 ,1字节=2个16进制数。所以主位图的数据8个字节=8对16进制数即F2 3E 40 81 8A C0 80 10,分别转化8位二进制数据为:11110010 00111110 01000000 10000001 10001010 11000000 10000000 00010000 。通过上面我们知道主位图第一位标识是否有第二个位图。这里第一个位为1,故这个报文有2个位图。从主位图第一位后,每一位与一个域对应1表示该域存在,0表示不存在。所以上面二进制数据从2,3,4,7,11,12,13,14,15,18,25,32,33,37,39,41,42,49,60位置都是1,表明与之对应对域对象存在。第二个位图同理可得100,121,122,128位置域都存在。

  • 报文域

通过上面的位图,可以知道报文存在那些域。此时就可以很方便对报文进行解析。可以参考百度对于各个域的介绍百度8583报文域说明,也可以下载银联银行卡交换系统技术规范获取更多关于8583报文域名的信息。

响应报文的解析

解析报文之前,我们需要了解一下ACILL编码对照表因为后面解析会用得着,其编码表如下图所示:
在这里插入图片描述
下面是一个响应的8583报文,这里响应报文是没有报文头的。

30323130F23E40818AC0801000000000100000C13136363232343234323330303030303036393031303030303030303030303130303030303037313730393435343034383037353230393435343030363237313930313037323236303130303030383134333733303230303831343337333032303030303030303438303735323030303130303038202030313030303820202020202020202031353630333030303030303530303036303030303030303030303430313130303030303030383932303130303030303433353143533232303030303034353033313030303030202020303030303030303030303030303030303030303030333030303632303442303539

需要注意的是响应报文组成部分是没有报文头的,解析步骤如下:

  1. 获取报文类型标志符
    报文标志符号是4位的定长数字字符(这4位都是ASCII字符),4个定长数字字符(ASCII字符)= 4对16进制数,所以前四对16进制数据分别为:30 32 31 30,通过查询ASCII码表可知,其分别代表0210。
  2. 解析位图
    主位图数据为F2 3E 40 81 8A C0 80 10,其转化8位二进制数据为:11110010 00111110 01000000 10000001 10001010 11000000 10000000 00010000 。这里第一个位为1,故这个报文有2个位图, 00 00 00 00 10 00 00 C1
    是第二个位图数据。从主位图第一位后,每一位与一个域对应1表示该域存在,0表示不存在。所以上面二进制从2,3,4,7,11,12,13,14,15,18,25,32,33,37,39,41,42,49,60位置都是1,表明与之对应对域对象存在。第二个位图同理可得100,121,122,128位置域都存在。
  3. 解析相关的域
    依照上面的位图信息查阅8583的128的域属性,整体报文域解析如下所示:
30 32 31 30  (报文类型标志符) 
F2 3E 40 81 8A C0 80 10 00 00 00 00 10 00 00 C1 (2个位图)
3136(变长长度为16) 36323234323432333030303030303639    域2
32 31 30 30 30 30 域3
30 30 30 30 30 30 31 30 30 30 30 30 域4
30 37 31 37 30 39 34 36 35 30  域7
34 38 30 37 35 35 域11
30 39 34 36 35 30 域12
30 36 32 37 域13
31 39 30 31 域14
30 37 32 32 域15
36 30 31 30 域18
30 30 域25
3038(变长长度为08) 31 34 33 37 33 30 32 30 域32
3038(变长长度为08) 31 34 33 37 33 30 32 30 域33
30 30 30 30 30 30 34 38 30 37 35 35 域37
30 30 域39
30 31 30 30 30 38 20 20 域41
30 31 30 30 30 38 20 20 20 20 20 20 20 20 20 域42
31 35 36 域49
30 33 30(变长长度为30) 30 30 30 30 30 35 30 30 30 36 30 30 30 30 30 30 30 30 30 30 34 30 31 31 30 30 30 30 30 30 域60
30 38(变长长度为08) 39 32 30 31 30 30 30 30 域100
30 34 33(变长长度为43) 35 31 43 53 32 32 30 30 30 30 30 34 35 30 33 31 30 30 30 30 30 20 20 20 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30  域121
30 31 33(变长长度为13) 31 32 33 31 32 33 31 32 33 31 32 33 31 域122

解析除了128位mac校验码之外(需要获取项目的密钥和加密算法进行解析)其他域解析如下所示。

// fld: 域 [000] 表示0域,[004]表示长度,[0210]表示解析出来的内容。需要注意的是报文没有0域,这里0域名
// 指的是报文的类型标志符
fld[000][004]=[0210]
fld[002][016]=[6224242300000069]
fld[003][006]=[010000]
fld[004][012]=[000000100000]
fld[007][010]=[0717094540]
fld[011][006]=[480752]
fld[012][006]=[094540]
fld[013][004]=[0627]
fld[014][004]=[1901]
fld[015][004]=[0722]
fld[018][004]=[6010]
fld[025][002]=[00]
fld[032][008]=[14373020]
fld[033][008]=[14373020]
fld[037][012]=[000000480752]
fld[039][002]=[00]
fld[041][008]=[010008  ]
fld[042][015]=[010008         ]
fld[049][003]=[156]
fld[060][030]=[000005000600000000004011000000]
fld[100][008]=[92010000]
fld[121][043]=[51CS22000004503100000   0000000000000000000]
fld[122][003]=[000]

请求报文解析

现有一个请求报文如下图所示(请求是有报文头,报文头长度46个字节):

2E 02 30 33 30 34 30 30 30 31 30 30 30 30 20 20
20 34 38 30 31 30 30 30 30 20 20 20 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 
30 30 F2 38 44 81 A8 E0 80 10 00 00 00 00 00 00
00 01 31 36 36 32 32 35 30 30 30 30 30 30 30 30 
30 30 31 34 30 30 30 30 30 30 30 30 30 30 30 30 
30 30 30 30 39 30 31 30 31 34 31 31 34 34 34 36
33 34 38 35 30 37 31 31 34 34 34 36 31 30 31 34 
37 35 33 31 30 32 32 30 30 30 38 34 38 30 31 31
30 30 30 30 38 34 38 30 31 30 30 30 30 32 39 36
32 32 35 30 30 30 30 30 30 30 30 30 30 31 34 3D
33 30 31 30 32 30 31 30 30 30 30 30 31 30 31 34
30 30 30 30 34 39 34 31 30 30 30 30 30 31 39 31
38 30 31 31 31 30 30 37 35 33 31 30 30 30 31 B2
E2 CA D4 C9 CC BB A7 5A 30 30 30 31 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 
20 20 20 20 20 20 20 31 35 36 30 32 37 30 30 30
30 30 32 30 30 30 33 30 30 30 30 30 30 30 30 30 
30 30 30 31 31 30 30 30 43 46 41 46 46 31 43 36
  • 报文头 46个字节=46对16进制数
2E 02 30 33 30 34 30 30 30 31 30 30 30 30 20 20
20 34 38 30 31 30 30 30 30 20 20 20 30 30 30 30
30 30 30 30 30 30 30 30 30 30 30 30 30 30 
  • 报文类型标志符 4字节=4对16进制数
30 32 30 30 
  • 位图
F2 38 44 81 A8 E0 80 10 00 00 00 00 00 00 00 01 

这里可以将上面16进制数据转化为2进制,就如同上面响应报文那样,还有一种简单的方式就是通过使用位图工具解析域,如下图所示:
在这里插入图片描述

  • 根据位图结合域的详细说明来解析结果如下:
fld[000][004]=[0200]
fld[002][016]=[6225000000000014]
fld[003][006]=[000000]
fld[004][012]=[000000000090]
fld[007][010]=[1014114446]
fld[011][006]=[348507]
fld[012][006]=[114446]
fld[013][004]=[1014]
fld[018][004]=[7531]
fld[022][003]=[022]
fld[025][002]=[00]
fld[032][008]=[48011000]
fld[033][008]=[48010000]
fld[035][029]=[6225000000000014=301020100000]
fld[037][012]=[101400004941]
fld[041][008]=[00000191]
fld[042][015]=[801110075310001]
fld[043][040]=[测试商户Z0001                           ]
fld[049][003]=[156]
fld[060][027]=[000002000300000000000011000]
fld[128][008]=[CFAFF1C6]

下载资源

银联银行卡交换系统技术规范说明文档
8583位图解析工具
Socket发送8583报文工具

8583报文解析1.0 银联规范报文格式8583的拆解和说明,文末附小demo 阅读详情

相关推荐

银联8583报文结构详解及报文解析流程

报文头 | 报文类型 | 位图 | 数据域(字段1~128) |:银联在标准ISO 8583基础上扩展字段(如字段60、62等)。作用:标识后续数据域中哪些字段存在(1表示存在,0表示不存在)。,覆盖字段1~64;(如金额、卡号),部分字段用二进制(如PIN、MAC)。字段42:123456789012345(商户号):如字段2(主账号,LLVAR格式,前2位为长度)。共128个字段(部分字段为银联自定义),每个字段的。字段60:021(银联扩展字段,终端类型):如字段52(个人密码,8字节二进制)。

wjianwei666的专栏 990

银联8583报文规范详解

银联8583报文规范详解自己的理解转载的内容 自己的理解 转载的内容 以下来自转载地址 https://www.jianshu.com/p/203ed7f632cf 一.什么是8583报文规范? 1.8583全称: ISO8583包(简称8583包)是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。 2.8583位图: 8583包前面一段为位图,用来确定包的字段域组成情况。 其中位图是8583包的灵魂,它是打包解包确定字段域的关键, 而了解每个字段域的属性则是填写

maqingbin8888的专栏 6491

8583报文解析框架Simple8583.zip

最近在做中国银行的一个快捷支付渠道,使用的是 ISO8583 协议,一开始用的是JPOS框架,但是感觉框架比较臃肿,而且文档也比较少。在等待银行专线的过程中,自己闭门造车做了一个简单的8583报文解析框架 —— Simple8583,将程序重写了一遍,渠道中的代码量少了不少,这几天中行的接口在测试环境终于调试完成了。抽空分享一下这段时间自己学到的知识。 数据类型与编码格式: 根据接触到的数据类型将数据分为如下几种类型:          CHAR(asc编码,直接使用字符串的getBytes(ENCODING)方法获取字节数组)   BINARY(二进制编码,在打包时将8位01值组装为一个字节),             NUMERIC(BCD编码,即8421码),                LLVAR(变长域,采用ASC编码,每个LLVAR类型的域前会有1字节的域字节长度,表示长度的字节用BCD编码表示)                LLLVAR(变长域,与LLVAR域类似,不同之处在于每个LLLVAR域前会有2字节的域字节长度,长度同样以BCD编码表示)             LLVAR_NUMERIC(变长域,采用BCD编码,前有1字节的长度,长度为域值的长度,而非字节长,如域值为123456,编码后长度为3字节,但是表示域长的字节值为6)       如果用到其它数据类型可以在IsoType中进行添加,并在IsoField中添加处理操作 BitMap:        BitMap是ISO8583报文的精髓所在,ISO8583报文支持64域和128域两种,但是并非每次请求都会将所有域都请求过去,BItMap就起到了标识哪些域是有效的请求域,接收方也会根据BitMap中约定的值对域进行解析。   那么BitMap又是如何工作的呢?          首先,BItMap分为8字节和16字节两种情况,分别表示支持64域和128域,其第一位值为1,表示BitMap为16字节,否则为8字节。       其次,BitMap中的每一位对应数据域的第几域,有效域会置为1,比如01001000表示第二域和第5域为有效位。 在Simple8583中具体的实现是通过BitMap类实现的,具体可参考源码。 mti:            mti即 message type identifier消息类型标识,为4位bcd编码的数字标识符,用于描述信息的类型。 同一个mti可以用于标识多个不同的交易,比如一般常用的0200可以用来表示消费交易,消费撤销,分期付款消费和分期付款撤销,但是对于同一个mti标识的数据域类型定义是类似的。           具体的实现,我将Simple8583的xml文件设置为了两部分,一部分为公用的报文头,如msgLength,tpdu,bitmap等,另外一部分分按照mti的不同分为多个package体。 粗略的实现流程:          1)组装请求的Map数据(只组装需要的数据域,key值为对应的数据域或包头的值)          2)请求数据进入SimpleClient代理,SimpleClient根据传入的值解析xml文件(jaxb实现,做了缓存)          3)根据传入值的mti寻找对应的IsoPackage类,对找到的IsoPackage类进行clone(避免污染),对clone值中的域进行值处理和格式化         4)生成BitMap,计算Mac值(如有)          5)使用ByteArrayOutputStream将组装成的IsoPackage域值进行拼装成为一个大的byte数组,在byte前拼装两个字节的长度          6)通过Socket将数据发送并接受响应(读取前两个字节长度,根据长度获取其剩余报文),根据IsoPackage解析报文域,解析得到BitMap后根据BitMap对数据域进行解析,并将值都放入到对应的field中          7)将数据都放在Map中返回,并进行MAC校验(如有) 标签:Simple8583

银联银行卡8583报文

银联银行卡8583报文

qq_41201304的博客 5620

银联8583报文解析工具

VB做的一个比较实用的小工具,对银联终端8583报文进行解析(详细到各TLV的解析),还额外增加了相关的辅助功能,计算mac,解析清算文件等

STM32_WS2811驱动

STM32的WS2811驱动

健身房 2839

8583报文解析

8583报文解析流程

qq_53837461的博客 3753

疑难问题(二)——PyTorch 2.3.0 ‘import torch‘ 错误排查:深入解析‘shm.dll‘加载失败与系统路径修复

本文深入解析了在Windows系统上安装PyTorch 2.3.0后,执行'import torch'时遇到的'shm.dll'加载失败错误(OSError)。该问题通常源于系统DLL搜索路径缺失,导致无法找到关键的共享内存通信组件或其依赖项。文章提供了核心解决方案:通过手动修改PyTorch的`__init__.py`文件,将用户基目录下的Library\bin路径添加到DLL搜索列表中,从而从根本上修复此导入错误,并给出了详细的修改步骤和验证方法。

weixin_29056865的博客 305

8583报文解析(二)

现在看是数了,能够看出2、3、4、11、 35、 41、 42、 49这些位置是1.则表示在8583报文中,的2、3、4、11、 35、 41、 42、 49域是传输了数据的。前面10个字节的BCD码(也就是20个BCD码,亦是20个数字)表示报头,在上面报文中报头是在POS中心返回的应答报文中,由POS中心填入处理要求,其他域保持原值返回,POS将根据收到报文头中的处理要求进行相应处理。代表变长,若x为技术,则自动补0,凑足一个bcd码。

weixin_44538423的博客 2332

最新版IAR9.40和注册工具

IAR最新版的IDE在编译速度和代码提示等各个方面上都有很大提升,软件这个东西果然还是越新越好。之前的时候,IAR v9系列网上很多人都说能用,但是又没有把 IAR v9系列的注册方法写的很清楚,导致我一直都用注册老版本v8的方法去注册v9。结果注册后都会提示。

xue_nuo的博客 4万+

西门子S7-1200与汇川SV660F伺服Profinet通讯调试实战

在工业自动化领域,Profinet作为工业以太网标准协议,凭借其高实时性和灵活组网能力,已成为伺服驱动器与PLC通讯的主流选择。其核心原理是通过设备名识别、IP分配以及标准报文(如111速度报文、105定位报文)传输控制字与状态字,实现驱动器的精准控制。相比传统脉冲或CANOpen方案,Profinet直连省去了协议转换网关,降低了成本与故障点,尤其适用于绕线设备、包装机械等中小型单轴或多轴运动控制系统。本文以西门子S7-1200 PLC搭配汇川SV660F伺服为例,完整梳理了从GSDMD组态、InoDri

weixin_29184371的博客 222

银联iso8583协议报文解析

四个位表示一个bcd码(可以理解成八进制数中1位)八个位表示个字节(可以理解成十六进制数中1位)ANS..6:6位变长数字或字符、特殊字符。ANS4:4位定长数字或字符、特殊字符。ANS6:6位定长数字或字符、特殊字符。AN..6:6位变长数字或字符。二进制中,一个0或1,表示位。AN4:4位定长数字或字符。AN6:6位定长数字或字符。N..6:6位变长数字。

东皋长歌的专栏 2444

广义S变换在MATLAB中的仿真

广义S变换是对信号进行时频分析的一种方法,它基于短时傅里叶变换(Short-Time Fourier Transform,STFT)和小波变换(Wavelet Transform)。广义S变换将信号分解成时频平面上的一系列矩形框,每个框内的数值表示相应时刻和频率下信号的能量。本文将介绍如何使用MATLAB进行广义S变换的仿真,并提供相应的源代码。函数,我们可以方便地计算信号的广义S变换,并获取时频平面上的时域和频域信息。广义S变换在信号处理和相关领域中具有广泛的应用,可以用于分析和处理各种类型的信号。

CodeNexus的博客 1119

8583报文举例解读及推荐阅读

一、推荐阅读 https://www.cnblogs.com/fenglan/p/6088690.html 这篇博客生动形象的解释了8583报文,首先推荐给之前一点都不了解8583报文的同学。 然后参照了下面博客,尝试自己理解 https://blog.youkuaiyun.com/cbacq/article/details/51495593 若阅读了以上篇博客,还有不懂的,再来看看本文,看能否有一...

松子落 5640

RK3568平台(camera篇) MPP编码

同芯片的差异,为使用者提供统一的视频媒体处理接口(Media Process Interface,缩写 MPI)。瑞芯微提供的媒体处理软件平台(Media Process Platform,简称 MPP)是适用于瑞芯微芯片系列的。mpi_enc_test 的命令参数中,图像宽度(w)图像高度(h),码流类型(t)为强制要求参数,其他参。视频拷贝,缩放,色彩空间转换,场视频解交织(Deinterlace)数如输入文件(i),输出文件(o),编码帧数(n)等为可选参数。设置一些MPP的模式。

weixin_49303682的博客 7379

华为OD机试真题 新系统2026-04-15 Java&Go 实现【小猫钓鱼纸牌游戏】

有两名玩家甲和乙,他们玩一种“小猫钓鱼”扑克牌游戏。扑克牌为A、2、3、....J、Q、K,不考虑花色都用1-13来表示,然后给甲,乙两人各发n张牌,按给定顺序排成队列,这些牌背面朝上,正面朝下放置,队列的第一个元素是背面的第一张牌。 游戏规则如下:

MISAYAONE的博客 350

第一章 银联8583报文解析

1报文格式定义 POS终端上送POS中心的消息报文结构包括TPDU、报文头和应用数据三部分: —— TPDU说明:长度为10个字节, 压缩时用BCD码表示为5个字节长度的数值。 —— 报文头说明:总长度为12字节,压缩时用BCD码表示为6个字节长度的数值。 在POS上送的请求/通知报文中,该数值由POS终端应用程序在打包上送时根据POS终端参数和当前状态填入应用类别、软件总版本号、终

QQ282881515的专栏 2万+

【网络安全】浅谈数据库攻击复现及相关安全优化

4、准备数据库服务器为了安全正式环境应该把数据库单独放一台服务器,只允许让应用服务器 IP 来访问数据库服务器,通过独立两者,就算其中一台发生问题,另一台也是好的,进一步降低了危险性。5、定时备份数据库开发定时备份功能,可以使用 Crontab,或者其他框架,设定周期备份数据,哪怕是数据丢失或被删除也可以快速恢复。

2401_88545587的博客 221

ISO8583包简介(一)

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

weixin_44538423的博客 2680

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

8583报文的使用和解析

ISO8583报文(简称8583包)又称8583报文是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。 8583包前面一段为位图,用来确定包的字段域组成情况。 其中位图是8583包的灵魂,它是打包解包确定字段域的关键,而了解每个字段域的属性则是填写数据的基础。在POS机的开发上时经常要用到,例如回头客会员管理系统在POS机上的应用就是采用85...

amdixuxl14849的博客 2162

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

目前常用的报文格式

以下简单介绍了常见的三种报文格式:8583、XML、HTTP; 1. ISO8583 字段数据类型:字母、数字、特殊字符、年月日等时间、二进制数据; 8583报文为了解决网络带宽的问题,引入包头,即在报文前面加上包头,我们用16个字节,即128个bit(一个字节等于8bit)来表示128个字段中的某个字段是否存在。每个bit在计算机的二进制里面不是1就是0,如果是1就表示对应的字段在本次

bd0806的专栏 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

8583报文详细分析

不要以为我这篇文章是告诉你什么是8583,告诉你map的原理,然后分析各个域是什么意思,格式如何, 再有详细一点的甚至告诉你如何写程序等等. 不是, 之所以不写上面这些,基于两点: 1 太多的人写这些了, 网上一搜8583,出来的文章都是关于这些的. 2 作用不大, 因为这些规范上都有, 大家一看规范就明白了, 我写了也是无用. 我篇文章适合两类人看: 1 对8583报文非常熟悉...

lucasma的博客 6万+

8583报文手动组包——详细分析每个示范域

8583报文作为一种应用较广的报文,有它独特的格式。 网上有关8583报文的说明很多。但涉及到每个域的详细例子就较少了。这里列出各个域的详细例子,供参考。 8583报文: 报文组成: 报文头【长度(2字节)+TPDU(5字节)+报文版本号(2字节)】+信息类型+位图+数据 TPDU: 6000100000 报文版本号:0100 信息类型:0080  报文长度:整体报

双斧狂暴战专栏 1万+

Java版ISO8583报文组包/解包

文章目录一、8583协议简介二、位图规则三、8583格式报文参考四、组包/解包思路五、相关代码 一、8583协议简介   8583协议是基于ISO8583报文国际标准的包格式的通讯协议,8583包最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。8583包前面一段为位图,它是组包解包确定字段域的关键索引。 二、位图规则   位图是8583报文组包和解包的关键。我们将位图转换为二进...

晓呆同学的专栏 5949

银联ISO8583报文格式、组包和解包过程、TPDU、位图计算

8583:8583协议是基于ISO8583报文国际标准的包格式的通讯协议,8583包最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。8583包前面一段为位图,它是打包解包确定字段域的关键代替。8583协议多在POS机的开发上使用。TDDU:TPDU,全称Transport Protocol Data Unit,是指传送协议数据单元。代表从一个传输实体发送至另一个传输实体的消息。位

王涛的博客 1万+
上一篇: IBMMQ在window与Linux环境搭建详细步骤
下一篇: JDK在window、macos、linux系统下的安装与配置
Galen-gao
博客等级 码龄9年 931粉丝 137原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值