粗略解释8583金融报文

注意:(此文章是以小白之眼来看的,如有资深人士发现错误欢迎指正交流)

8583协议是基于ISO8583报文国际标准的包格式的通讯协议,主要是用来解决金融系统之间的报文交换的,说白了就是信息数据的传递。一般使用的是64域报文,最长到128域。

首先明白8583报文细分来有6个部分:

长度

TPDU

报文头

消息类型

位图

数据(8583)

在说报文之前要了解两个东西

(1)BCD码:二进码十进数,用4位二进制数来表示1位十进制数中的0~9这10个数码。

如:BCD码表示TPDU  6000160000  "60h,00h,16h,00h,00h"(5个字节).

ASCII码:ASCII大家一定都很了解,在报文中多次使用的ASCII码,现将数据对照ASCII码表转换成ASCII码,再转换成16进制数,就是最终数据。

如:ASCII码表示TPDU 6000160000 用ASCII码表示6对应54,1对应49,0对应48 将其转换为16进制可表示为"36h,30h,30h,30h,31h,32h,30h,30h,30h,30h"(10个字节).

到此应该对这两种编码有所了解,在报文中两种码都有使用到

理解说明还是直接拿例子说事,更加明了

如例:

0080600016000060220000000002007020000020C0820019062051320000000261206000000000000200000000733706205132000000026120d191120100000000003030303031313131313032323530313533313131313131015600449f260892b6ae9a9b102ed69f2701809f101307010103a0a010010a010000001037513a22be

长度说明:长度指的是TPDU+报文头+消息类型+位图+数据的总长度。

如:0080 就表示这段报文的长度,是使用16进制数表示的0076(16进制)--123(10进制)---128个字符---256字节

TPDU说明:长度为10个字节,压缩时用BCD码表示为5个字节长度的数值。(每个银行,对应的TPDU值各不相同,接入银行时,相应的银行会提供相应值的)

如:6000160000

报文头说明:总长度为12字节,压缩时用BCD码表示为6个字节长度的数值。

如:60 22 0 0 000000

磁条卡金融支付类应用为:60
软件版本号             22
终端状态               0(正常交易状态)
处理要求               0(无处理要求)
保留使用               000000

消息类型说明:0200(只是截取了一部分便于理解,了解更多的话,去查查资料)

0200/0210  金融类请求/应答报文

余额查询请求/应答

取现请求/应答

存款请求/应答

存款撤销请求/应答

位图说明:bit map域, 指示哪些域存在, 容易计算出, 位图是使用16进制数表示的,最终转为2进制,可以看出哪些域中存在数据。

70 20 00 00 20 C0 82 00

将位图转化为二进制为:

0111000000100000000000000000000000100000110000001000001000000000

第几位中存有数据则改为表示为1,使用64时第一位为0,当使用延长域是第一位表示为1也就是128域

所以上面的位图中几个域存在:2, 3, 4, 11, 35, 41, 42, 49, 55.

数据说明:

<19 06 20 51 32 00 00 00 02 61 20>
field 2, 账号, n..19, LLVAR, 一字节表示长度(19), 账号是19位, 前面补0后, 用10字节BCD表示.

2域是BCD表示的,所以实际存在2域中的数据是19位,但是在存储时是BCD码所以在末尾补0,截取的时候需要截取20位。

<60 00 00>
field 3, 处理码, n6, 定长, 用3字节BCD表示

<00 00 00 02 00 00>
field 4, 交易金额, n12, 定长, 用6字节BCD表示, 这里的金额是200.00元

<00 00 73>
field 11, 流水号, n6, 定长, 用3字节BCD表示.流水号为"000073".

<37 06 20 51 32 00 00 00 02 61 20 d1 91 12 01 00 00 00 00 00>
field 35, 二磁道数据, z..35, LLVAR, 一字节表示长度(37), 后面是19字节BCD表示的磁道数据

<30 30 30 30 31 31 31 31>
field 41, 终端号, ans8, 定长, ASCII表示, 这里终端号为"00001111"

<31 30 32 32 35 30 31 35 33 31 31 31 31 31 31>
field 42, 商户号, ans15, 定长, ASCII表示, 这里商户号为"102250153111111"

<01 56>
field 49, 货币代码, n3, 定长, 前面补0后,用两字节BCD表示, 这里货币代码为"156"

<00 44 9f 26 08 92 b6 ae 9a 9b 10 2e d6 9f 27
01 80 9f 10 13 07 01 01 03 a0 a0 10 01 0a 01
00 00 00 10 37 51 3a 22 be>
field 55, 这是IC卡交易的相关数据, 最大长度是255, 这一域用的IC卡数据一般在PBOC/EMV规范里
都有自己的定义(包括格式), 所以,一般在报文里的格式跟它们在PBOC/EMV里定义的一致.一般是TLV(tag+lenght+value)表示一个数据.简单介绍一下数据的意义.

"00 44":长度, 表示44个字节
"9f 26 08 92 b6 ae 9a 9b 10 2e d6":应用密文(application cryptogram), TLV, b8
"9f 27 01 80":密文信息数据(cryptogram information data), TLV, b1

"9f 10 13 07 01 01 03 a0 a0 10 01 0a 01 00 00 00 10 37 51 3a 22 be":
发卡行应用数据(issuer application data), TLV, 变长,最大32字节. b..32.

最后想要说明:8583报文128域中的数据存储方式有四种分别是:1-int,2-binary 3-ASCII码/*一个ascii码占两个偏移量 长度*2

当存储方式为ASCII时,数据的长度需要*2,当为变长域时,存储的长度也是长度的1/2,这是针对组成代码来说的。

目前我的理解就这么多,通俗易懂的写出来。

如有不明白或者需要解析合成代码的私聊我。

java8583报文解析及生成,粗略理解相关推荐

  1. 8583 报文解析过程

    一. 全局概述 1. <多渠道平台接入接口规范>这个标准规定了各种接入端(主要包括直联多渠道平台的终端, 包括这里主要关注的POS机)与中国银联多渠道平台之间进行联机交易时使用的报文接口, ...

  2. rtsp协议报文解析-首部字段解析

    前言 网上关于rtsp的文章很多,但大多是抽象的理论介绍,从理论学习到实际上手开发往往还有一段距离.然而,没有实际开发经验的支撑,理论又很难理解到位. 本系列文章将从流媒体协议的基础原理开始,通过抓包 ...

  3. 支付系统设计三:渠道网关设计02-客户端报文解析

    文章目录 前言 一.后台配置管理 1.1 渠道配置 1.1.1 渠道基本信息新增 1.1.2 渠道交易类型配置 1.1.3 渠道商户信息配置 1.1.4 账户配置 1.1.5 交易类型机构配置 1.2 ...

  4. 基于DPI(深度报文解析)的应用识别

    一.概述 1.DPI(Deep packet inspection,深度报文解析) 所谓"深度"是和普通的报文分析层次相比較而言的,"普通报文检測"仅分析IP包 ...

  5. 20201217-IP报文解析

    20201215-IP报文解析 {1}报文结构 ![图片.png](https://img-blog.csdnimg.cn/img_convert/718558a49aa5479c6049e1ea7f ...

  6. DPI(Deep packet inspection,深度报文解析)

    DPI(Deep packet inspection,深度报文解析) 正好,有这么一个基于opendpi框架的深度报文分析的工具--ndpi ndpi是在opendpi的基础上编写而来的协议分析工具. ...

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

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

  8. HTTP请求方式和报文解析

    一.概述 最近想尝试写一个关于网络请求的系列文章,将网络请求的基础.使用及网络框架的学习分析总结以下,大致准备从以下几个方面分析: 网络请求的基础 HTTP请求方式和报文解析 Cookie 和 Ses ...

  9. 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:域规 ...

最新文章

  1. 自然语言处理十问!独家福利
  2. springmvc + springboot + mybatis java b2b2c电子商城系统源码...
  3. 自然语言处理工具类数地工厂
  4. python中字符串(比如文件路径)前面有一个r什么意思
  5. 【Ubuntn】Ubuntu随笔
  6. c#匿名方法用途_C#的匿名方法
  7. SQL基础【十、Delete】
  8. jdbc事务 jta事务_将非事务性资源绑定到JTA事务中的几种模式
  9. Spring Cloud构建微服务架构—服务网关过滤器
  10. 量子点发光二极管显示器行业调研报告 - 市场现状分析与发展前景预测
  11. 小马哥讲Spring核心编程思想 第十周 Spring资源管理
  12. 2022年10月24日程序员节日快乐
  13. 如何将pdf转换成txt转换器破解版
  14. css 手风琴_如何创建基于CSS的内容手风琴
  15. python slice函数画高维图_没想到Python还能画六维图
  16. MATLAB,关于SOLVE函数报错的问题
  17. Chrome浏览器设置黑色模式
  18. unisoc常用命令集
  19. codevs 2832 6个朋友 并查集 解题报告
  20. 摄像头在线测试_Leez学院| 面部检测 精准可靠 Leez P515 OpenCV工程测试

热门文章

  1. 李开复: 算法的力量
  2. Office Word离线编辑文档上传Wordpress教程
  3. UG在模具设计中的应用解析
  4. conda channel的镜像设置(设置可用清华源)
  5. 严格冷启动问题的再次尝试AGNN及代码
  6. Android 冷启动耗时,时长统计
  7. 如何获取《非经营性互联网信息服务备案核准》资质文件
  8. 使用EasyExcel 根据单元格数值动态合并单元格
  9. javascript面向对象基本概念
  10. 使MFC窗口的最大化和最小化按钮消失