ISO8583银联报文规范分析
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银联报文规范分析相关推荐
- 银联8583报文规范详解
银联8583报文规范详解 自己的理解 转载的内容 自己的理解 转载的内容 以下来自转载地址 https://www.jianshu.com/p/203ed7f632cf 一.什么是8583报文规范? ...
- Java解析银联报文_银联ISO8583报文解析过程
主密钥: aabbccddeeff11223344556677889900 1.从签到报文中获取工作密钥,包括MACKEY明文,PINKEY明文 签到: 12-03-31 16:38:09----&g ...
- J8583CN解析ISO8583协议报文注意点
最近在做POS接入涉及到如何正确解析ISO8583协议的问题,遇到了一些很讨厌的问题今天将他们总结一 下写在博客中,供大家参考. 1. 对于小白首先要了解什么是ISO8583协议,请参考该文章htt ...
- 蓝牙车载系统的组成结构和应用规范分析
蓝牙车载系统的组成结构和应用规范分析 车载系统正向智能化.信息化和网络化方向发展,汽车市场已经成为电子工业一个重要的增长点,无线通信技术在汽车等移动系统中有着广泛的应用前景.本文介绍的汽车蓝牙应用主要 ...
- Vector CAN Log报文收发分析工具VN1640/VN1630替代款工具--CANBOX
博主联系方式:QQ:1256153255 ,邮箱:1256153255@qq.com 作为车载行业的童鞋们,绝大多数人应该都知道或用过Vector的CAN Log报文收发分析工具VN1630(A)和V ...
- 计算机网络自顶向下 利用分组嗅探器Wireshark俘获协议报文并分析IP协议
利用分组嗅探器Wireshark俘获协议报文并分析IP协议 监察第一个返回的ICMP数据包,看自己的计算机的IP地址是什么? 在IPpacket 的头部,上层协议域的值是什么? IP header有多 ...
- ModbusTCP协议报文详细分析
ModbusTCP协议分析 ModbusTCP与ModbusUDP的报文格式是一样的,它们之间的区别其实就是TCP与UDP的区别,因此下面就针对ModbusTCP的协议进行分析,ModbusTCP与M ...
- WireShark ICMP报文和TCP报文格式分析
目录 添加链接描述安装及基本使用 ICMP报文格式分析 源IP-->目的IP 目的IP-->源IP TCP报文格式分析 源IP-->目的IP 目的IP-->源IP 其他参考资料 ...
- PPTP协议介绍及其报文的分析
PPTP协议介绍及其报文的分析 PPTP简介 PPTP处理的报文 PPTP报文详情及流程 incoming模式(被动模式)与outgoing模式(主动模式)的区别 PPTP数据链路报文格式 其他 PP ...
最新文章
- c语言实现java接口_五分钟带你了解Java是如何从容而优雅地实现接口数据校验
- 项目管理必知的7个重点
- DirectShow基础编程 最简单的源Filter的编写步骤 (转)
- 人类一败涂地做图教程_《人类一败涂地》形象绘画技巧图文指南
- 鸿蒙系统支持980,鸿蒙手机上线时间 鸿蒙系统支持哪些手机2021最新汇总
- 腾讯为什么不开发linux软件下载,你认为国产操作系统如何搭建生态?为什么腾讯不给Linux系统适配QQ?...
- 数据结构之单链表——C++模板类实现
- Sublime Text3终极宝典
- C语言,后门程序,C语言CGI编程二 - 编写cmd后门
- 金蝶kis云,调用增删改查注意点
- 我的电脑能装苹果吗?
- 深入剖析引用参数Ref和Out
- github上优秀的源码
- matlab中 点到线的距离,点到空间直线的距离 | 学步园
- CactiEZ-10.1版本安装和配置教程
- 修改Administrator密码 VS 快捷键
- 网络编程学习笔记之TCP_01(帅帅老师讲堂)
- 计算机二级考试Python编程试题解读:使用turtle库绘制三角形
- 记住密码的那一刹那显示
- 广告竞价-广义第二出价