《代理外资银行资金清算项目外资银行开发说明a》由会员分享,可在线阅读,更多相关《代理外资银行资金清算项目外资银行开发说明a(19页珍藏版)》请在金锄头文库上搜索。
1、 商密二级外资银行开发手册 2004年12月15版权所有中国工商银行软件开发中心 中国工商银行软件开发中心外资银行开发手册前言本文档用于指导外资银行进行开发,实现工行代理外资银行帐务资金清算的功能。目 录1.概述12.总体架构介绍12.1 系统架构12.1.1系统架构图示12.1.2系统架构说明12.2 安全控制介绍33.功能介绍43.1 功能树43.2 功能描述53.2.1内部管理系统53.2.2交易部分54.交易流程55.外资银行环境要求65.1软件环境65.2网络环境66.接口说明66.1交易包的格式概况66.2 支付指令交易包格式(01类包)76.3 支付指令应答包格式(02类包)86
2、.4历史明细查询指令交易包格式(03类包)86.5历史明细查询指令应答包格式(04类包)96.6支付指令状态查询交易包格式(05类包)116.7支付指令状态查询指令应答包格式(06类包)116.8余额查询指令交易包格式(07类包)126.9余额查询指令应答包格式(08类包)126.10关于交易包格式的说明137.外资银行开发过程描述147.1外资银行提交交易过程:147.2外资银行接收返回数据过程:141. 概述该开发手册从总体框架、功能介绍、交易流程、外资银行环境要求、接口说明、开发过程等各个方面进行了描述,以指导外资银行进行开发。2. 总体架构介绍2.1 系统架构2.1.1系统架构图示2.
3、1.2系统架构说明代理外资银行资金清算系统(以下简称代理资金清算系统)利用网上银行系统的资金清算途径完成与外资银行代理人民币汇兑的汇划和清算功能。外资银行与本系统间通过专线连接,之间的数据通讯使用IBM 公司的MQ系统实现,在本系统与外资银行之间的数据传递在应用上使用国际标准的DES或者3-DES算法。为了保证外资银行的MQ服务器的安全性,外资银行可以使用MQ IPT第三方产品。工行侧使用防火墙将工行内部的MQ服务器和代理资金清算系统前置机与公网隔开,未使用MQ IPT等第三方安全产品。外资银行通过MQ将交易请求包发送到工行MQ,工行MQ将交易数据发送到工行银行系统,对交易数据进行处理,并返回
4、处理信息,通过工行MQ将交易应答包返回到外资银行MQ。注:对于MQ队列的命名规则:工商银行端:队列管理器:QM_ZH 本地接收队列:外资银行英文缩写.TO.ICBC远程队列:Q_R_外资银行英文缩写_PAID传输队列:Q_T_外资银行英文缩写_PAID 请求方通道:外资银行英文缩写.TO.ICBC 服务器通道: ICBC.TO.外资银行英文缩写端口号:1414 外资银行端:队列管理器:PAID_QM外资银行英文缩写本地接收队列:ICBC.TO.外资银行英文缩写远程队列:Q_R_ICBC _PAID 传输队列:Q_T_ICBC_PAID请求方通道:ICBC.TO.外资银行英文缩写 服务器通道:外
5、资银行英文缩写.TO.ICBC端口号:1416 说明:1) 外资银行英文缩写为4位;2) MQ version的版本是 IBM MQ 5.3 特例说明:1)对于外资银行端的队列管理器:PAID_QM外资银行英文缩写,目前生产系统中先期投产的外资银行的英文缩写不是标准的,以后投产的外资银行需按照标准命名。2.2 安全控制介绍1. 在传输层上,由MQ底层的通道加密传输保证数据安全。2. 在网络层上,由防火墙提供安全保护。3. 在应用层上,不同的外资银行采用不同的加密算法和密钥,在交易包上置密押字段。4. 交易请求包(01、03、05、07):交易请求包都加密,加密字段包括请求包中的所有字段(除外资
6、银行ID和密押、结束符外)。加密算法外资银行自己配置,目前工行支持的加密算法为:DES和3DES 算法。加密和密押步骤:第一步,外资银行生成请求包(此时还没有密押和结束符)第二步,对除去第一项外资银行ID(BankID)外的字段进行加密和BASE64编码,此时的请求包为:BankID + 加密和编码后的字段。第三步,对(BankID + 加密和编码后的字段 + 密钥)字符串进行SHA-1消息摘要运算生成20位消息摘要,然后对20位消息摘要进行BASE64编码生成28个字符的密押,并把密押和结束符加到(BankID + 加密和编码后的字段)字符串后面,此时的请求包为:BankID + 加密和编码
7、后的字段 + 密押 + 结束符,这就是加密加押后的请求包格式。5. 交易应答包(02、04、06、08):交易应答包可支持加密(DES或3-DES算法)和不加密,根据客户的要求进行配置。对于加密的交易应答包(除02包外),加密字段包括返回包中所有字段(除密押和结束符外)。加密算法是同外资银行采用的算法(DES或者3-DES),且根据外资银行的密钥进行加密;同时,在加密后的密文后加上密押,密押是根据加密后的密文和外资银行的密钥进行加密,这样只有外资银行自己进行解密、验密。加密和密押步骤:第一步,用外资银行采用的DES或3DES加密方法加密返回包(包括BankID,此时返回包还没有密押和结束符)并
8、在加密后进行Base64编码。第二步,对(加密和编码后的字段 + 密钥)字符串进行SHA-1消息摘要运算生成20位消息摘要,然后对20位消息摘要进行BASE64编码生成28个字符的密押,并把密押和结束符加到(加密和编码后的字段)字符串后面,此时的请求包为:加密和编码后的字段 + 密押 + 结束符,这就是加密加押后的返回包格式。6. 对于目前已经投产的外资银行的加密算法不作改动,仍使用现有的方式。3. 功能介绍3.1 功能树3.2 功能描述3.2.1内部管理系统1、总行柜员:1) 增加外资银行:总行柜员通过该功能,增加和注册外资银行客户ID;2) 删除外资银行注册信息、修改密钥和启动日期:总行柜
9、员通过该同能,删除外资银行的注册ID;同时总行柜员可以修改外资银行的密钥和启动日期。3) 修改外资银行信息:总行柜员通过该功能修改外资银行的中文名称和英文名称。2、网点柜员:1) 注册外资银行付款帐号:网点柜员为开通的外资银行注册付款帐号。如果没有注册付款帐号,则转帐不能成功;2) 查询和打印外资银行的支付指令报表:3) 批复和查询支付指令:网点柜员对落地和可疑的支付指令进行批复。3.2.2交易部分1、支付指令:外资银行可以发起支付指令,进行转帐交易;2、查询开户帐号的当前余额:外资银行通过该功能,查询帐号的当前余额;3、查询开户帐号的历史明细:外资银行通过该功能,查询帐号的历史明细(时间范围
10、为3个月内);4、查询支付指令详细信息:外资银行通过该功能,查询指令需要对应的详细信息。4. 交易流程1、 外资银行通过MQ将交易请求发给工行MQ服务器。2、 如果是支付指令,则检查支付指令是否正确,并返回外资银行相关应答包信息3、 对于查询历史明细、查询支付指令状态、查询余额请求包,工行银行系统进行相应业务处理,并返回相关应答包信息。5. 外资银行环境要求5.1软件环境要求MQ的版本为IBM MQ5.3。其他无要求。5.2网络环境外资银行和工行网络通过专线(至少64K或者更高)相连,ISDN拨号作为备份。6. 接口说明6.1交易包的格式概况1、根据业务的不同种类及数据量的大小,外资银行与工行
11、总行的通讯包共分为8种,由包头的交易包类别进行识别,如下所述:4 类别1代表支付指令包(单包),由外资银行主动发起。(已经在一期已经实现)4 类别2代表支付指令应答包(单包),是工行对外资银行支付指令的应答。(已经在一期已经实现)4 类别3代表历史明细查询指令包(单包),由外资银行主动发起。4 类别4代表历史明细查询指令应答包(单包),是工行对外资银行查询指令的应答。4 类别5代表支付指令状态查询包(单包),由外资银行主动发起。4 类别6代表支付指令状态查询应答包(单包),是工行对外资银行支付指令的应答。4 类别7代表余额查询指令包(单包),由外资银行主动发起。4 类别8代表余额查询指令应答包
12、(单包),是工行对外资银行查询指令的应答。2、已经投产的外资银行交易包格式中,密押字段长度为16位,即对于上述8种交易包中的密押保持不变,仍为16位。6.2 支付指令交易包格式(01类包)说明:下列各项数据项说明中数据长度为最大长度。 序号数据项名称长度数据类型备注1外资银行ID8数字前三位为外资银行人行规定现代化支付系统CNAPS行号的前3位,后5位为银行分支号2交易包类型2数字为013支付种类类型1数字1 外资银行客户付款 2 外资银行客户收款(目前不支持)3 转帐4请求指令编号16字符外资银行方产生,不得重复5支付日期8数字6金额15数字后两位为小数数字,即单位为分7付款行行号和分签号8
13、数字工行汇划行号分签号前5位行号,后3位分签号具体数值根据工行提供的入网机构表取得8付款帐号30字符9付款方帐户名称60字符汉字场,最多30汉字10收款帐号30字符11收款帐户名称60字符汉字场,最多30汉字12收款行行号8数字13收款行行名60字符汉字场,收款行为其他商业银行填写14外资银行客户帐号30字符15外资银行客户名称60字符最多30汉字16用途20字符17备用字段40字符保留以后用18密押28字符采用SHA-1算法计算密押19包结束符1字符为!各数据项业务规则说明: 当支付种类为1外资银行客户付款,工行客户收款时:付款行行号分签号:填写外资银行工行结算户的工行行号和分签号付款帐号、户名:填写外资银行工行结算户的帐号、户名收款帐号、户名:填写实际收款帐号、户名收款行行号:收款人在工行开户时填写工行的行号,若不是则置零收款行行名:收款人不在工行开户时填写它行详细名称外资银行客户、名称:填入实际付款人在外资银行的帐户、名称当支付种类为2外资银行客户收款,工行客户付款时:付款行行号分签号:填写实际付款人所在开户行的工行行号分签号付款帐号、户名:填写实际付款人的帐号、户名收款帐号、户名:填写外资银行工行结算户的帐号、户名收款行行号:填写外资银行工行结算户的工行行号收款行行名:置为空外资银行客户、名称:填入实际的收款人在外资银行的帐户、名称当支付种类为3工行客户间转帐业务时: