0. 前言

阅读的规范版本为20140404修订版

1. 报文格式说明

POS终端上送POS中心的消息报文结构包括TPDU、报文头和应用数据三部分:

TPDU

报文头

应用数据

ISO8583 Msg

ID

目的

地址

源地址

应用类别定义

软件

总版本号

终端

状态

处理

要求

软件分版本号

交易数据

60H

NN NN

NN NN

N2

N2

N1

N1

N6

不定长度

注:在TPDU之前是报文的长度(2字节)和表示数据开始的标记符“02”。

1.1. TPDU

TPDU(Transport Protocol Data Unit,传输协议数据单元)是POS报文的一个特定域,由三项共五个字节的信息组成。

ID(Identifies TPDU Type)项为一个字节,用于标识报文类型(一般情况正确报文的类型为0x60,错误报文类型为0x68);

Destination Address(即Network International Identifier,简称NII)项为两个字节,标识该报文的目的地址,一般情况下,这两个字节用来标识不同银行的前置机;

Originator Address 项为两个字节,标识该报文从哪一个POS接入端口收到的报文。

TPDU是一串10位的数字,跟网控器有关,网控器是这样的一台设备。它里头有很多张卡,有些卡负责接受终端通过电话或者别的途径传送上来的数据包,叫做下联卡,有些卡负责把下联卡的数据通过串口或者网线转发给后台前置机,叫做上联卡,tpdu的特定位定义了下联卡收到数据以后,转发到哪一块上联卡。上联卡根据tpdu相关信息把数据转发给特定的主机(因为现在的上联卡比如LET61可以指向很多台主机的),tpdu一般银行都是6000000000,也有6000060000或者其他。

1.2. 报文头

报文头 总长度为12字节,压缩时用BCD码表示为6个字节长度的数值。 
    在POS上送的请求/通知报文中,该数值由POS终端应用程序在打包上送时根据POS终端参数和当前状态填入应用类别、软件总版本号、终端状态和软件分版本号(具体指各厂商的程序版本号),用于POS中心根据数值进行相应的处理。

在POS中心返回的应答报文中,由POS中心填入处理要求,其他域保持原值返回,POS将根据收到报文头中的处理要求进行相应处理。

2.举例

2.1. 原始报文

02 00 91 60 00 03 00 00 60 31 00 31 10 04 08 00 00 20 00 00 00 C0 00 16 00 00 33 31 32 33 34 35 36 37 36 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 00 11 00 00 00 01 00 40 00 29 53 65 71 75 65 6E 63 65 20 4E 6F 31 36 33 32 31 32 4A 36 33 42 30 31 34 33 38 31 32 38 00 03 30 31 20 03 16

2.2. 报文分拆

02                                                                  表示数据开始

00 91                                                             表示后面数据长度为91个字节(在91到结束符03之间,不包括03字符,即8583包)

60 00 03 00 00 60                                         报文头

31 00 31 10 04                                              TPDU

08 00                                                             8583报文类型,这里表示网络管理请求,其回应类型应该是0810

00 20 00 00 00 C0 00 16                           8583数据包的位图,8字节,64位,其中首位表示是否有辅助位图,0的二进制0000,首位为0,没有辅助位图。位图展开后解析得如下域存在信息:11,41, 42, 60, 62, 63,对照规范,与pos签到请求报文所需域相同。

注:各个域的定义及说明详见《中国银联银联卡受理终端应用规范》第1部分 销售点终端(POS)应用规范 8.3章节:数据元名称及定义

00 00 33 31 32 33 34 35 36 37 36 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 00 11 00 00 00 01 00 40 00 29 53 65 71 75 65 6E 63 65 20 4E 6F 31 36 33 32 31 32 4A 36 33 42 30 31 34 33 38 31 32 38 00 03 30 31 20 03 16


11域:00 00 33
41域:31 32 33 34 35 36 37 36
42域:31 32 33 34 35 36 37 38 39 30 31 32 33 34 35
60域:00 11 00 00 00 01 00 40
        长度:    00 11 
        数据:     00 00 00 01 00 40
62域:00 29 53 65 71 75 65 6E 63 65 20 4E 6F 31 36 33 32 31 32 4A 36 33 42 30 31 34 33 38 31 32 38
        长度:00 29
        数据:53 65 71 75 65 6E 63 65 20 4E 6F 31 36 33 32 31 32 4A 36 33 42 30 31 34 33 38 31 32 38
     

63域:00 03 30 31 20

长度:00 03

数据:30 31 20

03        数据结束

16        CRC校验码:02(数据开始)后面开始,即从00开始到03之间字节(包括03)异或的结果。

《中国银联银联卡受理终端应用规范》笔记(1)银联8583报文解析相关推荐

  1. 银联银行卡交换系统8583报文解析

    前言 最近在做8583报文这块解析,也遇到一些坑.下面将会介绍自己学习和了解8583报文这块的经验,希望可以帮到那些刚刚接触8583报文的同学们. 入门 首先我们需要知道的是我们的8583报文是基于P ...

  2. Go语言银联8583报文解析库,支持联小额免密付和银商聚合支付

    很早之前就整过一个Go语言版的银联8583报文解析库,当时仅是8583报文的解析. 最近整合了进了银联小额双免交易和银商的聚合支付交易通道,这可以是网上最简单的8583报文解析库了. 银联双免支付通道 ...

  3. 第一章 银联8583报文解析

    1报文格式定义 POS终端上送POS中心的消息报文结构包括TPDU.报文头和应用数据三部分: -- TPDU说明:长度为10个字节, 压缩时用BCD码表示为5个字节长度的数值. -- 报文头说明:总长 ...

  4. 银联8583报文解析

    1.报文格式定义 POS终端上送POS中心的消息报文结构包括TPDU.报文头和应用数据三部分,一般整个报文内容包括:报文长度+TPDU+报文头+交易数据. --TPDU说明:长度为10个字节,压缩时用 ...

  5. 春节出境中国游客可在174个国家和地区使用银联卡

    中国旅游研究院等机构预计,今年春节共有超过700万中国游客前往世界约90个国家和地区旅游.数据显示,全球已有174个国家和地区支持中国游客习惯使用的银联卡,基本覆盖春节出境游客前往的旅行目的地,境外支 ...

  6. 银联IC卡读卡流程详解--读卡器与卡交互指令

    最近因研究了下银联借记/贷记应用卡片规范,发现网上可参考资源较少,于是萌生了写下这篇文字的想法,希望可以帮助到有需要的兄弟姐妹,有描述不清晰或者有错误的地方欢迎指正. 下面进入正题,测试使用的卡是招商 ...

  7. 《银行磁条卡销售点终端规范》

    [发布单位]中国人民银行   [发布文号]-----------   [发布日期]2001-03-30   [生效日期]2001-05-01   [失效日期]----------   [所属类别]国家 ...

  8. 银联8583报文规范详解

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

  9. VB6银联读卡之旅(二)__55域获取流程及相关注意

    银行卡读卡涉及相关APDU命令发送.网上有很多相关博客进行了详细说明,这里就不在赘述.本文主要讲55域获取流程及本人联调时遇到的相关问题.在智能卡读取使用方面本人也属于初学者,其中如有疑问或表述不正确 ...

最新文章

  1. 希捷携全线企业级解决方案出席ODCC,Exos X18与Exos 2X14硬盘斩获两项大奖
  2. Exchange Server学习---发送邮件
  3. iOS中 UITableViewCell cell划线那些事 韩俊强的博客
  4. Redis M/S + Keepalived 主从备份高可用
  5. C语言-动态创建二维数组
  6. 大话设计模式Python实现-简单工厂模式
  7. 简单的石头剪刀布(机器胜率略高)
  8. Scrapy学习大全
  9. 前端又一本升级版图书上市了,听说比第一版还好看
  10. ShardedJedisPool 中可用连接数的小bug
  11. Transport Ship【多重背包】
  12. swfupload添加上传进度条(转)
  13. hexo theme next7.8 主题美化
  14. 加密软件漏洞测试,加密软件漏洞评测系统
  15. 企查查等人物关系图谱、企业图谱等效果
  16. Git - IDEA中分支右侧上下箭头的含义
  17. 怎样通过执行命令重启电脑资源管理器,任务栏自动隐藏修复
  18. Js 字符串属性及方法
  19. 启动mysql报错:mysql.service: Service hold-off time over, scheduling restart
  20. c语言编写的鼠标键盘录制程序,用C语言写的鼠标驱动程序

热门文章

  1. 程序员必备学习资源资料库!!!免费开发书籍中文版大全
  2. 小数乘分数怎么算过程_《小数乘分数》教学反思
  3. Docker镜像推送到远程服务器
  4. 零基础能学好UI设计吗 相关学习规划是什么
  5. ubuntu查看显示器信息
  6. Jetson Nano 使用 opencv库
  7. HCIA-RoutingSwitching华为认证路由交换工程师学习笔记 (1) - 数据通信基本原理及IP地址的规划和设计
  8. 编译原理 求first集 follow集
  9. Python之免费代理ip的抓取与使用
  10. opencv 中cvGetSize()函数出错