一、8583报文组成
TPDU |
报文头 |
应用数据 |
||||||
ISO8583 Msg |
||||||||
ID |
目的 地址 |
源地址 |
应用类别定义 |
软件 总版本号 |
终端 状态 |
处理 要求 |
保留使用(软件分版本号) |
交易数据 |
60H |
NN NN |
NN NN |
N2 |
N2 |
N1 |
N1 |
N6 |
不定长度 |
2字节的报文长度+5字节的tpdu+6字节的报文头+2字节的应用数据说明+(第14字节为位图的第一位,第14位若小于8,位图8字节,若大于等于8,位图16个字节)+各个域。
二、tpdu详解
TPDU:长度为5个字节,共10位编码,前两位为TPDN ID 一般为“60”,中间4位为TPDU 目的地址,最后4位为TPDU 源地址为“0000”,默认值为“6000030000”。
三、报文头详解
总长度为12字节,压缩时用BCD码表示为6个字节长度的数值
1、应用类别定义:
60:磁条卡金融支付类
61:IC卡金融支付类
62:磁条卡增值业务类支付
63:IC卡增值业务类支付
2、软件版本号
软件版本号 |
说 明 |
10 |
2001年人民银行POS规范之前版本 |
11 |
2001年人民银行POS规范版本 |
21 |
2002年银联POS规范版本 |
22 |
2004年银联POS规范版本 |
3、终端状态
终端状态 |
含义 |
0 |
正常交易状态 |
1 |
测试交易状态 |
处理要求编码 |
处理要求说明 |
0 |
无处理要求 |
1 |
下传终端磁条卡参数 |
2 |
上传终端磁条卡状态信息 |
3 |
重新签到 |
4 |
通知终端发起更新公钥信息操作 |
5 |
下载终端IC卡参数 |
6 |
TMS参数下载 |
5、保留使用:暂时不用,填全“0”。
—— M 强制域(Mandatory),此域在该消息中必须出现否则将被认为消息格式出错。
—— C 条件域(Conditional),此域在一定条件下出现在该消息中,具体的条件请参考备注说明。
—— O 选用域(Optional),此域在该消息中由发送方自选。。
—— Space 此域在该种消息中不出现。
—— A 字母a-z
—— n 数字0-9
—— s 特殊字符
—— an 字母和数字字符
—— ans 字母、数字和特殊字符
—— MM 月
—— DD 日
—— YY 年
—— hh 小时
—— mm 分
—— ss 秒
—— LL 允许的最大长度为99
—— LLL 允许的最大长度为999
—— VAR 可变长度域
—— b 数据的二进制表示,后跟数字表示位(bit)的个数
—— B 用于表示变长的二进制数,后跟数字表示二进制数据所占字节(Byte)的个数
—— z 按GB/T 15120和GB/T 17552的2、3磁道编码
cn BCD压缩编码数值
—— 变量XYZ的数据类型为ANS...999(LLLVAR),则表示:该变量中可含字母、数字和特殊符号,最长不超过999个字符,长度由三位数字确定。
—— 变量XYZ的数据类型为N...999(LLLVAR),则在压缩时,其长度位用右靠的BCD码压缩,而其后紧随的数字内容用左靠的BCD码压缩。这是为了保证有效内容和其位数中间无缺省填充值。若不为偶数位,左靠的数字内容后补零。由于有长度位表征该域有效内容的长度,因此后补零不会改变该域的真实值。
本文档中声明的压缩变量属性是针对POS终端与POS中心之间的消息,POS中心与任何金融机构之间的消息将全部采用ASCII码且不压缩的格式。
iso8583报文自学笔记的更多相关文章
-
ISO8583报文协议
最开始时,金融系统只有IBM这些大的公司来提供设备,象各种主机与终端等.在各个计算机设备之间,需要交换数据.我们知道数据是通过网络来传送的,而在网络上传送的数据都是基于0或1这样的二进制数据,如果没有 ...
-
《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...
-
《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...
-
《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一 ...
-
python自学笔记
python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...
-
(转载)解析ISO8583报文实例
本篇文章参考了中国银联POS终端规范,所以如有不明白的可以去我的资源里面下载. 现在我们有ISO8583报文如下(十六进制表示法): 60 00 03 00 00(前五个字节为TPDU) 60 31 ...
-
ssh自学笔记
Ssh自学笔记 Ssh简介 传统的网络服务程序,如:ftp.pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据.而且,这些服务 ...
-
JavaScript高级程序设计之自学笔记(一)————Array类型
以下为自学笔记. 一.Array类型 创建数组的基本方式有两种: 1.1第一种是使用Array构造函数(可省略new操作符). 1.2第二种是使用数组字面量表示法. 二.数组的访问 2.1访问方法 在 ...
-
vue 自学笔记记录
vue 自学笔记(一): 知识内容: 安装vue ,创建vue实例,安装第一个组件,单项数据流 https://www.cnblogs.com/baili-luoyun/p/10763163.htm ...
随机推荐
- smarty中使用truncate出现乱码,用mb_substr解决
-
Windows 7 IIS HTTP 错误 500.21 – Internal Server Error 解决方法
错误状况: 下面内容来自网络,自己也另有补充 原因:在安装Framework v4.0之后,再启用IIS,导致Framework没有完全安装 解决办法:开始->所有程序->附件->鼠 ...
-
js 鼠标事件的抓取代码
js 鼠标事件的抓取代码,分享给大家. 1.通过ele.setCapture();设置鼠标事件的抓取. 2,应用可以通过单.双击文字来获取时间. <html> <head> & ...
-
【转】为什么我说 Android 很糟糕
http://zhuanlan.zhihu.com/wooyun/19879016 Android 的安全问题一直被吐槽,包括不安全的APP市场.上次的远程命令执行漏洞.还有它的权限机制,总之一团糟, ...
-
SpringBoot开发案例之mail中文附件乱码
前一段时间做过一个邮件发送的服务,以前大体都测试过,文本.图片.附件都是没有问题的,可有同事反应发送的附件名称有中文乱码,类似如下截图展示: 咋一看不像乱码,抱着试试看的态度,为MimeMessage ...
-
c语言,数据结构,链表的一些操作总结
下面是自己的一些学习操作以及总结,能用我会很开心,有不足之处,欢迎大家提出宝贵的意见! c语言链表是一种基本的数据结构,与顺序表一样属于线性表,但是顺序表在内存中的存储单元是连续的,这样就对内存的要求 ...
-
ServletContextListener作用
ServletContext 被 Servlet 程序用来与 Web 容器通信.例如写日志,转发请求.每一个 Web 应用程序含有一个Context,被Web应用内的各个程序共享.因为Context可 ...
-
VS2010 无法启动程序,系统找不到指定的文件
1>------ 已启动生成: 项目: work, 配置: Debug Win32 ------1>生成启动时间为 2018/1/9 14:01:16 下午.1>Initialize ...
-
观看杨老师(杨旭)Asp.Net Core MVC入门教程记录
观看杨老师(杨旭)Asp.Net Core MVC入门教程记录 ASP.NET Core MVC入门 Asp.Net Core启动和配置 Program类,Main方法 Startup类 依赖注入,I ...
-
http协议的发展历史
在最早的时候,第一个定稿的http协议是http/0.9版本,在这个版本里面,http协议,它的内容,非常非常的简单 只有一个命令,就是GET 对应的就是我们现在经常用到的get请求,post请求,这 ...