ISO8583银联报文规范

本篇文章参考了中国银联POS终端规范
现在我们有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

报文工具

报文类型 = 【0200】
TPDU = 【6000030000】
MSGHEAD = 【603100310730】
F000.位图             = 【016】【302004C020C09811】
F003.交易处理码       = 【006】【000000】
F004.交易金额         = 【012】【000000000001】
F011.系统跟踪号       = 【006】【000349】
F022.服务点输入方式码 = 【003】【021】
F025.服务点条件码     = 【002】【00】
F026.服务点PIN获取码  = 【002】【12】
F035.第二磁道数据     = 【030】【62258221129963015D151110100000】
F041.受卡机终端标识码 = 【008】【56852314】
F042.受卡方标识码     = 【015】【235214526859236】
F049.交易货币代码     = 【003】【156】
F052.个人标识码数据   = 【016】【C624834D367E9E9E】
F053.安全控制信息     = 【016】【2000000000000000】
F060.自定义域         = 【013】【2200000800050】
F064.MAC              = 【008】【67A2299A】

第一步

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域为交易处理码,压缩成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。

  • 64域为报文鉴别码,占定长8个字节,取最后八个字节36 37 41 32 32 39 39 41。

ISO8583银联报文规范分析相关推荐

  1. 银联8583报文规范详解

    银联8583报文规范详解 自己的理解 转载的内容 自己的理解 转载的内容 以下来自转载地址 https://www.jianshu.com/p/203ed7f632cf 一.什么是8583报文规范? ...

  2. Java解析银联报文_银联ISO8583报文解析过程

    主密钥: aabbccddeeff11223344556677889900 1.从签到报文中获取工作密钥,包括MACKEY明文,PINKEY明文 签到: 12-03-31 16:38:09----&g ...

  3. J8583CN解析ISO8583协议报文注意点

    最近在做POS接入涉及到如何正确解析ISO8583协议的问题,遇到了一些很讨厌的问题今天将他们总结一 下写在博客中,供大家参考. 1.  对于小白首先要了解什么是ISO8583协议,请参考该文章htt ...

  4. 蓝牙车载系统的组成结构和应用规范分析

    蓝牙车载系统的组成结构和应用规范分析 车载系统正向智能化.信息化和网络化方向发展,汽车市场已经成为电子工业一个重要的增长点,无线通信技术在汽车等移动系统中有着广泛的应用前景.本文介绍的汽车蓝牙应用主要 ...

  5. Vector CAN Log报文收发分析工具VN1640/VN1630替代款工具--CANBOX

    博主联系方式:QQ:1256153255 ,邮箱:1256153255@qq.com 作为车载行业的童鞋们,绝大多数人应该都知道或用过Vector的CAN Log报文收发分析工具VN1630(A)和V ...

  6. 计算机网络自顶向下 利用分组嗅探器Wireshark俘获协议报文并分析IP协议

    利用分组嗅探器Wireshark俘获协议报文并分析IP协议 监察第一个返回的ICMP数据包,看自己的计算机的IP地址是什么? 在IPpacket 的头部,上层协议域的值是什么? IP header有多 ...

  7. ModbusTCP协议报文详细分析

    ModbusTCP协议分析 ModbusTCP与ModbusUDP的报文格式是一样的,它们之间的区别其实就是TCP与UDP的区别,因此下面就针对ModbusTCP的协议进行分析,ModbusTCP与M ...

  8. WireShark ICMP报文和TCP报文格式分析

    目录 添加链接描述安装及基本使用 ICMP报文格式分析 源IP-->目的IP 目的IP-->源IP TCP报文格式分析 源IP-->目的IP 目的IP-->源IP 其他参考资料 ...

  9. PPTP协议介绍及其报文的分析

    PPTP协议介绍及其报文的分析 PPTP简介 PPTP处理的报文 PPTP报文详情及流程 incoming模式(被动模式)与outgoing模式(主动模式)的区别 PPTP数据链路报文格式 其他 PP ...

最新文章

  1. c语言实现java接口_五分钟带你了解Java是如何从容而优雅地实现接口数据校验
  2. 项目管理必知的7个重点
  3. DirectShow基础编程 最简单的源Filter的编写步骤 (转)
  4. 人类一败涂地做图教程_《人类一败涂地》形象绘画技巧图文指南
  5. 鸿蒙系统支持980,鸿蒙手机上线时间 鸿蒙系统支持哪些手机2021最新汇总
  6. 腾讯为什么不开发linux软件下载,你认为国产操作系统如何搭建生态?为什么腾讯不给Linux系统适配QQ?...
  7. 数据结构之单链表——C++模板类实现
  8. Sublime Text3终极宝典
  9. C语言,后门程序,C语言CGI编程二 - 编写cmd后门
  10. 金蝶kis云,调用增删改查注意点
  11. 我的电脑能装苹果吗?
  12. 深入剖析引用参数Ref和Out
  13. github上优秀的源码
  14. matlab中 点到线的距离,点到空间直线的距离 | 学步园
  15. CactiEZ-10.1版本安装和配置教程
  16. 修改Administrator密码 VS 快捷键
  17. 网络编程学习笔记之TCP_01(帅帅老师讲堂)
  18. 计算机二级考试Python编程试题解读:使用turtle库绘制三角形
  19. 记住密码的那一刹那显示
  20. 广告竞价-广义第二出价

热门文章

  1. python machine learning_Python Machine Learning
  2. 【微信小程序WXS 模块】
  3. 2021-10-26 数据存储的基本原理
  4. bat刷屏动画---炮击
  5. 始祖双碳新闻 | 2022年8月12日碳中和行业早知道
  6. 100集华为HCIE安全培训视频教材整理 | PKI核心部分CA
  7. 2019年秋招面试总结(一)(中兴、大疆)
  8. 系统System文件损坏或丢失的简单解决办法
  9. Android尺寸标注设计大全和Android切图规范
  10. 计算机病毒与蠕虫的特点比较,蠕虫病毒的特点是什么