大宗商品电子交易市场银行接口转账协议规范
提供给专研行业技术发展和交易市场的技术部内部人员参考之用。 文件状态: 文件标识: 银行转帐协议规范 当前版本: V2.0 [√] 草稿 作 者: 黄东 完成日期: 2008-08-15 [ ] 正式发布 [ ] 正在修改 *变化 版本号 状态 V2.0 M 简要说明 日期 变更人 审核日审核人 期 V2.1 A V2.2 M V2.3 M 协议修订 2008-08-15 黄东 协议修订,增加对金额处理的说明。即发送方金额*100,接收方金额除以100,使2008-10-14 蒋加君 金额不出现小数位。加入帐户图。增加大数据量文件格式定义。 50010增加“收益类2008-10-28 蒋加君 型”字段 50003,50004,50011增加 2008-10-31 “开户银行”字段 50015 增加 “查询2008-11-3 日期”字段 修改20020,10009。删除20016,20022。2008-12-9 增加交易说明,帐户结构说明。 V2.4 M V2.5 M *变化状态:A——增加,M——修改,D——删除
第一章 通讯协议格式
1.1、通讯方式。
从Client到通信服务器的通信在底层符合TCP/IP协议规范,其应用协议是针对转帐特点而设计的。双方通信采用异步通信方式,采用短连接方式,双方均可发起指令,当一方发起指令后在处理完毕后会主动断开。通信工具采用MTI(Transaction Middleware System)提供的包传输协议,每一段数据组成一个数据包,各段数据采用各个数据包同时连续发送的方法实现。
1.2、协议规范
在本协议中无论字符,数字全部采用字符串方式传送。为避免金额出现小数,所有金额在发送时都乘以100后发送,接收方除以100后进行处理。如转帐资金为 1000.23元,数据传输时即为‘100023’,不采用二进制或其它格式存放数据。包头中各字段顺序固定,对于有长度要求的,长度不够时采用右补空格 填充,如‘100002A ’。包体中对数据长度不做具体要求,有具体的分割符号来区分。
1.3、协议包格式约定
1.3.1包头结构定义
MtiHead = Packed RECORD
HeadType:Array[0..4] of CHAR; //数据帧类型 SubType:Array[0..1] of CHAR; //子数据帧类型
HeadVer:Array[0..1] of CHAR; //协议版本号 目前版本必须为字符’20’
ReqMac:Array[0..11] of CHAR; //请求方MAC地址
ReqID:Array[0..19] of CHAR; //请求方标识,应答时原样返回
DataLen:Array[0..4] of CHAR ; //数据帧长度
NextFlag:Array[0..0] of CHAR; //是否有下一包数据 N 没有,Y有
EncFlag:Array[0..0] of CHAR; //加密标志Y加密 N不加密
BankID:Array[0..2] of CHAR; //银行代码
RtnNO: ARRAY[0..4] of CHAR; //返回码 ‘00000’为成功,其他为失败
DataCol :ARRAY[0..0] of BYTE; //包体数据字段列数 没有数据返回时填0x00
DataRow :Array[0..3] of CHAR ; //包体数据行数 没有数据返回时填‘0000’
ExWaterID:Array[0..13] of CHAR; //流水号 系统唯一流水号 CommInfo:ARRAY[0..19] of CHAR; //保留信息 CommInfo[0]=’1’资金管理客户端
// CommInfo[0]=’2’交易客户端
CheckNum :ARRAY[0..4] of CHAR; //校验和 end;
说明:HeadType是系统所有交易类型的定义,如90001,90002等
SubType:是系统所有交易子类型定义,子类型不唯一,只能和主类型配合一起使用
DataLen:是数据域的长度,不包括包头数据长度
NextFlag:当有多包数据要传输时,如果有下一包数据Y,否则N ,如果只有一包或没有数据包填N
RtnNO:返回码 ‘00000’为成功,其他为失败 EncFlag:加密标志,代表数据域是否采用加密处理
ExWaterID: 系统唯一标识 BankID银行代码:
银行代码 001 002 003 004 005 006 007 008 009 银行名称 浦发行 工行 招行 农行 建行 交行 广发行 中国银行 商行 CheckNum包头数据校验和,具体校验算法另行定义 数据包结构具体如下表所示:
项目 HeadType SubType HeadVer ReqMac ReqID DataLen NextFlag EncFlag BankID RtnNO DataCol DataRow ExWaterID CommInfo CheckNum 数据 数据帧类型 子数据帧类型 协议版本号 目前版本必须为字符’20’ 请求方MAC地址 请求方标识,应答时原样返回 数据帧长度 是否有下一包数据 N 没有,Y有 加密标志0x01加密 0x00不加密 银行代码 返回码 包体数据字段列数 包体数据行数 流水号 保留信息 校验和 USERID<#>CHANGEMONEY<#>INOUTTYPE<#> 0001<#>3005.23<#>1<#> DataPack 0002<#>3005.23<#>1<#> 0003<#>3005.23<#>1<#> 包头 包体
相关推荐: