现在我们有ISO8583报文如下(十六进制表示法):

60 00 03 00 00 60 31 00 31 07 30 02 00 30 20 04 C0 20 C0 98 11 00 00 00 00 00 00 00 00 01 00 03 49 02 10 00 12 30 62 25 82 21 12 99 63 01 5D 15 11 10 10 00 00 35 36 38 35 32 33 31 34 32 33 35 32 31 34 35 32 36 38 35 39 32 33 36 31 35 36 C6 24 83 4D 36 7E 9E 9E 20 00 00 00 00 00 00 00 00 13 22 00 00 08 00 05 00 36 37 41 32 32 39 39 41

第一步

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

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

——应用数据说明:一般长度都是4个字节,压缩时用BCD码表示为2个字节的长度的数值。

所以上述报文中前五个字节为TPDU,即60 00 03 00 00

报文头占用六个字节,即 60 31 00 31 07 30

应用数据占用2个字节,即 02 00 也就是"0200"

——0200金融类请求消息:

●  POS查询请求。

●  POS消费请求。

●  POS消费撤销请求。

●  POS预授权完成(请求)请求。

●  POS预授权完成撤销请求。

●  电子现金脱机消费请求。

●  分期付款消费请求。

●  分期付款消费撤销请求。

●  基于PBOC电子钱包/电子现金的IC圈存类交易请求。

●  磁条卡现金充值请求。

第二步

分析位图:

首先取第十四个字节,即0x30 ,转化为二进制为0011 0000,在该字节的第一位为0(从左往右)表示当前报文中只需包括64个域,也就是从当前字节开始连续8个字节为位图(包括当前字节),如要包括128个域,该位为1。

现在进入关键的位图分析,现在我们取到了表示位图的8个字节即30 20 04 C0 20 C0 98 11,转为二进制为

00110000 00100000 00000100 11000000 00100000 11000000 10011000 00010001

位图中为1的位置即代表相应的域,在上面的二进制位中从左往右有第3位、第4位、第11位、第22位、第25位、第26位、第35位、第41位、第42位、第49位、第52位、第53位、第60位、第64位。

下面开始这些域中的数据,首先分析3域,3域为交易处理码,压缩成BCD码后占定长3个字节,我们从位图所占的8个字节后开始连续取3个字节,即 00 00 00,解压后即为“000000”,具体代表含义这里就不叙述了。

4域为交易金额,压缩成BCD码后占定长6个字节,同理取6个字节,即00 00 00 00 00 01,也就是金额0.01元,具体转换参考银联规范。

11域为受卡方系统跟踪号(流水号),压缩成BCD码占定长3个字节,同理取3个字节,即00 03 49,即000349。

22域为服务点输入方式码,压缩成BCD码占定长2个字节,同理取2个字节,即02 10,由于22域本身只占3个字节,压缩时左靠,右补0,所以转换为“021”,具体含义不再叙述。

25域为服务点条件码,压缩成BCD码占定长1个字节,同理取1个字节,即00,转换为“00”,“00”代表正常提交。

26域为服务点PIN获取码,压缩成BCD码占定长1个字节,同理取1个字节,即12,转换为“12”,表示服务点设备所允许输入的个人密码明文的最大长度为12。

解下来的35域由于不是定长,所以处理方法不同,先取一个字节,即30,转换为“30”,表示第二磁道的数据占用30个字节,取连续15个字节即62 25 82 21 12 99 63 01 5D 15 11 10 10 00 00,这里不对这串数据进行说明了。

41域为受卡机终端标识码,占8个字节的定长域,取35 36 38 35 32 33 31 34。

42域为受卡方标识码,占15个字节的定长域,取32 33 35 32 31 34 35 32 36 38 35 39 32 33 36。

49域为交易货币代码,占3个字节的定长域,取31 35 36。

52域为个人标识码数据,占8个字节的定长二进制数域,取C6 24 83 4D 36 7E 9E 9E。

53域为安全控制信息,压缩成BCD码占8个字节定长域,取20 00 00 00 00 00 00 00。

60域为自定义域,为不定长域,先取长度(压缩成BCD码占两个字节),即00 13,转换为13即占60域占13个字节,压缩成BCD码占7个字节,取22 00 00 08 00 05 00。

8583报文解析实例介绍相关推荐

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

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

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

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

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

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

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

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

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

  6. 西门子uss通讯实例_V20变频器USS报文解析实例

    西门子V20, G120等变频器支持USS通信协议.在小型自动化系统中,USS协议仍然被广泛采用.如果使用西门子S7-200 SMART或者S7-1200等PLC与变频器进行USS通信,通过使用库程序 ...

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

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

  8. 8583 报文解析过程

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

  9. java 8583报文解析_8583报文解析实例

    以下是主机从网控器收到的消费数据包(用二位十六进制数表示一个字节): 0201 06 60 00 07 08 08 |02 00 30 20 05 00 20 c0 02 0100 40 00 00 ...

最新文章

  1. Linux下光盘yum源搭建及简单软件安装
  2. parzen窗估计如何进行结果分析_实现一下模式识别(一)Parzen窗估计
  3. golang模板语法
  4. java中的post的作用,JSP、Servlet中get请求和post请求的区别总结
  5. 用Typescript 开发 node.js (方法2)
  6. js+div+css下拉导航菜单完整代码
  7. 计算机组成原理课后习题答案第五版
  8. 2021SC@SDUSC——使用CUDA/GPU技术加速密码运算(一)
  9. 微信小程序新版本提示更新
  10. 颠覆大数据分析之Storm的设计模式
  11. java怎么做界面设计_11-Java 界面设计
  12. pyecharts图表库学习:Pie(饼图)
  13. echarts 不显示x轴与y轴 及 x 、y 轴样式自定义
  14. python 3.8教程_Python 3.8 新功能全解
  15. 利用css做三线表格,如何快速制作三线表格式数据
  16. 今日头条/字节跳动 后台开发岗(应届生)三轮技术面试
  17. 第七次培训任务:esp8266(4)云服务器(sscom5.13.1)的操作
  18. 西瓜书第二章阅读笔记
  19. AE教程:纸张飘动动画
  20. 基于电位器式传感器位移测量仪的设计

热门文章

  1. automapper java 有什么_对象映射工具AutoMapper介绍
  2. 在计算机检索系统中常用的检索技术有,计算机检索技术有哪些
  3. java同步互斥功能检测_猿考研之操作系统篇三(进程同步,管程,死锁)
  4. ipython官网_IPython Notebook快速搭建
  5. aws主机php环境搭建,亚马逊AWS上安装Nginx(Linux,CentOS环境)
  6. o型圈沟槽设计软件_O型圈的设计注意事项
  7. python里的体格是啥r_numpy.数组形状(R,1)和(R,)之间的差异
  8. 梳理:python—同一个类中的方法调用
  9. Express 搭建web服务器
  10. .net core 微服务通讯组件Orleans的使用与配置