POS机的报文格式
POS机的主要功能点:
1. 签到
2. 输入密码
3. 消费
4. 余额查询
5. 撤销
6. 系统设置
我公司建议:
1:为统一格式及今后扩展,近可能按照银联标准开发:
2:增加“批结算”功能;
3:建议把卡号信息写在磁条卡“2磁道”;
4:报文格式:
TPDU(10字节) + 报文头(12字节)+ 消息类型(4字节)+ 位图(8字节)+位图保护域的内容(n字节)
A:POS终端与POS中心共用同一主密钥,在POS签到时,POS中心将“工作密钥”加密后回送给POS终端(可以采用“单DES” 或”3DES”加密算法),POS终端接收到数据后,将“工作密钥”解密出来,保存在密码键盘中;作为下次签到前交易时的工作密钥(密码加密密钥和64域 MAC密钥)使用。
B:数据域的具体说明请参考“中国银联POS终端规范(2006年修订版).doc”;
表1 交易要素
交易类型 |
处理码 (3 域) |
服务点条件码 (25 域) |
消息类型 |
交易类型码 (60.1域) |
是否引发冲正 |
查询 |
310000 |
00 |
0200/0210 |
01 |
无 |
预授权 |
030000 |
06 |
0100/0110 |
10 |
有 |
追加预授权 |
030000 |
60 |
0100/0110 |
10 |
有 |
预授权撤销 |
200000 |
06 |
0100/0110 |
11 |
有 |
预授权完成(联机) |
000000 |
06 |
0200/0210 |
20 |
有 |
预授权完成撤销 |
200000 |
06 |
0200/0210 |
21 |
有 |
预授权完成(离线) |
000000 |
06 |
0220/0230 |
24 |
无 |
消费 |
000000 |
00 |
0200/0210 |
22 |
有 |
消费撤销 |
200000 |
00 |
0200/0210 |
23 |
有 |
退货 |
200000 |
00 |
0220/0230 |
25 |
无 |
结算 |
000000 |
00 |
0220/0230 |
30 |
无 |
结算调整 |
000000 |
00 |
0220/0230 |
32 |
无 |
结算调整(追加小费) |
000000 |
00 |
0220/0230 |
34 |
无 |
基于PBOC借/贷记标准的IC卡脚本处理结果通知 |
同执行该脚本通知的原始交易 |
同执行该脚本通知的原始交易 |
0620/0630 |
同执行该脚本通知的原始交易 |
无 |
离线消费 |
000000 |
00 |
0200/0210 |
36 |
无 |
基于PBOC电子钱包的IC卡指定账户圈存 |
600000 |
91 |
0200/0210 |
40 |
有 |
基于PBOC电子钱包的IC卡非指定账户转账圈存 |
620000 |
91 |
0200/0210 |
42 |
有 |
基于PBOC电子钱包的IC卡现金充值 |
630000 |
91 |
0200/0210 |
41 |
有 |
一:报文格式
POS终端上送POS中心的消息报文结构包括TPDU、报文头和应用数据三部分:
TPDU |
报文头 |
应用数据 |
||||||
ISO8583 Msg |
||||||||
ID |
目的 地址 |
源地址 |
应用类别定义 |
软件 版本号 |
终端 状态 |
处理 要求 |
保留 使用 |
交易数据 |
60H |
NN NN |
NN NN |
N2 |
N2 |
N1 |
N1 |
N6 |
不定长度 |
—— TPDU说明:长度为5个字节。目前银联默认为6000090000
—— 报文头说明:总长度为12字节,压缩时用BCD码表示为6个字节长度的数值。
在POS上送的请求/通知报文中,该数值由POS终端应用程序在打包上送时根据POS终端参数和当前状态填入应用类别、软件版本号和终端状态,用于POS中心根据数值进行相应的处理。
在POS中心返回的响应报文中,由POS中心填入处理要求,其他域保持原值返回,POS将根据收到报文头中的处理要求进行相应处理。
报文头取值如下:
● 应用类别定义:
目前只定义
磁条卡金融支付类应用为:60
IC卡金融支付类应用为: 61
磁条卡增值业务类支付为:62
IC卡增值业务类支付为: 63
● 软件版本号:
表2 软件版本号
软件版本号 |
说 明 |
10 |
2001年人民银行POS规范之前版本 |
11 |
2001年人民银行POS规范版本 |
21 |
2002年银联POS规范版本 |
22 |
2004年银联POS规范版本 |
● 终端状态:
表3 终端状态
终端状态 |
含义 |
0 |
正常交易状态 |
1 |
测试交易状态 |
● 处理要求:
表4 处理要求
处理要求编码 |
处理要求说明 |
0 |
无处理要求 |
1 |
下传终端磁条卡参数 |
2 |
上传终端磁条卡状态信息 |
3 |
重新签到 |
4 |
通知终端发起更新公钥信息操作 |
5 |
下载终端IC卡参数 |
6 |
TMS参数下载 |
● 保留使用:暂时不用,填全“0”。
—— 应用数据说明:符合ISO 8583金融交换信息格式的交易数据,本标准将定义各种交易的报文格式。
1.1.1 符号定义
—— 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压缩编码数值
二:具体交易说明
1:签到
表5 签到报文
位 |
域名定义 |
属性 |
格式 |
类型 |
请求 |
响应 |
备 注 |
|
|
消息类型 |
n4 |
|
BCD |
0800 |
0810 |
MSG-TYPE-ID |
|
|
位元表 |
b64 |
|
BINARY |
M |
M |
BIT MAP |
|
11 |
受卡方系统跟踪号 |
n6 |
|
BCD |
M |
M |
POS终端交易流水 |
|
12 |
受卡方所在地时间 |
n6 |
hhmmss |
BCD |
|
M |
|
|
13 |
受卡方所在地日期 |
n4 |
MMDD |
BCD |
|
M |
|
|
32 |
受理方标识码 |
n..11 |
LLVAR |
BCD |
|
M |
|
|
37 |
检索参考号 |
an12 |
|
ASCII |
|
M |
|
|
39 |
应答码 |
an2 |
|
ASCII |
|
M |
|
|
41 |
受卡机终端标识码 |
ans8 |
|
ASCII |
M |
M |
终端代码 |
|
42 |
受卡方标识码 |
ans15 |
|
ASCII |
M |
M |
商户代码 |
|
60 |
自定义域 |
n…011 |
LLLVAR |
BCD |
M |
M |
|
|
60.1 |
交易类型码 |
n2 |
|
BCD |
M |
M |
填“00” |
|
60.2 |
批次号 |
n6 |
|
BCD |
M |
M |
|
|
60.3 |
网络管理信息码 |
n3 |
|
BCD |
M |
M |
单倍长密钥算法终端用001/ 双倍长密钥算法终端用003 |
|
62 |
终端密钥 |
b...056 |
LLLVAR |
BINARY |
|
C |
当39域为“00”时必选,为24、40或56字节的PIK和MAK |
|
63 |
自定义域 |
ans...003 |
LLLVAR |
ASCII |
M |
|
|
|
63.1 |
操作员代码 |
an3 |
|
ASCII |
M |
|
|
|
2:消费
表6 消费报文
位 |
域名定义 |
属性 |
格式 |
类型 |
请求 |
响应 |
备 注 |
|
消息类型 |
N4 |
|
BCD |
0200 |
0210 |
MSG-TYPE-ID |
|
位元表 |
B64 |
|
BINARY |
M |
M |
BIT MAP |
2 |
主账号 |
n..19 |
LLVAR |
BCD |
C |
M |
当22域指明非磁条输入且可判卡号 |
3 |
交易处理码 |
N6 |
|
BCD |
M |
M |
00xxxx |
4 |
交易金额 |
N12 |
|
BCD |
M |
M |
|
11 |
受卡方系统跟踪号 |
N6 |
|
BCD |
M |
M |
POS终端交易流水 |
12 |
受卡方所在地时间 |
N6 |
hhmmss |
BCD |
|
M |
|
13 |
受卡方所在地日期 |
N4 |
MMDD |
BCD |
|
M |
|
14 |
卡有效期 |
N4 |
YYMM |
BCD |
C1 |
C2 |
C1:POS能判断时存在 |
C2:具有有效期的卡存在 |
|||||||
15 |
清算日期 |
n4 |
MMDD |
BCD |
|
M |
|
22 |
服务点输入方式码 |
N3 |
|
BCD |
M |
|
|
23 |
卡片序列号 |
n3 |
|
BCD |
C |
C |
C:当POS能够获得该值时存在; |
25 |
服务点条件码 |
N2 |
|
BCD |
M |
M |
普通消费交易填写00;分期付款消费交易填写64 |
26 |
服务点PIN获取码 |
n2 |
|
BCD |
C |
|
22域指明PIN可输入且持卡人输入了PIN |
32 |
受理方标识码 |
n..11 |
LLVAR |
BCD |
|
M |
|
35 |
2磁道数据 |
z..37 |
LLVAR |
BCD |
C |
|
22域磁条输入且存在二磁道信息 |
36 |
3磁道数据 |
z...104 |
LLLVAR |
BCD |
C |
|
22域磁条输入且存在三磁道信息 |
37 |
检索参考号 |
An12 |
|
ASCII |
|
M |
POS中心系统流水号 |
38 |
授权码 |
an6 |
|
ASCII |
|
C |
交易承兑时由发卡行自定 |
39 |
应答码 |
an2 |
|
ASCII |
|
M |
|
41 |
受卡机终端标识码 |
ans8 |
|
ASCII |
M |
M |
终端代码 |
42 |
受卡方标识码 |
ans15 |
|
ASCII |
M |
M |
商户代码 |
44 |
附加响应数据 |
Ans..25 |
LLVAR |
ASCII |
|
M |
接收/收单机构 |
49 |
交易货币代码 |
an3 |
|
ASCII |
M |
M |
|
52 |
个人标识码数据 |
B64 |
|
BINARY |
C |
|
对于磁条卡交易有PIN输入时必选;对于基于PBOC借/贷记标准的IC卡交易,当使用脱机密码验证时,该域不出现;当使用联机密码验证时,该域出现 |
53 |
安全控制信息 |
N16 |
|
BCD |
C |
C |
有安全要求必选 |
63 |
自定义域 |
ans...063 |
LLLVAR |
ASCII |
|
M |
|
63.1 |
国际信用卡公司代码 |
an3 |
|
ASCII |
|
M |
|
63.2 |
自定义域2 |
ans…120 |
LLVAR |
ASCII |
C |
C |
当POS终端、中国银联、发卡行、商户结算行等需要传送特殊信息时出现 |
64 |
MAC |
b64 |
|
BINARY |
M |
C |
响应消息中39域为“00”时必选 |
|
3:消费冲正
表7 消费冲正报文
位 |
域名定义 |
属性 |
格式 |
类型 |
请求 |
响应 |
备 注 |
|
消息类型 |
n4 |
|
BCD |
0400 |
0410 |
MSG-TYPE-ID |
|
位元表 |
b64 |
|
BINARY |
M |
M |
BIT MAP |
2 |
主账号 |
n..19 |
LLVAR |
BCD |
C |
M |
22域指明非磁条输入且可判卡号 |
3 |
交易处理码 |
n6 |
|
BCD |
M |
M |
同原交易 |
4 |
交易金额 |
n12 |
|
BCD |
M |
M |
同原交易请求 |
11 |
受卡方系统跟踪号 |
n6 |
|
BCD |
M |
M |
同原交易 |
12 |
受卡方所在地时间 |
n6 |
hhmmss |
BCD |
|
M |
|
13 |
受卡方所在地日期 |
n4 |
MMDD |
BCD |
|
M |
|
14 |
卡有效期 |
n4 |
YYMM |
BCD |
C |
C |
同原请求交易 |
15 |
清算日期 |
n4 |
MMDD |
BCD |
|
M |
|
22 |
服务点输入方式码 |
n3 |
|
BCD |
M |
|
同原交易 |
23 |
卡片序列号 |
n3 |
|
BCD |
C |
C |
C:当POS能够获得该值时存在;同原始交易 |
25 |
服务点条件码 |
n2 |
|
BCD |
M |
M |
同原交易 |
32 |
受理方标识码 |
n..11 |
LLVAR |
BCD |
|
M |
|
37 |
检索参考号 |
an12 |
|
ASCII |
|
M |
POS中心系统流水号 |
38 |
授权标识应答码 |
an6 |
|
ASCII |
C |
|
C:如果原始交易的应答中有授权码,则须填入原交易授权码 |
39 |
应答码 |
an2 |
|
ASCII |
M |
M |
请求时为冲正原因 |
41 |
受卡机终端标识码 |
ans8 |
|
ASCII |
M |
M |
同原交易 |
42 |
受卡方标识码 |
ans15 |
|
ASCII |
M |
M |
同原交易 |
44 |
附加响应数据 |
ans..25 |
LLVAR |
ASCII |
|
M |
接收/收单机构 |
49 |
交易货币代码 |
an3 |
|
ASCII |
M |
M |
同原交易 |
64 |
MAC |
b64 |
|
BINARY |
M |
C |
响应消息中39域为“00”时必选 |
注: 由下列情形引发冲正: a) POS终端在时限内未能收到POS中心的应答消息而引发,冲正原因码填“98”。 b) POS终端在时限内收到POS中心的批准应答消息,但由于POS机故障无法完成交易而引发,冲正原因码填“96”。 c) POS终端对收到POS中心的应答消息,验证MAC出错,冲正原因码填“A0”。 d) 其他情况,冲正原因码填“06”。 |
4:余额查询
表8 余额查询报文
位 |
域名定义 |
属性 |
格式 |
类型 |
请求 |
响应 |
备 注 |
|
消息类型 |
n4 |
|
BCD |
0200 |
0210 |
MSG-TYPE-ID |
|
位元表 |
b64 |
|
BINARY |
M |
M |
BIT MAP |
2 |
主账号 |
n..19 |
LLVAR |
BCD |
C |
M |
当22域指明非磁条输入且可判卡号 |
3 |
交易处理码 |
n6 |
|
BCD |
M |
M |
31xxxx |
11 |
受卡方系统跟踪号 |
n6 |
|
BCD |
M |
M |
POS终端交易流水号 |
12 |
受卡方所在地时间 |
n6 |
hhmmss |
BCD |
|
M |
|
13 |
受卡方所在地日期 |
n4 |
MMDD |
BCD |
|
M |
|
14 |
卡有效期 |
n4 |
YYMM |
BCD |
C1 |
C2 |
C1:POS能判断时存在 |
C2:具有有效期的卡存在 |
|||||||
22 |
服务点输入方式码 |
n3 |
|
BCD |
M |
|
|
23 |
卡片序列号 |
n3 |
|
BCD |
C |
C |
C:当POS能够获得该值时存在; |
25 |
服务点条件码 |
n2 |
|
BCD |
M |
M |
00 |
26 |
服务点PIN获取码 |
n2 |
|
BCD |
C |
|
当22域指明PIN可输入且持卡人输入了PIN |
32 |
受理方标识码 |
n..11 |
LLVAR |
BCD |
|
M |
|
35 |
2磁道数据 |
z..37 |
LLVAR |
BCD |
C |
|
当22域指明磁条输入且存在二磁道信息 |
36 |
3磁道数据 |
z...104 |
LLLVAR |
BCD |
C |
|
当22域指明磁条输入且存在三磁道信息 |
37 |
检索参考号 |
an12 |
|
ASCII |
|
M |
POS中心流水号 |
39 |
应答码 |
an2 |
|
ASCII |
|
M |
|
41 |
受卡机终端标识码 |
ans8 |
|
ASCII |
M |
M |
POS终端代码 |
42 |
受卡方标识码 |
ans15 |
|
ASCII |
M |
M |
商户代码 |
44 |
附加响应数据 |
ans..25 |
LLVAR |
ASCII |
|
M |
接收/收单机构 |
49 |
交易货币代码 |
an3 |
|
ASCII |
M |
M |
|
52 |
个人标识码数据 |
b64 |
|
BINARY |
C |
|
对于磁条卡交易有PIN时必选;对于基于PBOC借/贷记标准的IC卡交易,当使用脱机密码验证时,该域不出现;当使用联机密码验证时,该域出现 |
53 |
安全控制信息 |
n16 |
|
BCD |
C |
C |
有安全要求时必选 |
54 |
附加金额 |
an…020 |
LLLVAR |
ASCII |
|
C |
39域为“00”时必选 |
64 |
MAC |
B64 |
|
BINARY |
M |
C |
响应消息中39域为“00”时必选 |
a:若无授权金额,该域填零。 b:若无交易货币代码,该域填交易币种。 c:若无其它金额,该域填零。 |
5:消费撤销
表9 消费撤销报文
位 |
域名定义 |
属性 |
格式 |
类型 |
请求 |
响应 |
备 注 |
|
消息类型 |
n4 |
|
BCD |
0200 |
0210 |
MSG-TYPE-ID |
|
位元表 |
b64 |
|
BINARY |
M |
M |
BIT MAP |
2 |
主账号 |
n..19 |
LLVAR |
BCD |
C |
M |
22域指明非磁条输入且可判卡号 |
3 |
交易处理码 |
n6 |
|
BCD |
M |
M |
20XXXX |
4 |
交易金额 |
n12 |
|
BCD |
M |
M |
同原消费交易 |
11 |
受卡方系统跟踪号 |
n6 |
|
BCD |
M |
M |
POS终端交易流水号 |
12 |
受卡方所在地时间 |
n6 |
hhmmss |
BCD |
|
M |
|
13 |
受卡方所在地日期 |
n4 |
MMDD |
BCD |
|
M |
|
14 |
卡有效期 |
n4 |
YYMM |
BCD |
C1 |
C2 |
C1:POS能判断时存在 |
C2:具有有效期的卡存在 |
|||||||
15 |
清算日期 |
n4 |
MMDD |
BCD |
|
M |
|
22 |
服务点输入方式码 |
n3 |
|
BCD |
M |
|
|
23 |
卡片序列号 |
n3 |
|
BCD |
C |
C |
C:当POS能够获得该值时存在;同原始交易 |
25 |
服务点条件码 |
n2 |
|
BCD |
M |
M |
00/64 |
26 |
服务点PIN获取码 |
n2 |
|
BCD |
C |
|
22域指明PIN可输入且持卡人输入了PIN |
32 |
受理方标识码 |
n..11 |
LLVAR |
BCD |
|
M |
|
35 |
2磁道数据 |
z..37 |
LLVAR |
BCD |
C |
|
22域磁条输入且存在二磁道信息 |
36 |
3磁道数据 |
z...104 |
LLLVAR |
BCD |
C |
|
22域磁条输入且存在三磁道信息 |
37 |
检索参考号 |
an12 |
|
ASCII |
M |
M |
请求时为原消费交易参考号 |
38 |
授权标识应答码 |
an6 |
|
ASCII |
C1 |
C2 |
C1:如果原始交易的应答中有授权码,则须填入原交易授权码 |
C2:交易承兑时由发卡行自定 |
|||||||
39 |
应答码 |
an2 |
|
ASCII |
|
M |
|
41 |
受卡机终端标识码 |
ans8 |
|
ASCII |
M |
M |
同原交易 |
42 |
受卡方标识码 |
ans15 |
|
ASCII |
M |
M |
同原交易 |
44 |
附加响应数据 |
ans..25 |
LLVAR |
ASCII |
|
M |
接收/收单机构 |
49 |
交易货币代码 |
an3 |
|
ASCII |
M |
M |
|
52 |
个人标识码数据 |
b64 |
|
BINARY |
C |
|
对于磁条卡交易有PIN输入时必选;对于基于PBOC借/贷记标准的IC卡交易,当使用脱机密码验证时,该域不出现;当使用联机密码验证时,该域出现 |
53 |
安全控制信息 |
n16 |
|
BCD |
C |
C |
有安全要求必选 |
60 |
自定义域 |
n…011 |
LLLVAR |
BCD |
M |
M |
|
60.1 |
交易类型码 |
n2 |
|
BCD |
M |
M |
|
60.2 |
批次号 |
n6 |
|
BCD |
M |
M |
|
60.3 |
网络管理码 |
n3 |
|
BCD |
C |
C |
有后续子域存在时,本域才出现。非网络管理类交易,此处以缺省值000填充 |
60.4 |
终端读取能力 |
n1 |
|
BCD |
C |
C |
仅在IC卡交易、Fall Back、纯磁条卡交易发生在IC卡终端等情况下出现。上述各类情况中该域都填5。 |
60.5 |
基于PBOC借/贷记标准的IC卡条件代码 |
n1 |
|
BCD |
C |
C |
仅在IC卡交易、Fall Back、纯磁条卡交易发生在IC卡终端等情况下出现。IC卡交易、Fall Back交易根据实际情况填写。纯磁条卡交易发生在IC卡终端上填0。 |
61 |
原始信息域 |
n…029 |
LLLVAR |
BCD |
M |
|
|
61.1 |
原批号 |
n6 |
|
BCD |
M |
|
原消费交易的批次号 |
61.2 |
原POS流水号 |
n6 |
|
BCD |
M |
|
原消费交易的流水号 |
63 |
自定义域 |
ans...063 |
LLLVAR |
ASCII |
|
M |
|
63.1 |
国际信用卡公司代码 |
an3 |
|
ASCII |
|
M |
|
63.2 |
自定义域2 |
ans…120 |
LLVAR |
ASCII |
C |
C |
当POS终端、中国银联、发卡行、商户结算行等需要传送特殊信息时出现 |
64 |
MAC |
b64 |
|
BINARY |
M |
C |
响应消息中39域为“00”时必选 |
6:消费撤销冲正
位 |
域名定义 |
属性 |
格式 |
类型 |
请求 |
响应 |
备 注 |
|
消息类型 |
n4 |
|
BCD |
0400 |
0410 |
MSG-TYPE-ID |
|
位元表 |
b64 |
|
BINARY |
M |
M |
BIT MAP |
2 |
主账号 |
n..19 |
LLVAR |
BCD |
C |
M |
22域指明非磁条输入且可判卡号 |
3 |
交易处理码 |
n6 |
|
BCD |
M |
M |
同原交易 |
4 |
交易金额 |
n12 |
|
BCD |
M |
M |
同原交易请求消息 |
11 |
受卡方系统跟踪号 |
n6 |
|
BCD |
M |
M |
同原交易 |
12 |
受卡方所在地时间 |
n6 |
hhmmss |
BCD |
|
M |
|
13 |
受卡方所在地日期 |
n4 |
MMDD |
BCD |
|
M |
|
14 |
卡有效期 |
n4 |
YYMM |
BCD |
C |
C |
同原请求交易 |
15 |
清算日期 |
n4 |
MMDD |
BCD |
|
M |
|
22 |
服务点输入方式码 |
n3 |
|
BCD |
M |
|
原输入方式 |
23 |
卡片序列号 |
n3 |
|
BCD |
C |
C |
C:当POS能够获得该值时存在;同原始交易 |
25 |
服务点条件码 |
n2 |
|
BCD |
M |
M |
同原交易 |
32 |
受理方标识码 |
n..11 |
LLVAR |
BCD |
|
M |
|
37 |
检索参考号 |
an12 |
|
ASCII |
|
M |
POS中心系统流水号 |
38 |
授权标识应答码 |
an6 |
|
ASCII |
C |
|
如果原始交易的应答中有授权码,则须填入原交易授权码 |
39 |
应答码 |
an2 |
|
ASCII |
M |
M |
请求时为冲正原因 |
41 |
受卡机终端标识码 |
ans8 |
|
ASCII |
M |
M |
同原交易 |
42 |
受卡方标识码 |
ans15 |
|
ASCII |
M |
M |
同原交易 |
44 |
附加响应数据 |
ans..25 |
LLVAR |
ASCII |
|
M |
接收/收单机构 |
49 |
交易货币代码 |
an3 |
|
ASCII |
M |
M |
|
53 |
安全控制信息 |
n16 |
|
BCD |
C |
C |
有安全要求必选 |
60 |
自定义域 |
n…011 |
LLLVAR |
BCD |
M |
M |
|
60.1 |
交易类型码 |
n2 |
|
BCD |
M |
M |
同原交易 |
60.2 |
批次号 |
n6 |
|
BCD |
M |
M |
|
60.3 |
网络管理码 |
n3 |
|
BCD |
C |
C |
有后续子域存在时,本域才出现。非网络管理类交易,此处以缺省值000填充 |
60.4 |
终端读取能力 |
n1 |
|
BCD |
C |
C |
仅在IC卡交易、Fall Back、纯磁条卡交易发生在IC卡终端等情况下出现。上述各类情况中该域都填5。 |
60.5 |
基于PBOC借/贷记标准的IC卡条件代码 |
n1 |
|
BCD |
C |
C |
仅在IC卡交易、Fall Back、纯磁条卡交易发生在IC卡终端等情况下出现。IC卡交易、Fall Back交易根据实际情况填写。纯磁条卡交易发生在IC卡终端上填0。 |
61 |
原始信息域 |
n…029 |
LLLVAR |
BCD |
M |
|
|
61.1 |
原批号 |
n6 |
|
BCD |
M |
|
原交易的批次号 |
61.2 |
原POS流水号 |
n6 |
|
BCD |
M |
|
原交易的流水号 |
64 |
MAC |
b64 |
|
BINARY |
M |
C |
响应消息中39域为“00”时必选 |
7:批结算
表10 批结算报文
位 |
域名定义 |
属性 |
格式 |
类型 |
请求 |
响应 |
备 注 |
|
消息类型 |
n4 |
|
BCD |
0500 |
0510 |
MSG-TYPE-ID |
|
位元表 |
b64 |
|
BINARY |
M |
M |
BIT MAP |
11 |
受卡方系统跟踪号 |
n6 |
|
BCD |
M |
M |
POS终端交易流水 |
12 |
受卡方所在地时间 |
n6 |
hhmmss |
BCD |
|
M |
|
13 |
受卡方所在地日期 |
n4 |
MMDD |
BCD |
|
M |
|
15 |
清算日期 |
n4 |
MMDD |
BCD |
|
M |
|
32 |
受理方标识码 |
n..11 |
LLVAR |
BCD |
|
M |
|
37 |
检索参考号 |
an12 |
|
ASCII |
|
M |
POS中心系统流水号 |
41 |
受卡机终端标识码 |
ans8 |
|
ASCII |
M |
M |
|
42 |
受卡方标识码 |
ans15 |
|
ASCII |
M |
M |
|
48 |
附加数据-私有 |
ans…062 |
LLLVAR |
BCD |
M |
M |
结算总额,具体见域说明 |
49 |
交易货币代码 |
an3 |
|
ASCII |
M |
M |
|
60 |
自定义域 |
n…011 |
LLLVAR |
BCD |
M |
M |
|
60.1 |
交易类型码 |
n2 |
|
BCD |
M |
M |
填“00” |
60.2 |
批次号 |
n6 |
|
BCD |
M |
M |
|
60.3 |
网络管理信息码 |
n3 |
|
BCD |
M |
M |
201 |
63 |
自定义域 |
ans...003 |
LLLVAR |
ASCII |
M |
M |
|
63.1 |
操作员代码 |
an3 |
|
ASCII |
M |
M |
|
8:备注(报文)
A:签到
签到原始报文
60 00 03 00 00 60 22 00 00 00 00 08 00 00 20
00 00 00 C0 00 12 00 00 52 38 38 38 38 38 38 38
38 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
00 11 00 00 00 01 00 10 00 03 30 30 31
数据域解析:
MSG TYPE:0800(消息类型)
BITMAP:0020000000C00012(位图)
11域:000052(流水号)
41域:3838383838383838(终端号)
42域:353535353535353535353535353535(商户号)
60域:0011000000010010(批次及网络管理码)
63域:0003303031(操作员代码)
B:消费
签到原始报文
60 00 03 00 00 60 22 00 00 00 00 02 00 30 20
04 C0 20 C0 98 11 00 00 00 00 00 00 00 55 55 00
00 53 02 10 00 06 34 47 61 73 90 01 01 00 10 D1
01 22 01 01 23 45 67 89 38 38 38 38 38 38 38 38
35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 31
35 36 58 E0 31 D4 86 93 2F 32 20 00 00 00 00 00
00 00 00 13 22 00 00 01 00 05 00 32 41 46 36 31
31 32 44
数据域解析:
MSG TYPE:0200
BITMAP:302004C020C09811
3域:000000
4域:000000005555
11域:000053
22域:0210
25域:00
26域:06
35域:344761739001010010D10122010123456789
41域:3838383838383838
42域:353535353535353535353535353535
49域:313536
52域:58E031D486932F32
53域:2000000000000000
60域:001322000001000500
64域:3241463631313244
C:消费冲正
签到原始报文
60 00 03 00 00 60 22 00 00 00 00 04 00 70 20
04 80 02 C0 80 11 16 47 61 73 90 01 01 00 10 00
00 00 00 00 00 55 55 55 00 00 55 02 10 00 39 38
38 38 38 38 38 38 38 38 35 35 35 35 35 35 35 35
35 35 35 35 35 35 35 31 35 36 00 13 22 00 00 01
00 05 00 30 37 36 31 42 30 30 31
数据域解析:
MSG TYPE:0400
BITMAP:7020048002C08011
2域:164761739001010010
3域:000000
4域:000000555555
11域:000055
22域:0210
25域:00
39域:3938
41域:3838383838383838
42域:353535353535353535353535353535
49域:313536
60域:001322000001000500
64域:3037363142303031
D:余额查询
签到原始报文
60 00 03 00 00 60 22 00 00 00 00 02 00 20 20
04 C0 20 C0 98 11 31 00 00 00 00 56 02 10 00 06
34 47 61 73 90 01 01 00 10 D1 01 22 01 01 23 45
67 89 38 38 38 38 38 38 38 38 35 35 35 35 35 35
35 35 35 35 35 35 35 35 35 31 35 36 89 C3 44 01
BD 5E DF 0A 20 00 00 00 00 00 00 00 00 13 01 00
00 01 00 05 00 35 42 32 37 35 43 37 39
数据域解析:
MSG TYPE:0200
BITMAP:202004C020C09811
3域:310000
11域:000056
22域:0210
25域:00
26域:06
35域:344761739001010010D10122010123456789
41域:3838383838383838
42域:353535353535353535353535353535
49域:313536
52域:89C34401BD5EDF0A
53域:2000000000000000
60域:001301000001000500
64域:3542323735433739
E:消费撤销
签到原始报文
60 00 03 00 00 60 22 00 00 00 00 02 00 30 20
04 C0 2C C0 98 19 20 00 00 00 00 00 00 55 55 00
00 57 02 10 00 06 34 47 61 73 90 01 01 00 10 D1
01 22 01 01 23 45 67 89 31 32 33 34 35 36 37 38
39 30 31 32 31 32 33 34 35 36 38 38 38 38 38 38
38 38 35 35 35 35 35 35 35 35 35 35 35 35 35 35
35 31 35 36 F4 12 0E 89 2F 5C 72 A0 20 00 00 00
00 00 00 00 00 13 23 00 00 01 00 05 00 00 12 00
00 01 00 00 53 39 33 39 45 42 38 46 45
数据域解析:
MSG TYPE:0200
BITMAP:302004C02CC09819
3域:200000
4域:000000005555
11域:000057
22域:0210
25域:00
26域:06
35域:344761739001010010D10122010123456789
37域:313233343536373839303132
38域:313233343536
41域:3838383838383838
42域:353535353535353535353535353535
49域:313536
52域:F4120E892F5C72A0
53域:2000000000000000
60域:001323000001000500
61域:0012000001000053
64域:3933394542384645
F:消费撤销冲正
签到原始报文
60 00 03 00 00 60 22 00 00 00 00 04 00 70 20
04 80 06 C0 80 19 16 47 61 73 90 01 01 00 10 20
00 00 00 00 00 00 55 56 00 00 59 02 10 00 31 32
33 34 35 36 39 38 38 38 38 38 38 38 38 38 35 35
35 35 35 35 35 35 35 35 35 35 35 35 35 31 35 36
00 08 23 00 00 01 00 12 00 00 01 00 00 59 43 37
31 41 39 46 32 41
数据域解析:
MSG TYPE:0400
BITMAP:7020048006C08019
2域:164761739001010010
3域:200000
4域:000000005556
11域:000059
22域:0210
25域:00
38域:313233343536
39域:3938
41域:3838383838383838
42域:353535353535353535353535353535
49域:313536
60域:000823000001
61域:0012000001000059
64域:4337314139463241
G:批结算
签到原始报文
60 00 03 00 00 60 22 00 00 00 00 05 00 00 20
00 00 00 C1 80 12 00 00 66 38 38 38 38 38 38 38
38 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
00 62 00 00 00 00 08 88 00 10 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 31 35 36 00 11 00 00 00 02 20 10 00 03 30 30
31
数据域解析:
MSG TYPE:0500
BITMAP:0020000000C18012
11域:000066
41域:3838383838383838
42域:353535353535353535353535353535
48域:006200000000088800100000000000000000000000000000000000000000000000
49域:313536
60域:001100000022010
63域:0003303031
附 录 A个人标识码(PIN)的加密和解密方法
A.1 用于PIN加、解密的主账号PAN取法
A.1.1 手输卡号
如为手输卡号,从所输卡号(2域)右边数第二位开始,向左取12位,作为参与PIN加、解密的PAN。
A.1.2 刷卡方式
如为刷卡方式,从磁道2(35域)分隔符‘=’左边第二位开始,向左取12个字符,作为参与PIN加密的PAN;如只有磁道3(36域),则从磁道3分隔符‘=’左边第二位开始,向左取12个字符,作为参与PIN加、解密的PAN。
A.2 PIN的长度
PIN的长度为6位(可扩展到12位)。
A.3 PIN的字符集
PIN用数字字符表示,下表给出了它的二进制对照表:
表A.1 PIN字符二进制表示
PIN字符 |
二进制表示 |
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
0101 |
6 |
0110 |
7 |
0111 |
8 |
1000 |
9 |
1001 |
A.4 PIN格式
PIN的格式应符合ANSI X9.8 Format(带主账号信息)
PIN BLOCK格式等于PIN按位异或主账号(PAN):
PIN格式:
表A.2 PIN格式
位置 |
长度 |
说明 |
1 |
1 BYTE |
PIN长度 |
2 |
7 BYTE |
6-12位PIN(每个字符占4个BIT,不足右补F) |
PAN格式:
表A.3 PAN格式
位置 |
长度 |
说明 |
1 |
2 BYTE |
%H0000 |
3 |
6 BYTE |
取主账号的右12位(参见A.1) |
示例 1
例如:明文PIN为: 123456,
假设: 磁卡上的PAN:1234 5678 9012 3456 78
截取下的PAN:6789 0123 4567
则用于PIN加密的PAN为:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67
PIN BLOCK为:0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF
异或:0x00 0x00 0x67 0x89 0x01 0x23 0x45 0x67
结果为:0x06 0x12 0x53 0xDF 0xFE 0xDC 0xBA 0x98
示例 2
假设: 磁卡上PAN:1234 5678 9012 3456
截取下的PAN:4567 8901 2345
则用于PIN加密的主账号为:0x00 0x00 0x45 0x67 0x89 0x01 0x23 0x45
PIN BLOCK为:0x06 0x12 0x34 0x56 0xFF 0xFF 0xFF 0xFF
异或:0x00 0x00 0x45 0x67 0x89 0x01 0x23 0x45
结果为:0x06 0x12 0x71 0x31 0x76 0xFE 0xDC 0xBA
PIN的类型(类型2)必须在消息报文的域53(SECURITYRELATED-CONTROL-INFORMATION)中标明。
附 录 B
(规范性附录)
POS终端MAC的算法
POS终端采用ECB的加密方式,简述如下:
a) 将欲发送给POS中心的消息中,从消息类型(MTI)到63域之间的部分构成MAC ELEMEMENT BLOCK (MAB)。
b) 对MAB,按每8个字节做异或(不管信息中的字符格式),如果最后不满8个字节,则添加“0X00”。
示例 :
MAB = M1 M2 M3 M4
其中:
M1 = MS11 MS12 MS13 MS14 MS15 MS16 MS17 MS18
M2 = MS21 MS22 MS23 MS24 MS25 MS26 MS27 MS28
M3 = MS31 MS32 MS33 MS34 MS35 MS36 MS37 MS38
M4 = MS41 MS42 MS43 MS44 MS45 MS46 MS47 MS48
按如下规则进行异或运算:
MS11 MS12 MS13 MS14 MS15 MS16 MS17 MS18
XOR) MS21 MS22 MS23 MS24 MS25 MS26 MS27 MS28
---------------------------------------------------
TEMP BLOCK1 = TM11 TM12 TM13 TM14 TM15 TM16 TM17 TM18
然后,进行下一步的运算:
TM11 TM12 TM13 TM14 TM15 TM16 TM17 TM18
XOR) MS31 MS32 MS33 MS34 MS35 MS36 MS37 MS38
---------------------------------------------------
TEMP BLOCK2 = TM21 TM22 TM23 TM24 TM25 TM26 TM27 TM28
再进行下一步的运算:
TM21 TM22 TM23 TM24 TM25 TM26 TM27 TM28
XOR) MS41 MS42 MS43 MS44 MS45 MS46 MS47 MS48
---------------------------------------------------
RESULT BLOCK = TM31 TM32 TM33 TM34 TM35 TM36 TM37 TM38
c) 将异或运算后的最后8个字节(RESULT BLOCK)转换成16 个HEXDECIMAL:
RESULT BLOCK = TM31 TM32 TM33 TM34 TM35 TM36 TM37 TM38
= TM311 TM312 TM321 TM322 TM331 TM332 TM341 TM342 ||
TM351 TM352 TM361 TM362 TM371 TM372 TM381 TM382
d) 取前8 个字节用MAK加密:
ENC BLOCK1 = eMAK(TM311 TM312 TM321 TM322 TM331 TM332 TM341 TM342)
= EN11 EN12 EN13 EN14 EN15 EN16 EN17 EN18
e) 将加密后的结果与后8 个字节异或:
EN11 EN12 EN13 EN14 EN15 EN16 EN17 EN18
XOR) TM351 TM352 TM361 TM362 TM371 TM372 TM381 TM382
------------------------------------------------------------
TEMP BLOCK= TE11 TE12 TE13 TE14 TE15 TE16 TE17 TE18
f) 用异或的结果TEMP BLOCK 再进行一次单倍长密钥算法运算。
ENC BLOCK2 = eMAK(TE11 TE12 TE13 TE14 TE15 TE16 TE17 TE18)
= EN21 EN22 EN23 EN24 EN25 EN26 EN27 EN28
g) 将运算后的结果(ENC BLOCK2)转换成16 个HEXDECIMAL:
ENC BLOCK2 = EN21 EN22 EN23 EN24 EN25 EN26 EN27 EN28
= EM211 EM212 EM221 EM222 EM231 EM232 EM241 EM242 ||
EM251 EM252 EM261 EM262 EM271 EM272 EM281 EM282
示例 :
ENC RESULT= %H84, %H56, %HB1, %HCD, %H5A, %H3F, %H84, %H84
转换成16 个HEXDECIMAL:
“8456B1CD5A3F8484”
h) 取前8个字节作为MAC值。
取”8456B1CD”为MAC值。