iso8583报文解析
1 8583报文数据类型
整个报文内容包括:报文长度+TPDU+报文头+交易数据。上一章解释了报文长度、TPDU和报文头信息。这里我们详细说下交易数据部分。在这之前需要简单介绍下报文中的数据类
举个例子:变量a类型是N4,那么表示a是最多4个有效数字填充,如果内容不够4位,那么用0左边填充。如a=’\0x01’,那么实际上填充的内容是:“\0x00 \0x00 \0x00 \0x01”(这里抛开BCD先)。
2 8583消息类型
消息类型是在银联规范中已经规定给你,表示该报文的交易类型,通俗说就是“你是干啥的”。比如0800表示签到,0200表示消费。
N4, 4个字节的定长数字字符域。压缩时用BCD码表示的2个字节的定长域。十六进制即:0x08 0x00。关于BCD上一章简单介绍过,后面会开一张专门介绍下并附带算法。
3 8583位图
位图在整个报文中占8个字节,位图的作用就是分析出来该报文有那些域参与。网上有专门的位图解析工具。原理比较简单,8个字节就是8*8=64个bit位,也就是代表64个域。如果哪个bit位为1,则表示该报文中该域是存在数据的,否则表示该域为空。还是拿签单报文举例:
位图是00 20 00 00 00 C0 00 12。用位图工具可以看到域信息是:11 41 42 60 63。
4 域解析
那么就看位图以后的数据: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。
我们先去银联规范中查看11域介绍:
看图,上面已经表明占3个字节,那么11域内容是: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。那么再看下41域定义:
占8个字节,那么从剩下的报文内容中拿取8位:35 38 44 30 31 31 31 35 38。依次42域: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。看60域定义:
2个字节表示长度:00 11,这里是BCD之前的长度信息,那么如果BCD后则是(11+1)/2=6,所以数6个字节:00 11 00 00 00 01 00 30。63域一样。
iso8583报文解析相关推荐
- Java解析银联报文_银联ISO8583报文解析过程
主密钥: aabbccddeeff11223344556677889900 1.从签到报文中获取工作密钥,包括MACKEY明文,PINKEY明文 签到: 12-03-31 16:38:09----&g ...
- ISO8583报文工具类(组装和解析报文)
很久没来csdn了.现在的工作地点在银行,妈的,不让上网啊. 写写博客其实是对自己知识的总结,这么长时间了,也该写点东西了.接触银行的项目,避免不了 遇上8583报文.具体介绍就不细讲了,这个网上一大 ...
- java发送iso8583报文接口框架,ISO8583报文工具类(组装和解析报文)
package com.lsy.common.util; import java.io.FileInputStream; import java.io.UnsupportedEncodingExcep ...
- iso8583 java解析源码_iso8583报文解析java
8583报文详解 4页 免费 8583报文格式介绍 1页 免费 8583报文及各域详解 48页 1下载券 解析ISO8583报文实例 4页 1下载券 8583报文 48页 免费 ...... Pos ...
- ISO8583报文格式解析
我刚进入金融行业时,就知道了IS08583报文协议,我想可能我还没进入这个行业都已经听过了,可知ISO8583的影响力有多大了.最初刚接触它时,确实对其中的一些细节概念不是很清晰,对有些地方比较迷惑. ...
- ISO8583报文组装解析工具和定义器示例
8583报文组装和解析工具类(Send8583Util),代码如下: import com.alibaba.fastjson.JSONObject; import org.apache.commons ...
- 浅谈128位ISO8583报文的组装和解析
ISO8583报文的常用的几种方式 8583报文的组成样式 8583报文的组成样式 一般而言8583的报文组成各式都是16进制的字符编码组成的,当然也不排除存在ASCII的不规则特例,具体的需要根据不 ...
- java 传送解析8583报文_java发送ISO8583报文接口案例
[实例简介] java发送ISO8583报文实现平安银行支付接口 [实例截图] [核心代码] pingAnBank └── pingAnBank ├── build.xml ├── client │ ...
- c#8583_解析ISO8583报文实例
本篇文章参考了中国银联POS终端规范,所以如有不明白的可以去我的资源里面下载. 现在我们有ISO8583报文如下(十六进制表示法): 60 00 03 00 00 60 31 00 31 07 30 ...
最新文章
- oracle 实现map,PLSQL实现的map功能,以及一些疑惑
- 腾讯云TStack获“下一代云计算技术创新奖”,助力云生态信息创新发展
- jQuery之防止【冒泡事件】,阻止默认行为 【return false】 event.stopPropagation event.preventDefault...
- 结构体变量和结构体指针变量作为函数参数传递问题
- Android初学第53天
- C++中XMLHTTPRequest异步使用onreadystatuschange
- blongsTo 用法
- Windows Internet Explorer 8 for Windows Vista 和 Windows Server 2008
- android dialog的封装,Android系统Dialog的简单封装
- html5 教程网站
- 什么技术才值得你长期投入? | 凌云时刻
- RRD_rrd4j的使用说明
- ibm vios_使用IBM地理分散弹性解决方案在生产现场保留冗余VIOS配置
- Python日报0507 - PyQt5实现打卡登记系统
- 跟着项目学设计模式(六):三层架构
- 暗棕色发出绿光的扁豆碳/氧化镍量子点HB-CQDs-FITC 修饰荧光素的制备过程
- 传统网络变压器和电容试片式性能区别
- HTML5商业解决方案公司网页模板
- css overflow属性及使用方法(场景)
- 建立合格的跨职能团队,你需要知道这些
热门文章
- 这所211非常保护一志愿,录取最低分263分,多个专业上线即录取!
- TYD_初识python数据可视化库-Matplotlib
- Vue+SpringBoot+OSS+element实现图片上传服务器+图片展示墙
- Docker系列之(一):10分钟玩转Docker
- 画好动漫男性角色有哪些技巧?
- 【使用Spring Cloud Gateway构建微服务网关】—— 每天一点小知识
- 暴走漫画gif爬取及保存
- idea新建项目报错org.codehaus.plexus.component.repository.exception.ComponentLookupException:
- 温故而知新,重温 Java 7 的那些“新”特性
- 实操教程|怎样制作目标检测的训练样本图像?