【中国银联关于ISO8583+元数据类型定义】
(违背国际标准ISO8583的简单性原则,导致联调成本大。)
(感悟两点:1、公司在制定对外接口时,应该进行评审,设计原则应该是越简单越好,越容易理解越好。一旦复杂,会导致联调时沟通成本大,甚至严重影响项目进度。2、为什么说一流企业制定标准,谁都想挣着指定标准,容易形成技术垄断。)
10.2数据类型
POS终端与POS中心之间的交换消息中,各数据元类型
如下所列:
A字母向左靠,右部多余部分填空格。(ABC 表示字母)
N数值,右靠,首位有效数字前充零。若表示金额,则最右二位为角分。(Number)
S特殊
“符号”
。(Special char ? annotation)
AN字母和/或数字,左靠,右部多余部分填空格。(可能同时包含A和N)
ANS字母、数字和/或特殊符号,左靠,右部多余部分填空格。(可能同时包含A,N,S)
AS字母和/或特殊符号,左靠,右部多余部分填空格。
------------------
批注: 特殊在哪里,标准并没给定,特殊到什么程度,是否可显示,因为文档说的是“符号”,不是“字符”,字符可以理解成是可显的,符号是否可显?依据经验来讲一般是可显的。我们常见的是F44表示返回码描述信息:
BM #44附加响应数据(错误信息描述)
F44域说明
变量属性 ANS25(LLVAR)
,2个字节长度+25个字节的定长域 压缩使用左靠BCD码1个字节+最大25个字节的定长字发卡方的附加响应数据必须为有效字符。由发卡方在批准交易时载入应答消息。
数据值部分的元类型是:ANS25,表示可能出现字母、数字和特殊符号(大部分指的是中文了,注意:银联标准中文编码采用的是GB2312,这样有些偏僻字可能显示不了。)
小结: 银联这样无非在描述“ANS表示一般可见符”,只是把一般可见符分为三个小类: 数字字符、字母字符和可见其他字符。
------------------
B二进制位。(一般是安全信息,比如PIN的密文呀和MAC数据。属于不可见信息。)
------------------
YY年。
MM月。
DD日。
hh时。
mm分。
ss秒。 (批注2: 银联对账结算日期F15,数据格式N4,格式往往是MMdd,就是不带年,导致合作方要自动补个年,容易导致“跨年虫”问题。)
------------------
LL可变长域的长度值(二位数)。
LLL可变长域的长度值(三位数)。
(批注3: 变长数据,分两部分:长度部分+数值部分。长度部分必然是整形数据,采用什么编码呢? 二进制、纯字母还是压缩BCD,国际标准就是纯字母。比如LL的,假如当前长度部分的值是18,那么二进制方式可以用一个字节存放0x18, 纯字母要两个字节“18”,也就是0x31 0x38; 压缩BCD得1字节,也是0x18。)
--------------------
VAR可变长域。
X借贷符号,在数值之前,D表示借,C表示贷。
Z由ISO 7811和ISO 7813制定的磁卡第二、三磁道的数据类型。(批注4: 目前还不太了解)
对可变长数据元,以下例说明:
变量XYZ的数据类型为ANS...999(LLLVAR),则表示:该变量中可含字母、数字和特殊符号,
最长不超过999个字符,长度由三位数字确定。
注:本文档中声明的压缩变量属性是针对POS终端与POS中心之间的消息,POS中心与任何金
融机构之间的消息将全部采用ASCII码且不压缩的格式。(批注4: 实际上很多第三方机构接入银联,银联就是把第三方机构当做POS机的,所以导致其他第三方机构无奈地使用这么繁琐的东西。)
分享到:
相关推荐
《ISO8583中国银联标准》是一个重要的金融通讯协议文档,对于从事金融系统开发、支付接口设计以及银行卡业务处理的专业人士来说,是不可或缺的知识参考资料。ISO8583是一种国际通用的金融交易消息传输协议,而中国...
在IT行业中,银联ISO8583是一个重要的金融通讯协议,主要用于银行间交易的报文交换,如银行卡授权、转账、查询等操作。本文将深入探讨如何在Java环境中解析银联ISO8583报文,以及如何通过提供的代码示例`Iso8583Util...
java实现的8583发包解包,灵活,扩展性强,8583各域能自定义编码和解码规则,包含标准的银联MAC加密算法(ansi x9.19,ansi x9.9)及一个完整的socket客户端请求服务端的demo,修改mac运算规则时,只要重写...
ISO8583是一个国际标准化组织定义的金融交易消息格式,它定义了在金融机构之间交换金融交易数据的标准报文结构。此协议的核心在于其位图(Bitmap)机制,以及按照特定规则编码的各个字段,确保了金融交易数据的安全...
银联 ISO 8583 格式是银行卡交易中广泛使用的报文交换标准,它定义了一种结构化的数据格式,用于在金融机构之间传递交易信息。这个数据包解析帮助工具,配合提供的源码,旨在帮助开发者理解和处理这些复杂的二进制...
ISO8583协议是电子支付领域的一个国际标准,它定义了金融交易数据在不同系统之间交换的格式。这个协议自1987年首次发布以来,已经成为银行卡交易处理的核心,广泛应用于ATM、POS终端、网上银行以及移动支付等多种...
类银联ISO8583是一种用于金融交易通信的协议,与银联国际使用的ISO8583标准相类似。这个协议定义了金融交易数据如何被结构化、编码和解码,以便在银行系统之间安全高效地传输。ISO8583是国际标准化组织(ISO)制定的...
1. ISO 8583:银联交换系统遵循国际标准ISO 8583,用于银行卡交易报文的格式定义,确保不同系统间的数据交换兼容。 2.银联特定协议:除了国际标准,还可能包含银联特有的报文协议,以满足国内银行卡市场的特殊需求。...
《银联银行卡8583交换系统技术规范报文接口规范》是中国银联制定的一份重要技术标准,它详细阐述了8583报文在银行卡交易中的应用和交互规则。8583报文是金融行业特别是银行卡领域广泛使用的通信协议,用于处理银行间...
ISO8583是金融行业中广泛使用的报文标准,用于在银行系统之间交换交易信息,如ATM取款、信用卡支付等。这个压缩包提供的是一套C#实现的ISO8583处理类库,包括源码、示例项目和API文档,帮助开发者理解和处理ISO8583...
ISO8583协议定义了在金融机构之间交换的交易数据结构,每个消息由一系列字段组成,这些字段编码了交易的相关信息,如交易类型、金额、卡片号等。协议中定义了167个不同的字段,每个字段都有特定的含义和格式。这些...
银联 ISO8583 文档: 前 言 VI 1 范围 1 2 规范性引用文件 1 3 术语和定义 1 3.1 受理方 (ACQUIRER) 1 3.2 发卡方 (ISSUER) 1 3.3 转入方 (TRANSFER-IN) 2 3.4 转出方 (TRANSFER-OUT) 2 3.5 交换系统 (BANK ...
8583版指的是ISO8583报文标准,它是全球金融行业广泛采用的数据交换格式,用于银行间电子支付交易。这部分详细规定了各种交易类型对应的报文字段、编码规则以及校验机制。 4. **文件接口**:《中国银联银行卡交换...
是个很好的银联最新资源 8583学习jPOS首先需要了解以下知识作为基础,否则很难入门: 1.iso-8583协议 2.gradle构建 3.maven知识 4.git知识 5.groovy知识 6.BeanShell知识 7.pgp知识
这个标准定义了数据元素的结构和格式,使得不同的金融机构之间能够交换支付信息。在这个“iso 8583 报文解析与封装C代码”压缩包中,包含的文件“iso8583.c”和“iso8583.h”很可能是实现ISO 8583报文处理的C语言源...
支付,金融iso8583报文mac计算、pin计算
总的来说,Java实现ISO8583协议涉及了对协议标准的理解、位图处理、编码解码、异常处理、银联接口集成等多个技术层面,是一个集成了网络通信、数据处理和金融业务知识的复杂任务。通过这样的实现,开发者可以构建起...
中国银联银行卡交换系统技术规范;中国银联银行卡交换系统技术规范;中国银联银行卡交换系统技术规范;中国银联银行卡交换系统技术规范;中国银联银行卡交换系统技术规范;中国银联银行卡交换系统技术规范;中国银联...