第一章 银联8583报文解析

1报文格式定义
POS终端上送POS中心的消息报文结构包括TPDU、报文头和应用数据三部分:
这里写图片描述
—— TPDU说明:长度为10个字节, 压缩时用BCD码表示为5个字节长度的数值。
—— 报文头说明:总长度为12字节,压缩时用BCD码表示为6个字节长度的数值。
在POS上送的请求/通知报文中,该数值由POS终端应用程序在打包上送时根据POS终端参数和当前状态填入应用类别、软件总版本号、终端状态和软件分版本号(具体指各厂商的程序版本号),用于POS中心根据数值进行相应的处理。
在POS中心返回的应答报文中,由POS中心填入处理要求,其他域保持原值返回,POS将根据收到报文头中的处理要求进行相应处理。

2 看懂8583报文需要知道的概念
BCD码:用4位二进制数来表示1位十进制数中的0~9这10个数码。举个列子,’0x03 0x02’的BCD码表示为0X32,将前一个的低四位转移到后一个的高四位,具体实现会单独开一章。这里知道如何用即可。

3实例报文解析
这里举个签到报文的例子。原始报文: 00 3B 60 00 06 00 00 60 22 00 00 00 00 08 00 00 20 00 00 00 C0 00 12 00 12 47 35 38 44 30 31 31 31 35 38 38 37 35 38 44 30 34 38 31 36 35 35 35 35 00 11 00 00 00 01 00 30 00 02 30 31
拿到原始报文后我们来拆分一下。根据上面的报文格式定义,我们先拆分出来TPDU和报文头:TPDU占5个字节,报文头占6个字节,还有报文的前两个字节是报文长度,那么:
报文长度:00 3B=59个字节
TPDU:60 00 06 00 00
Header:60 22 00 00 00 00

剩下的就是ISO8538的内容。看下签到报文内容:
这里写图片描述
重要的是找到位图信息,
消息头2个字节:08 00
位图8个字节:00 20 00 00 00 C0 00 12
用位图分析工具分析出域的信息:
这里写图片描述

从图上看域是11 41 42 60 63,到了这里就去看下规范中的域信息定义。
11域:00 12 47
41域:35 38 44 30 31 31 31 35
42域:38 38 37 35 38 44 30 34 38 31 36 35 35 35 35
60域:00 11 00 00 00 01 00 30——长度是00 11 值是00 00 00 01 00 30
63域:00 02 30 31——长度是0002 值是30 31

如下图:
这里写图片描述

如有什么地方不正确欢迎指出,共同学习

  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值