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

8583包前面一段为位图,用来确定包的字段域组成情况。

其中位图是8583包的灵魂,它是打包解包确定字段域的关键,而了解每个字段域的属性则是填写数据的基础。在POS机的开发上时经常要用到,例如回头客会员管理系统在POS机上的应用就是采用8583报文。

“消费”类型报文的测试和组8583报文的过程,说明一下,这里是针对我们日常使用POS机系统来说的,这里主要是模拟的POS终端发向POSP系统的8583报文。其基本业务流程图如下所示

基础知识:

1byte = 8bit

1byte = 2个16进制数

2个字节=1个字符

BCD码:用4位二进制数来表示1位十进制数中的0~9这10个数码,即1bcd码=4bit

报文结构:

TPDU头 =  ID(60H) + 目的地址(N4) + 源地址(N4),长度为10字节,压缩时用BCD码表示为5个字节长度的数值。

报文头 = 应用类别定义(N2 )+软件总版本号(N2) + 终端状态(N1) + 处理要求 (N1)+ 软件分版本号(N6),总长度为12字节,压缩时用BCD码表示为6个字节长度的数值。

报文长度(2字节)+TPDU(5字节)+报文头(6字节)+域数据(指令码(0域 2字节 消息类型)+位图(8字节)+其他域数据

POS终端上送POS中心的消息报文结构包括TPDU、报文头和应用数据三部分:

16进制报文:

007b 6000160000 602200000000 0200 7020048020c08811

600016000060220000000002007020048020c08811165477666265921222000000000000014959555556022000375477666265921222d25085060000012600000033333333333333333232323232323232323232323232323135361000000000000000000822000001001500000100100000103133394343433842

青色背景:报文长度 007b  如上是246个字节->123个字符->长度是123(10进制)->7b(16进制)->占用两个字节007b

黄色背景:TUDU头 6000160000

红色背景:报文头 602200000000

磁条卡金融支付类应用为:60

软件版本号              22

终端状态                0(正常交易状态)

处理要求                0(无处理要求)

保留使用                000000

灰色背景:消息类型 0200

绿色背景:bitmap位图,转成bit显示, 7020048020c08811

根据文档我们可以轻易的得到需要的域为2,3,4,11,22,25,35,41,42,49,53,60,64域

(6)     2域

165477666265921222(16个字节,最大是19个字节) 主账号

N..19(LLVAR),2个字节的长度值+最大19个字节的主账号,

压缩时用BCD码表示的1个字节的长度值+用左靠BCD码表示的最大10个字节的主账号。

(7)     3域

000000 交易处理码

(8)     4域

000000014959 (149.59CNY 49域可以看出来)

(9)     11域

555556 (系统跟踪号 定长3个字节)

(10) 22域

0220 (服务点输入方式码 刷卡无PIN)

(11) 25域

00 (服务点条件码 00正常提交)

(12) 35域

375477666265921222d250850600000126000000

2磁道数据(Track 2 Data)

2个字节的长度值+最大37个字节的第二磁道数据(数字和分隔符)

压缩时用BCD码表示的1个字节的长度值+用左靠BCD码表示的最大19个字节的第二磁道数据

(13) 41域

受卡机终端标识码

3333333333333333  (33333333 BCD码)

(14) 42域

受卡方标识码

323232323232323232323232323232 (222222222222222 BCD码)

(ANS15,15个字节的定长域)

(15) 49域

交易货币代码

313536(AN3)     (156 BCD码)

(16) 53域

安全控制信息

1000000000000000 (16 BCD个字节)

(17) 60域

60.1交易类型码  22:消费类型

60.2批次号         000001

长度:8个字节

000822000001

压缩时用右靠BCD码表示的2个字节的长度值+用左靠BCD码表示的最大7个字节的数据

(18) 64域

报文鉴别码(Message Authentication Code) MAC

B64,8个字节的定长域

3133394343433842

转载于:https://www.cnblogs.com/yiyi16801/p/7442316.html

8583报文的使用和解析相关推荐

  1. C解析8583报文55域

    以下这段代码是C解析8583报文,我直接从我们系统粘贴出来的,供大家参考.打日志log部分,请自行更改,TAG标签也可以根据你的55域做相应删减. typedef struct {         c ...

  2. 第一章 银联8583报文解析

    1报文格式定义 POS终端上送POS中心的消息报文结构包括TPDU.报文头和应用数据三部分: -- TPDU说明:长度为10个字节, 压缩时用BCD码表示为5个字节长度的数值. -- 报文头说明:总长 ...

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

    前言 最近在做8583报文这块解析,也遇到一些坑.下面将会介绍自己学习和了解8583报文这块的经验,希望可以帮到那些刚刚接触8583报文的同学们. 入门 首先我们需要知道的是我们的8583报文是基于P ...

  4. 《中国银联银联卡受理终端应用规范》笔记(1)银联8583报文解析

    0. 前言 阅读的规范版本为20140404修订版 1. 报文格式说明 POS终端上送POS中心的消息报文结构包括TPDU.报文头和应用数据三部分: TPDU 报文头 应用数据 ISO8583 Msg ...

  5. java 8583报文解析_ISO8583报文工具类(组装和解析报文) | 学步园

    很久没来csdn了.现在的工作地点在银行,妈的,不让上网啊. 写写博客其实是对自己知识的总结,这么长时间了,也该写点东西了.接触银行的项目,避免不了 遇上8583报文.具体介绍就不细讲了,这个网上一大 ...

  6. 8583报文解析1.0

    8583报文解析1.0 文章目录 8583报文解析1.0 一.规则 1.1:域规范简表 1.2:规范说明 1.2.1: 报文头 1.2.2: 操作类型 1.2.3: 位图:有效域明细 1.2.4:域规 ...

  7. Go语言银联8583报文解析库,支持联小额免密付和银商聚合支付

    很早之前就整过一个Go语言版的银联8583报文解析库,当时仅是8583报文的解析. 最近整合了进了银联小额双免交易和银商的聚合支付交易通道,这可以是网上最简单的8583报文解析库了. 银联双免支付通道 ...

  8. 关于8583报文详解

    本文章是对8583报文深入的解析,主要是针对于8583报文已经很熟悉的人 我们来看一段8583报文: 0059600045000060011100000001007024048000C08011166 ...

  9. 理解类8583报文协议

    理解类8583报文协议 编程语言底层之函数执行 https://blog.csdn.net/valada/article/details/79909234 我刚进入金融行业时,就知道了IS08583报 ...

最新文章

  1. Requirement already satisfied 解决方法
  2. 支持全球探测点的新一代网站监控
  3. 怎么关闭win10的自动更新
  4. XMPP协议简单介绍
  5. UI5的货币显示格式的逻辑
  6. python生成器和迭代器区别_生成器、迭代器的区别?
  7. MYsql 安装后启动服务1067错误
  8. svg defs 进行定义 引用
  9. java编译机制_java的编译机制
  10. 力扣693.交替位二进制数
  11. Java 换行和回车
  12. 一个IE动画图标的小例子
  13. 单片机89C51最小系统讲解
  14. java中spilt()方法解释
  15. DNW刷机210步骤和常见问题
  16. 查询课程数mysql_mysql_数据查询练习
  17. ECCV 2022 | MVDG:一种用于域泛化的统一多视图框架
  18. flex布局右列固定左列自适应,遇到white-space nowrap 影响布局超长的问题
  19. 吃鸡自定义服务器在哪买,内马尔沉迷《绝地求生大逃杀》难自拔!申请自定义服务器获官方如此回复...
  20. 基于redis生成日期订单编号

热门文章

  1. 联想原厂预装出厂系统拯救者小新thinkbook扬天yoga昭阳ideapad
  2. ARM STM32F中ADC中 规则通道 注入通道 序列寄存器(SQR JSQR)的使用方法
  3. 传奇手游腾讯服务器和微信哪个好,传奇手游:对于传奇老玩家来说,玩的是氪金PK还是坚持情怀?...
  4. 使用xlsx-js-style表格导出,合计,单元格居中,多级表头合并,添加序号
  5. html网页制作看板娘原理,博客网页上添加live2D看板娘
  6. MyBatis基于XML的详细使用——缓存
  7. linux内核之读写锁rwlock_t使用入门
  8. 【c++基础】int转string自动补零 前缀补零
  9. react 生命周期
  10. 基于ssm技术的手机销售平台的设计与实现开题报告和手机销售系统的设计与实现/电子商城系统/购物系统/销售系统