1 报文头
本节描述了报文头的产生及其各域的用法。描述中的“b”表示bit;“n”表示十进制数字。另外,本文中所有数字编码均采用ASCII编码方式。报文头在报文中位置如图3所示:
报文头
报文类型标识符
位 图
报文域
图1 报文头
1.1 报文头位置和基本说明
报文头与报文类型标识符、位图和报文域一块组成了一个完整的报文。凡符合2.1版报文接口的所有联机报文都必须带有报文头,当第一个字节不为ASCII码“0”时,CUPS认为该报文为2.1版(2.1版的第一个字节为头长度)。
用于文件传递的8000号系列报文不使用报文头。
1.2 报文头的基本组成
表1 报文头的组成
域
域名
长度
(单位:Byte)
Field1
头长度(Header Length)
1
Field2
头标识和版本号(Header Flag and Version)
1
Field3
整个报文长度(Total Message Length)
4
Field4
目的ID(Destination ID)
11
Field5
源ID(Source ID)
11
Field6
保留使用(Reserved for Use)
3
Field7
批次号(Batch Number)
1
Field8
交易信息(Transaction Information)
8
Field9
用户信息(User Information)
1
Field10
拒绝码(Reject Code)
5
共占46个字节。所有域都为必填域。
在入网机构产生的报文头中拒绝码域填“00000”,而当CUPS在检查中发现报文语法错误或报文结构错误时会将错误位置和错误原因填入该域,并将原始报文头和报文内容一起回应给报文的提出方,以通知报文的提出方报文出错,报文的提出方可进行相关处理。入网机构不能产生非全0的拒绝码域,但是它可能将收到这类拒绝码域。因此,入网机构产生的报文头和CUPS在未发现报文错误时产生的报文应如图4所示:
图2 正常输出报文结构
而CUPS发现报文错误时产生的报文应如图5 所示:
图3 异常输出报文结构
1.2.1.1 报文头的构造
当一个入网机构产生一个请求或通知报文时,须根据要发送的报文数据构造一个报文头;而当入网机构接收到一个请求或通知报文时,必须保存报文头里的一些信息,以便在应答的时候返回给发送方。这些必须保存的域有4、5、6、7、8和9。
当入网机构产生应答报文时,应根据从请求报文头中保存下来的信息调整应答报文的报文头,规则如下:
a) 对源ID和目的ID的处理分以下两种情况:
1) 当应答直接由入网机构的总行产生,而不是由其分支机构产生时,其应答报文头的域4和域5的值将分别对应CUPS发送报文头域5(源ID)和域4(目的ID)的值。图例解释如图6 (假设受理方的机构ID为01030000,发卡方的机构ID为01020000,CUPS的机构ID为00010000):
图4 报文头的源地址及其目的地址的传递示意图1
2) 当应答不是由入网机构的总行产生,而是由分支机构产生时,其应答报文头域5(源ID)的值是真正发送这个应答的机构ID。图例解释如图7 (假设受理方的机构ID为01030000,发卡方总行机构ID为01020000,发卡方分行机构ID为01026400,CUPS的机构ID为00010000):
图5 报文头的源地址及其目的地址的传递示意图2
b) 下列域的值应该原样被返回,不得改动:域7(批次号)、域6(CUPS内部保留码)、域8(交易信息)、域9(用户信息);入网机构也应根据其它域域值的描述规则相应地创建。
1.2.2 报文头各域详细说明
本规范将按照表2 所列各个方面全面解释报文头各域的含义。
表2 域含义
域名
域含义
属性
报文头域的长度和格式
产生者
表明哪个实体可以给报文头域设置非零值
描述
报文头域的可能内容和定义
用法
在对报文头域的处理过程中有用的一些特殊限制
备注
其它说明
域编辑值
报文头域的取值范围和取值规则
拒绝码
拒绝报文头中标识错误意义的代码
1.2.2.1 域1 报文头长度
Header-Length
——属性:8bit二进制数
——产生者:入网机构、CUPS
——描述:该域存放报文头的字节数。
——用法:明确标识报文头的长度。
——域编辑值:该域的值必须为46。
——拒绝码:00015 =非法值
1.2.2.2 域2 头标识和版本号
Header-Flag-and-Version
——属性:8bit二进制数
——产生者:入网机构、CUPS
——描述:该域的第一位代表如下含义:
● 0表示该报文是一个生产报文;
● 1表示该报文是一个测试报文。
该位由交易的发起方填写,在报文传输过程中保持不变。
后7位组成的二进制值定义了该报文格式的版本,目前的值由原始取值000 0001更新为000 0010。000 0001适用于2008年以前发布的规范内容,本次新修订的内容用新报文版本号来标识。
——拒绝码:00025 =非法值
1.2.2.3 域3 报文总长度
Total–Message-Length
——属性:n4,4位定长数字字符
——产生者:入网机构、CUPS
——描述:该域表示报文的总字节数,即从报文头开始到报文结束的总长度。如图8 显示:
图6 正确报文总长度示例
如果这是一个标识报文有误的报文头,那么其域3反映了整个报文的长度,而原始报文头的域3只反映原始报文的长度,如图9 显示:
图7 错误报文总长度示例
——域编辑值:
● 在正确的报文中,该域的值必须大于46且小于等于1846字节。
● 在拒绝的报文中,该域值为:新增报文头长度+原始发送报文长度,即必须大于46+46=92且小于等于1846+46=1892。
——拒绝码:00035 = 非法值
1.2.2.4 域4 目的ID
Destination-Station-ID
——属性:ans11,11位定长数字字符数据,不足11位后补空格
——产生者:入网机构、CUPS
——描述:该域表示报文的路由选择。
——用法:当入网机构产生请求或通知报文时,该域填CUPS的ID,00010000。当入网机构要对输入报文产生应答时,应在该域填上输入报文的域5(源ID)的值。
——域编辑值:入网机构发出的报文中,该域必须为CUPS的ID,00010000;而在CUPS发出的报文中,该域必须包含一个合法的ID。该域值的填写可以参考5.4 的图例解释。本域取值即为入网机构的唯一标识码。
——拒绝码:00045 = 非法值
1.2.2.5 域5 源ID
Source-Station-ID
——属性:ans11,11位定长数字字符数据,不足11位后补空格
——产生者:入网机构、CUPS
——描述:标识报文发送者,但并不一定是原始交易数据的收集者。
——用法:一般地,当与CUPS直联的报文接收者(例如:入网机构总行)在对接收到的请求或通知直接进行应答时,原有目的ID将变成应答报文头的源ID。
在请求报文中该域填写与CUPS直接相连的发送机构代码,即使该直联机构不是该请求报文真正的产生者,而仅是该请求报文的转发者(例如:请求报文由入网机构总行的某个分支机构产生)。在应答报文中,该域填写应答报文真正的产生者的机构代码。
——域编辑值:每一个输出报文都必须包含一个有效的源ID。在受理方初始产生的请求和应答中,该域都必须表示一个有效的受理机构。在发卡方初始产生的请求和应答中,该域也必须表示一个有效的发卡机构。该域值的填写可以参考5.4 的图例解释。
本域取值即为入网机构的唯一标识码。
——拒绝码:00055 = 非法值
1.2.2.6 域6 保留使用
Reserved-for-Use
——属性:24bit二进制数
——产生者:CUPS
——描述:由CUPS产生,内部使用。
——用法:如果是入网机构发出的请求报文,该域值为0;如果是应答报文,则该域值与请求报文中的值一致。
——域编辑值:在入网机构产生的报文中该域必为0。
——拒绝码:00065 = 非法值
1.2.2.7 域7 批次号
Batch-Number
——属性:8bit二进制数
——产生者:CUPS
——描述:该域包含由CUPS为报文分配的批次号。每当CUPS接收到新的请求或通知时,都会把当前的批次号插入到该域。如果CUPS接收到的是以前曾经处理过的报文的关联报文,那么该域的值与以前报文该域的值相同。
——用法:如果是入网机构主动发出的请求报文,该域值为0;入网机构向CUPS返回应答时该域的值与其相应的请求报文中的值相同。
——域编辑值:在入网机构产生的请求报文中该域必为0。
——拒绝码:00075 = 非法值
1.2.2.8 域8 交易信息
Transaction-Information
——属性:ans8,8位字母、数字和特殊字符
——产生者:CUPS
——描述:由CUPS产生,格式如表3所示:
表3 交易信息域格式
交易地域标志
通知交易标识
保留使用
ans1
ans1
ans6
——用法:交易地域标志取值如下:
● 0-银联卡境内交易:受理方和发卡方均在中国大陆境内;
● 1-银联卡跨境交易:受理方和发卡方有且只有一方在中国大陆境内,卡片为银联标识卡;
● 2-外卡收单交易:受理方为中国大陆境内机构,卡片为其他信用卡组织的卡片;
● 3-银联卡境外交易:受理方和发卡方都在中国大陆以外(中国大陆境内机构不会收到此类交易);
通知交易标识用于区分几类特殊的通知类交易,其取值如表4所示:
表4 通知交易标识
取值
含意
包含的交易
0
缺省值
对于一般的通知类交易(以下三类通知以外的所有通知)和所有的请求交易,本域填写缺省值“0”。
1
无含义
保留使用
2
无含义
保留使用
3
风险管理通知类
可疑欺诈交易通知(0620/0630)
——域编辑值:在入网机构发出的请求报文中,该域值为全零,入网机构返回银联处理中心的应答报文中必须将该域值原样返回,银联处理中心发出的报文中需要将该域置为有效值。
——拒绝码:00085 = 非法值
1.2.2.9 域9 用户信息
User-Information
——属性:8bit二进制数
——产生者:入网机构
——描述:该域的值由受理方填写,以便于入网机构的处理。例如,其值可以用于识别一个请求的源。该值仅在入网机构内部使用,在网络传输或其它的处理中心里无意义。
——用法:在请求报文中,该域需要包含在入网机构选项中由用户定义的值。如果不需要用户信息,该域必须填0值;如果是应答报文,入网机构必须保留请求中的域值并在应答时原封不动地返回。
——域编辑值:无
——拒绝码:无
1.2.2.10 域10 拒绝码
Reject-Code
——属性:n5,5位定长数字字符
——产生者:CUPS
——描述:在以下两种情况下,CUPS填写本域表示拒绝该报文的原因:
● 当CUPS检查发现入网机构发来的报文中存在语法错误时,填写本域以指明发生错误的域。此时本域的第1位为0或1,为0表示报文头域出错,为1表示报文体域出错;2-4位表示出错的域;第5位表示错误的类型。
● 由于银联处理中心的原因导致报文被拒绝,填写本域以表示报文被拒绝的原因。此时本域的第1位为2,表示由于银联处理中心的原因导致报文被拒绝;2-5位表示错误的类型。
在入网机构产生的报文头中该域填“00000”。
拒绝码的详细定义请参见《附录》部分《附录A 标准代码定义》的拒绝码表部分。
特别说明:CUPS只对其收到的请求报文发送拒绝报文,对收到的应答报文不发拒绝报文。
——用法:无
——域编辑值:无
——拒绝码:无
1.2.3 报文头在传递过程中的变化
1.2.3.1 符号约定
本规范的符号约定如表5所示。
表5 符号约定
符号
含义
发
送
方
AC
受理方(Acquirer)
SW
CUPS(CUPS)
IS
发卡方(Issuer)
SD
报文发送方(Sender)
RC
报文接收方(Receiver)
OB
转账交易的受理方(Original Bank)
CB
转入方或转出方(Cardhold Bank)
符号
含义
数
据
元
数
值
符
号
M
必须填写的域
C
某条件成立时必须填写的域
C+
某条件成立时增加的域
C-
某条件成立时删除的域
M+
必须增加的域
O
受理方和发卡方自选填写的域
®
转发域
必须与先前报文中对应域的值相同的域
00
自定义数据元中须填充0的域
必须去除的域
注: 受理方同时为转入方或转出方,且按照三方转账交易拆分,需要生成三笔差错流水,一笔为受理方差错流水,一笔为转出方差错流水,一笔为转入方差错流水。
1.2.3.2 报文头的传递
表6 交易由受理方发起且通过CUPS检查的情况
位
数据元
AC
SW
IS
SW
注释
1
Header Length
M
®
M
®
报文头的长度在传递过程中不变
2
Header Flag and Version
M
M
M
M
根据入网机构的报文接口,版本会发生变化
3
Total Message Length
M
M
M
M
各方根据报文体长度的变化而不同
4
Destination ID
00010000
M
00010000
M
受理方的目的ID必须为CUPS的ID,00010000
5
Source ID
M
00010000
M
00010000
6
Reserved for Use
填0
M
M
M
CUPS会赋值,并且发卡方的应答需与请求报文一致,CUPS将应答报文转发至受理方时,该域值与受理方上送的相同
7
Batch Number
填0
M
M
®
CUPS会赋值,并且发卡方的应答需与请求报文一致
8
Transaction Information
填0
M
M
®
CUPS会赋值,并且发卡方的应答需与请求报文一致
9
User Info
M
®
M
®
10
Reject Code
填0
®
M
®
无错误时继续转发
表7 交易由受理方发起且未通过CUPS检查时新增报文头的传递情况
位
数据元
AC
SW
注释
1
Header Length
M
®
报文头的长度在传递过程中不变
2
Header Flag and Version
M
M
根据入网机构的报文接口,版本会发生变化
3
Total Message Length
M
M
各方根据报文体长度的变化而不同
4
Destination ID
00010000
M
受理方的目的ID必须为CUPS的ID,00010000
5
Source ID
M
00010000
6
Reserved for Use
填0
M
CUPS会赋值,并且发卡方的应答需与请求报文一致
7
Batch Number
填0
M
CUPS会赋值,并且发卡方的应答需与请求报文一致
8
Transaction Information
填0
M
CUPS会赋值,并且发卡方的应答需与请求报文一致
9
User Info
M
®
10
Reject Code
填0
C+
发生错误时拒绝码由CUPS产生,且不再继续传递而是退回受理方
表8 交易由CUPS发起的情况
位
数据元
SD(SW)
RC
注释
1
Header Length
M
M
标准报文头的长度在传递过程中不变
2
Header Flag and Version
M
M
根据入网机构的报文接口,版本会发生变化
3
Total Message Length
M
M
各方根据报文体长度的变化而不同
4
Destination ID
M
00010000
接收方直接响应CUPS,因此目的ID须为CUPS的ID,00010000
5
Source ID
00010000
M
由CUPS发出的报文,源ID须为CUPS的ID,00010000
6
Reserved for Use
M
M
CUPS会赋值,并且发卡方的应答需与请求报文一致
7
Batch Number
M
M
CUPS会赋值,并且发卡方的应答需与请求报文一致
8
Transaction Information
M
M
CUPS会赋值,并且发卡方的应答需与请求报文一致
9
User Info
填0
M
10
Reject Code
填0
M
