一、推荐阅读

https://www.cnblogs.com/fenglan/p/6088690.html

这篇博客生动形象的解释了8583报文,首先推荐给之前一点都不了解8583报文的同学。

然后参照了下面博客,尝试自己理解

https://blog.csdn.net/cbacq/article/details/51495593

若阅读了以上篇博客,还有不懂的,再来看看本文,看能否有一些收获。

若还有不懂的,则需要你来补充了。

二、一个完整的8583报文

02 00 70 20 00 00 20 C0 82 00 19 06 20 51 32 00 00 00 02 61 20 60 00 00 00 00 00 02 00 00 00 00 73 37 06 20 51 32 00 00 00 02 61 20 d1 91 12 01 00 00 00 00 00 30 30 30 30 31 31 31 31 31 30 32 32 35 30 31 35 33 31 31 31 31 31 31 01 56 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

三、报文结构

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位变长数字或字符、特殊字符

五、举例解读

此时我们需要找一份8583报文的域列表来对照着解读了

可以参照百度百科:

https://baike.baidu.com/item/8583%E5%8D%8F%E8%AE%AE/5754381?fr=aladdin#4

https://baike.baidu.com/item/8583协议/5754381?fr=aladdin#5

接下来我们分别找到百度百科里,2、3、4、11、 35、 41、 42、 49的说明。

举个例,11域

百度百科里域的说明:

Bit11系统跟踪号(Systems Trace Audit Number)

位图位置:11

格式:定长

类型:N6

结合我们的报文<00 50 18>

field 11, 流水号, n6, 定长, 用6个BCD码(即3字节的BCD码)表示, 流水号为“005018”。

举个例,42域

百度百科里域的说明:

域42 受卡方标识码

变量属性

ans15,15位定长的字母、数字和特殊字符

域描述:受卡方的标识码,即商户代码。

结合我们的报文<30 31 31 30 30 30 30 30 31 30 30 30 30 30 31>

field 42, 商户号,ans15, 定长, ASCII码表示;这里的商户号为:“011000001000001”

这里30用ascii码解读就是0;31用ascii码解读就是1;(自己找一张ascii码对照表解读)

百度百科里域的说明:

Bit35二磁道数据(Track 2 Data)

位图位置:35

格式:LLVAR

类型:Z..37

结合我们的报文 <37 76 89 20 00 10 17 26 45 67 3d 13 08 20 14 78 00 00 00 00>

field 35, 二磁道数据, z..37(LLVAR), 第一个字节表示域的长度(37)。35域是个自定义域。

 z..37(LLVAR)  表示37变长字符. llvar表示用几位数字来表示后面数据的长度。一个L表示以为数此处有两个L,表示有该域的前两位用来表示数据的长度。若有三个L 则应该前面补0,用四位数表示数据的长度,若有四个L,自然也是用四位数字表示数据长度

如z..130(LLLVAR)  <01 30 31 31 30 30 30 30 30 31 30 30 30 30 30 31 ... ...>,则前面四位0130表示数据长度,后面有130位表示数据内容

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

  1. 会讲故事的前物理学家万维钢解读、推荐过的书24本,好书一半

    图片来源:百度百科 最近几年看过的万维钢解读推荐过的书,前20本是得到APP上总结出来的,估计有遗漏,估计仅仅是得到有电子书的部分.后4本是在卖书网站上搜万维钢,结果中标明万维钢推荐的. 按4星.5星 ...

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

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

  3. 8583报文格式介绍

    在金融行业中,经常会用到8583报文,那么到底什么是8583报文呢? 8583是这样的,我举一个简单的例子 以64个域的报文来举例 域是什么我也说不清楚,我来举个例子 你可以把它想象为医院放药的抽屉 ...

  4. 谈谈8583报文的使用及测试

    ISO8583报文在金融行业可谓是声名显赫,8583报文是一个国际标准的包格式,其重要性阿堂就不用多说了,网上有很多的介绍,不过对于一个从未接触过8383报文的新手来说,还是很有难度的.它主要是用来解 ...

  5. 理解类8583报文协议

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

  6. 2012年每周推荐阅读汇总

    2012年下半年,我开始了一项名为"每周推荐阅读"的计划,也就是每周给部门里的同事推荐些文章,拓展一下大家的阅读面,不知不觉已经年底了,因为每次的推荐阅读都不太有反馈,所以本打算在 ...

  7. ISO 8583报文

    ISO 8583包(简称8583报文),金融交易卡原始电文-交易电文规范,是一个由国际标准化组织为其定义了消息格式和交易流程,以便于不同的系统能够交换交易请求和响应信息.8583报文交融交易信息数据包 ...

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

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

  9. 去除《简-书》页面右边《热门故事》,直达《全部评论》《推荐阅读》

    查资料,与主题不相关的完全可以不视不见. 下面任选一篇<简-书>中文章举例 右边 乌七八糟的<热门故事>-- 文末 继续乌七八糟-- 按了四次 PgDn,终于到达<全部评 ...

最新文章

  1. Linux CENTOS7 Linux流量监控工具-iftop 安装过程以及示例!
  2. JQuery dataTable 扩展+Ajax Post,Get一些基本操作(一)
  3. python主要用途-Python能用来做什么?以下是Python的三大主要用途
  4. 【php】(转载)分享一个好用的php违禁词 处理类
  5. WINDOWS故障修复台 免去重装的烦恼
  6. 成功解决UserWarning: Update your `Conv2D` call to the Keras 2 API问题
  7. web APIS
  8. 利用bootstrap框架做了一个采摘节节日活动网页
  9. Centos7 Docker 安装与启动_入门试炼01
  10. startssl申请免费ssl证书
  11. windows常用指令
  12. MyCat分布式数据库集群架构工作笔记0004---Mycat的实现原理
  13. LeedCode Q344 Reverse String(Easy)
  14. 钝化 会钝化 订单审批流程 码一会er
  15. C-Free 3.5.2 注册码
  16. exynos4412,tegra3,msm8960性能对比,参考对照exynos4210
  17. android 分享到新浪微博,Android APP集成新浪微博分享功能
  18. 用js代码在body里面添加内容
  19. c调python_C调和弦及组成音
  20. 如何以产品经理角度进行产品分析?

热门文章

  1. 立体匹配算法:《Cross-Scale Cost Aggregation for Stereo Matching》总结
  2. 两台华为防火墙IPsec连接不稳定原因之一的解决方式
  3. 【Protobuf】Protobuf协议
  4. 面向人群属性关系挖掘的数据可视化———基于美国人口adult数据集
  5. 12枚或者13枚鸡蛋,有一个坏的,用…
  6. 小工具|好用的小工具tcping和psping|测试端口延时等
  7. 通过user-agent获取用户的手机品牌
  8. 国庆清北刷题冲刺班 Day6 上午
  9. Ubunu18 PNG 和 JPG 批量互转的四种方法
  10. 2018最新蚂蚁3期JAVA互联网高级架构师视频教程