网银适配器二次开发手册Word文档格式.docx
- 文档编号:5771928
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:19
- 大小:106.70KB
网银适配器二次开发手册Word文档格式.docx
《网银适配器二次开发手册Word文档格式.docx》由会员分享,可在线阅读,更多相关《网银适配器二次开发手册Word文档格式.docx(19页珍藏版)》请在冰点文库上搜索。
备注:
对应U8版本是U861、U852、U860依次向后兼容!
三、运行环境
硬件要求:
CPU:
1.6GHz,内存:
512M,磁盘空间:
500M
操作系统:
Windows2000Professional
支持二次开发语言:
可编译生成动态库的任何语言,如:
VB,VC等。
四、软件加密
暂无。
五、网银适配器原理
1、UFBank作用
网银适配器(UFBank)的主要作用是作为业务系统(即NC、U8等)与银行系统连接的桥梁。
UFBank屏蔽了不同银行数据格式和连接方式的不同,将其转换成统一的数据格式(内部标准格式)和连接方式,业务系统只与内部标准接口打交道。
在增加新的银行接口,或银行系统升级时,只需要升级UFBank即可,从而有效地保证了业务系统的相对独立性,使其受增加新的银行接口、银行系统升级的影响很小。
在UFBank中,不进行任何业务处理。
UFBank只有银行参数配置、日志查询、测试界面外。
在实际运行时没有可见界面。
2、UFBank构成与工作原理
UFBank主要由两部分组成:
UFBankService和UFBankPlugin。
UFBankService主要包括:
●一个WebService,通过WEB服务的方式接收来自业务系统的指令,并将执行结果通过WEB服务再传回业务系统。
在UFBank2.0中,WebService的核心文件是UFBank.asp。
其核心代码如下:
SetobjDom=CreateObject("
msxml2.domdocument"
)
objDom.Load(Request)’获得业务系统发来的指令
srcData=objDom.xml’将指令数据赋予字符串变量srcData
objUFBank=CreateObject("
UFBank.clsService"
)’创建接口服务对象
retdata=objUFBank.sendBank(cstr(srcdata))
’调用接口服务对象的方法,并返回指令执行的结果
Response.writeretdata’将执行结果返回业务系统
●一个接口服务类UFBank.clsService。
该接口服务类主要作用是:
解析业务系统的指令数据,根据指令数据中的银行标识调用相应的银行接口插件(即UFBankPlugin)。
该类是UFBankService的核心。
银行接口插件必须实现UFBank.clsService要求的接口方法sendBank(taskedasstring,strBankIDasstring,strFuncasstring,lngParaNumaslong,aParaValueasvariant,SrcDataasstring,RetDataasstring,strErrMsgasstring,objLogasobject)。
●一个日志文件类UFBank.clsLog。
该类实现了对日志文件的读和写,该类的一个实例会通过UFBank.clsSercice传递给银行接口插件,供其写日志文件用。
●一个银行接口插件注册文件UFBankConfig.xml及读写该注册文件的类UFBank.clsConfig。
●一个用户使用的银行参数配置的模块(可执行文件为UFBankConfig.exe)。
用户通过该模块设置各个银行需要的参数。
此外,本模块还额外提供了日志查询的功能。
UFBankPlugin指银行接口插件。
银行接口插件的主要功能是:
(1)将业务系统发来的指令数据(内部标准格式)转换为相应银行的格式;
(2)连接银行并向其发送指令数据;
(3)接收银行的返回值并将其转换为内部标准格式;
(4)将返回值传递给UFBank.clsSercice。
网银适配器二次开发的主要工作就是开发新的银行接口插件。
UFBank2.0中提供了17个银行接口插件,对于UFBank2.0中没有提供的银行接口,分公司、伙伴、用户可以自在本手册的指导下二次开发新的银行接口插件。
在银行接口插件中,必须实现UFBank.clsService要求的接口方法sendBank。
银行接口插件必须编译为dll并且在银行接口插件注册文件UFBankConfig.xml中注册。
六、二次开发过程
开发一个新的银行接口,过程如下:
1、安装业务系统(NC、U8),并在业务系统中注册银行标识等信息。
银行标识指银行的唯一标识,如浦发银行标识为:
SPDB,民生银行标识为CMBC。
一般采用银行的英文缩写。
在业务系统中注册的银行标识与在UFBank中注册的银行标识要前后一致(包括大小写)。
NC3.1SP及以上版本支持银行标识等信息的注册,NC3.1及以前版本、U8各版本不支持二次开发人员注册,需要通知NC资金开发部、U8财务开发部的开发人员修改程序并发放专项补丁。
2、建立UFBank的二次开发环境。
获得UFBank的安装盘,安装后自动建立起了UFBank的二次开发环境。
最新版本的UFBank安装盘可从技术支持网站或知识中心下载,或向集团网银适配器开发经理索取。
2006年网银适配器的开发经理为郑传炎(分机电话:
2756,EMAIL:
zhengcy@U)。
3、注册银行接口插件类及银行参数。
在UFBank的安装目录下找到UFBankConfig.xml。
用文本编辑器(如记事本、UltraEdit等)打开,在其中添加新的银行信息。
下表是一个样例:
<
bankbankid="
CIB"
shortname="
兴业"
fullname="
兴业银行网上银行数据交换平台"
pluginclass="
CIB.clsCIB"
developer="
"
corpration="
developtime="
tel="
email="
>
parameterparaid="
IP"
paraname="
银行服务器IP"
paravalue="
"
ispassword="
n"
note="
设置兴业银行的服务器名称或IP"
/>
TransPort"
端口号"
UserID"
企业代码"
Operator"
操作员"
UserPWD"
密码"
y"
/bank>
配置文件是一个XML文件,其根结点为<
banks>
,在根节点下面有若干<
bank>
节点,每一个<
节点代表一套银行系统(之所以不说代表一家银行是因为有的银行有多套系统,如工行有专业版和普通版、建行有重客和外联)。
元素说明了要注册一个新的银行接口插件。
银行接口插件的信息通过其属性表示。
元素的各属性值说明如下:
●bankid:
必须,全局唯一,指银行的唯一标识,该标识必须与在业务系统(NC/U8等)中注册的标识完全相同,包括大小写。
这是最重要的属性。
●shortname:
必须,银行系统的简称,将会显示在银行参数配置界面的按钮上。
●fullname:
必须,值不能为空,银行系统的全称,将会显示在银行参数配置界面的参数上方。
●pluginclass:
必须,即要进行二次开发的银行接口插件的类名。
该属性与bankid属性同等重要,将决定要调用哪个银行接口插件。
●developer:
插件开发者名称,可选的属性。
●corpration:
插件开发者所属公司,可选的属性。
●developtime:
插件开发完成时间,可选的属性。
●tel:
插件开发者联系电话,可选的属性。
●email:
插件开发者email,可选的属性。
每个<
parameter>
元素则代表一个该银行需要的参数。
在连接银行时,必须有一些参数,如银行服务器的IP、端口号、企业代码、操作员、操作员口令等等。
这些参数的具体值须由用户在运行时指定,所以银行接口必须提供参数设置的界面。
为了避免每个银行接口插件都开发参数设置界面,UFBankService提供了统一的参数设置界面(UFBankConfig.exe),只要将银行需要的参数在配置文件中注册,UFBankService的参数设置界面在运行时就会自动调用这些参数,由用户对其值进行设置。
在UFBankService调用银行接口插件时,会从配置文件中取出各个参数的值,作为参数传给银行接口插件的接口方法SendBank。
●paraid:
必须,参数ID,在一个<
下面,paraid必须唯一,否则会引发未知错误。
●paraname:
必须,参数名称,将在银行参数设置界面显示出来。
●paravalue:
必须,参数值,在二次开发人员注册时该属性的值为空串,在运行时用户在“参数设置界面”输入后会自动保存到配置文件中。
●ispassword:
必须,该参数是否口令字段,值必须为下列之一:
Y|N|YES|NO|T|F|TRUE|FALSE,大小写不限,如为是,则参数设置界面保存paravalue时会对其值进行加密。
这样,在配置文件中看到的paravalue就不会是密码的源文了,由此保证密码数据的安全。
●note:
必须,参数说明,对该参数进行的详细说明,本详细说明在参数设置界面会进行显示。
为了更清楚地说明<
和<
属性的含义,下面对照参数设置界面进行说明:
重要说明:
(1)严禁修改配置文件中原有数据,只能向其中添加新的数据。
(2)银行标识符(<
元素bankid属性的值)与业务系统(NC、U8等)要严格一致,包括大小写。
(3)配置文件中内容是区分大小写的。
(4)添加的数据必须严格符合上述的要求。
UFBankService提供了会对配置文件进行有效性校验,如其格式不符合格式要求,会影响整个UFBank系统的运行,包括其他的银行接口插件。
(5)可以通过参数设置界面(执行UFBank安装目录下的UFBankConfig.exe文件)来测试添加的数据的有效性。
如新增加的银行对应的按钮,以及点击该铵钮后的参数都能正确显示,则说明数据是有效的。
4、开发银行接口插件。
银行接口插件必须编译为dll,插件必须实现UFBankService要求的sendBank接口方法。
该插件编译后的名称必须是上一步在配置文件中注册的<
元素的pluginclass属性的值。
sendBank接口方法声明如下所示:
sendBank(taskIDasstring,_
BankIDasstring,_
FuncIDasstring,_
ParaNumaslong,_
ParaValueasvariant,_
SrcDataasstring,_
RstDataasstring,_
TranFlagasinteger,_
ErrMsgasstring,_
Logasobject,_
optionalparam1asstrng,_
optionalparam2asstring,_
optionalparam3asstring,_
optionalparam4asvariant,_
optionalparam5asvariant)asboolean
返回值说明:
执行成功返回True,执行失败返回False。
参数说明:
●taskid:
任务号,业务系统每次调用UFBank,UFBank都会随机产生一个任务号。
该任务号的主要作用是作为写日志文件时的参数,用以对日志进行分析时使用。
●BankID:
银行标识,在业务系统和UFBank中注册的银行标识。
银行标识主要在UFBankService中使用,用以从配置文件中寻找该银行标识对应的银行接口插件。
该参数对银行接口插件的二次开发者暂时无用。
●FuncID:
功能号,即要求银行做什么样的操作。
UFBank2.0中,要求银行接口插件实现5个功能,这5个功能的功能号分别为:
功能号
含义
ye
余额查询
mx
明细查询(对账单下载)
zf
jtzf
zfcx
如果二次开发的银行对上述有的功能没实现,可返回错误信息。
●ParaNum、ParaValue:
参数个数和参数值,UFBankService从配置文件中找到其注册的参数,并将其参数的个数、参数值通过这两个参数传递过来。
ParaValue是一个String型的一维数组,数组的下限为0,上限为ParaNum-1。
如果ParaNum<
=0,则说明银行接口插件没有在配置文件中注册参数,或取参数数据发生错误,这种情况下ParaValue未初始化,不要对其进行读取,否则会会发生运行时错误。
●SrcData:
业务系统传送过来的指令数据(内部标准格式)。
二次开发人员需要将其转换成银行需要的格式。
内部标准格式的详细说明请参看附录。
●RstData:
指令执行正确后的返回值(内部标准格式)。
●TranFlag:
返回值类型,0成功,1失败,2不明(主要用于支付,由于网络问题、程序异常或银行问题等原因,导致银行没有显式返回成功或失败信息,支付情况不明,此时业务系统(NC、U8等)会限制用户再次支付,用户应尽快手工核对该笔业务的支付情况并根据核对结果再作后续处理)。
●ErrMsg:
指令执行错误后的错误提示。
错误提示的详细说明请参看附录。
●Log:
日志访问对象。
可利用该对象来写日志文件,写日志的方法原型如下:
PublicfunctionPrintLog(taskIDasstring,classNameasstring,msgasstring)asBoolean
‘taskID指任务号,即sendBank方法的第一个参数。
‘className指类名和方法名(格式className:
FunctionName),用来说明从哪个类中写的日志,这样如发生错误,在分析日志文件时会迅速定位到发生错误的类及方法。
‘msg指要写入日志的具体内容。
‘写日志成功返回true,失败返回false
‘为了减少文件操作,建议不要过于频繁的写日志文件,建议在下面关键点写日志文件:
写日志文件的关键点
写入日志的主要内容
sendBank方法的开始
接收到的各参数数据值。
银行连接成功
说明银行已成功连接
向银行发送数据
向银行发送的数据内容
银行返回数据
银行返回数据的内容
sendBank方法的结束
返回的数据内容(发生错误则指错误数据内容)
●param1~param5:
预留的参数,将来扩展使用。
在银行接口插件中,需要实现的主要功能如下:
(1)将指令数据SrcData转换成银行要求的格式。
(2)连接银行服务器。
(3)向银行服务器发送转换后的指令格式。
(4)得到银行的返回值。
(5)将返回值转换为内部标准格式,并通过retData返回给调用者。
七、银行接口插件核心代码示例(兴业银行:
CIB.clsCIB)。
八、传输代码段。
1、Http传输:
DimobjasObject‘传输控件实例
DimlRetasLong‘通讯状态标识
Setobj=CreateObject("
iisagent.datatran"
)‘创建控件
lRet=obj.posthttpex(sURL,strHead,vRet,vData)‘传输数据
IflRet=0Then
发送成功
else
发送失败
EndIf
Setobj=Nothing
说明:
iisagent.datatran是UFBank安装盘中自带的Http传输控件,二次开发和伙伴开发人员可以创建它并调用其Http传输接口。
Posthttpex参数
sURL:
银行服务器URL
strHead:
发送数据报文头
vRet:
返回数据报文
vData:
发送数据报文
2、TCP\IP传输
请参照下面附件VB模块文件TCPSend.bas中的TCPSend方法
九、发布。
1、准备一台服务器,UFBank一般与银行的前置机安装在一台机器上。
2、安装UFBank2.0版。
3、用包含二次开发银行接口插件的配置文件UFBankConfig.xml替换UFBank安装目录下的该文件。
4、将二次开发的银行接口插件(dll文件及其需要的配套文件)拷贝到UFBank安装的机器上,一般建议将其拷贝至UFBank安装目录的UFBankPlugin子目录下。
5、注册银行接口插件regsvr32xxxx.dll
注册后用户即可使用了,具体的使用方法见《网银适配器操作手册》。
一十、安装说明
获得安装包解压双击“setup.exe”即可。
默认安装到c:
\ufbank目录下。
安装程序实现文件拷贝、动态库注册、建立Web站点等功能。
一十一、附录:
用友网银接口内部格式。
数据方向
功能名称
NC\U8发送网银适配器
网银适配器发送NC\U8
?
xmlversion="
1.0"
encoding="
gb2312"
databank='
icbc'
func='
ye'
type='
'
roottag='
input'
rowarea_code='
地区代码'
branch='
分行名称'
account_num='
账号'
txseqid='
建行流水号'
depid='
机构号'
branchid='
联行号'
clientpatchid='
光大交易号'
reqseqno='
农行流水号'
account_cur='
币种'
packageid='
工行包序列ID'
reqreserved1='
备用字段1'
reqreserved2='
备用字段2'
/data>
output'
rowaccount_num='
accnam='
户名'
account_cur='
客户交易号'
交易流水号'
retCode='
错误返回码'
errmsg='
错误描述'
acc_balance='
昨日余额'
渠道流水号'
packetid='
浦发报文号(16位)'
balance='
余额'
usable_balance='
可用余额'
Pres_balance='
冻决余额'
acct_property='
账户属性'
balancesign='
余额符号'
包序列ID'
lasttrandate='
最后交易日期'
userid='
企业代码'
represerved1='
represerved2='
明细下载
mx'
bbknbr='
客户交易号'
query_type='
查询类型'
begin_date='
起始日期'
end_date='
终止日期'
max_amount='
最大金额'
min_amount='
最小金额'
packageid='
path=路径名称'
startpage='
起始页次'
poststr='
总页数'
reqreserved1='
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 适配器 二次开发 手册