8583报文解析(二)

news2024/9/29 3:25:19

参考 Demo:https://github.com/WTCool666/Iso8583/tree/master

一、【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字节)+报文数据域。


在线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 6000160000 602200000000 0200 7020000020C08000 19062051320000000261206000000000000200000000733706205132000000026120d191120100000000003030303031313131313032323530313533313131313131015600

报文长度:00 5A=90个字节

TPDU:60 00 16 00 00

Header:60 22 00 00 00 00

ISO8583Msg:信息类型0200 + 位图7020000020C08000+ 各域数据。

由位图数据可得域是 2 3 4 11 35 41 42,再看规范中的各域信息定义可知:

0111000000100000000000000000000000100000110000001000000000000000

2 3 4 11 35 41 42

Len: 005a
TPDU: 6005010000
Head: 602200000000
MsgType: 0200
BitMap: 7020000020c08000

[field:2] [len:19] [06205132000000026120]

[field:3] [600000]

[field:4] [000000020000]

[field:11] [000073]

[field:35] [len:37] [06205132000000026120d19112010000000000]

[field:41] [3030303031313131]

[field:42] [313032323530313533313131313131]

[field:49] [015600]

二、报文结构

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位的位图。

将上面的位图转换成二进制,为:

111000000100000000000000000000000100000110000001000000000000000

不足64位,前面补0,为:

0111000000100000000000000000000000100000110000001000000000000000

现在看是数了,能够看出2、3、4、11、 35、 41、 42、 49这些位置是1.则表示在8583报文中,的2、3、4、11、 35、 41、 42、 49域是传输了数据的。

3、报文数据域

在解读数据域之前,你应该先了解报文的数据类型和代表符

三、8583报文的相关知识

位:二进制中,一个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位变长数字或字符、特殊字符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2167182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

爆了爆了!清华大学出版《自然语言处理:原理、方法与应用》自然语言处理直通车!

今天给大家介绍一本重量级大模型书籍 《自然语言处理&#xff1a;原理、方法与应用》 《自然语言处理&#xff1a;原理、方法与应用》 是由王志立、雷鹏斌、吴宇凡合著的一本专业书籍&#xff0c;于2023年3月由清华大学出版社出版。这本书系统地阐述了自然语言处理&#xff08…

《虚空混蛋》风灵月影修改器进阶教程:掌控宇宙,肆意遨游星海

在《虚空混蛋》的浩瀚星际中&#xff0c;想要成为无畏的宇宙海盗&#xff0c;风灵月影修改器将是你的秘密武器。 下面的指南将揭示如何巧妙使用修改器&#xff0c;为你的星际征程插上翅膀。 1.准备工作&#xff1a; 从官方渠道获取最新版《虚空混蛋》风灵月影修改器并安装。确…

UnityHub下载任意版本的Unity包

1)先打开 // 也可以采用2直接打开 2)也可以直接打开 下载存档 (unity.com) 3)关联起来UnityHub即可

脚本命令类恶意代码——VBS混淆脚本分析方法

语法使用 控制流语句 分析恶意代码时&#xff0c;掌握条件语句和循环语句的工作原理及解混淆的技巧非常重要&#xff0c;因为恶意代码的作者通常会使用这些方法来复杂化代码逻辑、隐藏恶意行为并增加对分析人员的困难。 条件语句 If...Then...Else语句 If...Then...Else语…

【H2O2|全栈】关于CSS(7)CSS基础(六)

目录 CSS基础知识 前言 准备工作 元素的显示与隐藏 display visibility 元素不透明度 RGBa 十六进制 opacity 元素的溢出属性 元素的滚动条 居中布局 盒子水平居中 盒子垂直居中 盒子中心居中 网页的部分结构 顶部导航的编写技巧 轮播图的编写技巧 预告和…

压缩文件被加密?暴力拆锁!让加密文件无处遁形!

压缩包密码忘记了怎么办&#xff1f; 可以使用解密文件密码恢复软件&#xff0c;将可能存在的字符勾选&#xff0c;就可以进行密码恢复了 类似Ziperello&#xff1a; 选择你需要解密的zip压缩包后&#xff0c;勾选密码字符&#xff0c;如果完全忘记了密码&#xff0c;可以将其…

maven打包出现java.lang.OutOfMemoryError: Java heap space

&#x1f306; 内容速览 &#x1f315; 报错信息&#x1f315; 解决办法 &#x1f315; 报错信息 通过maven打包语句&#xff1a;mvn clean package -DskipTests -Ddockerfile.build.skip -Ptest -T 12 打包的时候出现报错java.lang.OutOfMemoryError: Java heap space&#xf…

关于 GitHub 的奇技淫巧

介绍下多年来使用 GitHub 所了解到的技巧 ‍ 学会看文档 如何学习使用 GitHub 呢&#xff1f;最好的方式就是&#xff1a;阅读官网文档。 官方文档通常比任何教程都 全面、权威、准确。网上教程和文章满天飞&#xff0c;但都是建立在官方文档的基础上&#xff0c;一旦官方文…

B站UP主视频素材去哪找?如何下载爆款视频素材?

大家好&#xff0c;今天我们来聊聊B站UP主们常用的视频素材来源。制作视频的朋友们都知道&#xff0c;寻找优质素材不仅费时&#xff0c;还很重要。但好的素材能让你的视频瞬间提升档次。以下是一些推荐的网站&#xff0c;帮助你找到并下载精彩的视频素材。 蛙学网 蛙学网提供了…

为什么美联储降息和我国刺激措施可能提振铜价

美联储降低利率通常对铜价产生积极影响。这主要是由于利率与美元汇率之间的关系。当美联储降息时&#xff0c;往往会使美元对其他货币贬值。 由于全球市场上的铜价是以美元计价的&#xff0c;美元走弱会使用其他货币购买的金属价格更便宜。这可能刺激来自国际买家的需求&#x…

力扣 简单 876.链表的中间结点

文章目录 题目介绍题解 题目介绍 题解 法一&#xff1a; class Solution {public ListNode middleNode(ListNode head) {ListNode cur head;int n 0;while (cur ! null) {n;cur cur.next;}ListNode curr head;for (int i 0; i < n / 2; i) {curr curr.next;}return …

一个基于共享内存的内存数据库:4 编程参考

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

Jenkins配置Git和Maven

1、Git设置 1、上传文件 将git压缩包上传到服务器上 2、解压压缩包 tar -zxvf git-2.33.0.tar.gz 3、安装所需依赖 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 【输入 y 】 【报错】 执行“安装所需依赖”的命…

Spring Cloud 工程搭建服务注册_服务发现

文章目录 Spring Cloud 工程搭建服务拆分示例数据库工程搭建构建父子工程创建父工程创建子项目完成两个接口 远程调用实现添加ProductInfo字段定义RestTemplate修改OrderService 服务注册/服务发现 - Eureka注册中心CAP理论常见的注册中心ZookeeperEurekaNacos Eureka 介绍搭建…

双十一好物清单分享?五款超值的数码好物分享!

双十一马上就来啦&#xff0c;大家是不是都等着在这个时候买点好东西呀&#xff1f;数码产品可是咱们生活里少不了的&#xff0c;能让咱们的生活更方便、更有意思。我这儿给大家挑了五款特别值的数码好东西&#xff0c;准备来跟大家分享分享&#xff01;快来看看有没有你中意的…

构建Spring Boot在线购物商城

第1章 绪论 1.1 课题背景 当今社会是一个互联网的社会,随着互联网的发展,信息数字化时代已经来临。互联网已经成为了新的风口&#xff0c;百度、阿里巴巴、腾讯则是中国互联网公司中的领头羊&#xff0c;互联网拉近了人与人之间的距离&#xff0c;同时也让我们的生活变得更加便…

sheng的学习笔记-AI-时序差分学习

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 强化学习&#xff1a;sheng的学习笔记-AI-强化学习&#xff08;Reinforcement Learning, RL&#xff09;-CSDN博客 蒙特卡罗强化学习&#xff1a; sheng的学习笔记-AI-蒙特卡罗强化学习-CSDN博客 什么是时序差分学习 时序…

夹耳式耳机值得购买吗?5个专业总结夹耳式耳机坑点!

夹耳式耳机近年来备受消费者喜爱&#xff0c;尤其是在追求健康生活方式的大背景下&#xff0c;这种类型的耳机因其开放式的聆听体验而受到青睐。然而&#xff0c;伴随着市场的火爆&#xff0c;关于夹耳式耳机是否真的如厂商所宣称的那样出色&#xff0c;也引发了不少讨论。尽管…

[遇到问题] Word中插入公式横线“-”变成了长连字符

1 一招解决Word里公式减号/短横线&#xff0c;在关闭word后变成连字符_word中公式短横线变成了减号-CSDN博客 2 选中横向-公式-文本&#xff08;公式文本化即可&#xff09;

Leetcode 706. 设计哈希映射

1.题目基本信息 1.1.题目描述 不使用任何内建的哈希表库设计一个哈希映射&#xff08;HashMap&#xff09;。 实现 MyHashMap 类&#xff1a; MyHashMap() 用空映射初始化对象void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映…