银行网上银行系统
Ukey程序维护手册
二零零九年一月
修订状况
章节编号 | 章节名称 | 修订内容简述 | 修订日期 | 修订前版本号 | 修改人 | 批准人 |
1概述
本文档是银行网上银行系统Ukey相关应用程序维护手册文档,在有新类型Ukey的情况下,完成以下工作。
2硬件要求
(1)Ukey序列号规则:
1)长度:12位;
2)规则:2位厂商编号+1位key类型编号+年年+月月+5位顺序数;
3)已使用key厂商编号:01——海泰;02——华大;
4)Key类型编号:0——普通key;1——按键key;2——组合key;
3软件包要求
(1)Ukey厂商需要提供两个安装包,一个包含Ukey相关内容、格尔签名控件、CFCA根证书,其中格尔控件有两个版本分别是Win 2000和Win xp一个版本,Win 2003和Win Vista及以上一个版本,另一个是只包含Ukey相关内容的安装包;
(2)程序版本号规则:4节10进制数字,以英文点(.)分隔,逐版本递增,例如:.15;
(3)CSP列表名规则:厂商名称大写拼音 FOR BGB
1)已使用CSP列表名:
海泰:HAITAI FOR BGB
华大:HUADA FOR BGB
4接口要求
在新增一种Ukey类型的情况下,Ukey厂商除了提供CSP程序外,还需要提供以下接口,对于接口的返回值如果是操作类,返回0表示成功,负数表示失败,其中-1为网银系统使用,Ukey厂商需要避免使用。函数名称key由Ukey厂商自己定义。
(1)获取设备数量:
函数:int getKeyNum()
返回:设备数量
(2)获取设备名称:
函数:String getKeyName()
返回:设备名称
如果有多个设备的情况下,提供设备选择框
(3)修改设备名称:
函数:String changeKeyName(String name)
参数:新的Ukey名称
返回:0成功,-1以下数字失败
如果有多个设备的情况下,提供设备选择框
(4)修改Ukey密码:
函数:String changeKeyPin(String oldPin,String newPin)
参数:oldPin 旧密码 newPin 新密码
返回:0成功,-2 Ukey锁定 ,-2以下数字失败,1、2、3、4、5 修改密码剩余尝试次数
如果有多个设备的情况下,提供设备选择框,修改密码,用户最多有6次的尝试机会,
(5)初始化Ukey:
函数:String initKey(String flag)
参数:flag 是否能够初始化标志 0 无论何种情况都可以初始化 1 在Ukey没有证书的情况下可以初始化
返回:0成功,-1以下数字失败
如果有多个设备的情况下,提供设备选择框
(6)获取Ukey序列号:
函数:String getKeySN()
返回:Ukey序列号
如果有多个设备的情况下,提供设备选择框
(7)下载证书时获取Ukey序列号:
函数:String getKeySNDownLoad()
返回:Ukey序列号
在下载证书的时候,调用此接口,返回Ukey序列号,如果有多个设备,由于在选择csp后已经选择了一次设备,在这里不能再次弹出设备选择框
(8)获取驱动版本号:
函数:String getVersion()
返回:驱动设备版本号
5液晶key解析格式
bank文件在签名的时候,液晶key厂商需要根据以下格式解析显示:
签名原文:<message><data>原始信息(请忽略)</data><show>业务名称:对外转账;付款账
号:123123123;收款账号:456456;交易金额:1234.01;</show></message>
液晶key显示<show></show>中的内容,如果没有该标签不显示任何信息,其中各项以分号(;)作为分隔符,显示如下:
业务名称:对外转账
付款账户:123123123
收款账户:456456
6应用程序修改
在新增Ukey的情况、原有Ukey驱动升级的时候,需要对网银的应用程序做相应修改。
6.1个人网银
6.1.1UKEY的信息管理
根据核心返回的key序列号驱分是华大,海泰(另加一KEY的话需要修改页面)。页面需要
引入
<OBJECT id="haitai" codeBase="CheckUSBKey.CAB#version=1,0,0,3" height="0" width="0" classid="clsid:77615B26-22F6-40FF-8BF6-03E456CDD290" VIEWASTEXT></OBJECT>
<OBJECT ID="huada" CLASSID="clsid:19A9F381-6B54-45C></OBJECT>
(1)获取名称用参数 function IMgetKeyName()实现KEY的名称获取。
修改名字的时后需要调用getKeyNum(keyType),keyType是由登录的时后取得的序列号前两位决定,
01—代表海泰,02—代表华大(有另一新KEY厂商,需要修改的getKeyNum(keyType),定义另外一个新的参数),检查是否插入的KEY是否对应的厂商。
(2)修改名称用 function ImchangeKeyName()。
修改名字的时后需要调用getKeyNum(keyType),keyType是由登录的时后取得的序列号前两位决定,
01—代表海泰,02—代表华大(有另一新KEY厂商,需要修改的getKeyNum(keyType),定义另外一个新的参数。), 检查是否插入的KEY是否对应的厂商。
(3)密码修改用 function IMchangeKeyPass()。
修改名字的时后需要调用getKeyNum(keyType),keyType是由登录的时后取得的序列号前两位决定,
01—代表海泰,02—代表华大(有另一新KEY厂商,需要修改的getKeyNum(keyType),定义另外一个新的参数。)检查是否插入的KEY是否对应的厂商,是后就修改成功。
6.1.2UKEY初始化
初始化页面在mvcs/perbank/keyOperate/页面修改,根据核心返回的序列号去区分不同的厂商。
引入页面,获取getKeyNum(keyType)。
调用IMkeyInit()实现数据初始化,需要记得厂商要一致,如果插入的厂商与序列号对应不上,
就会初始化不成功,如果KEY中有证书也会初始化不成功。
6.1.3新增KEY类型
<OBJECT ID="huada" CLASSID="clsid:19A9F381-6B54-45C></OBJECT>
<OBJECT id="haitai" classid="clsid:77615B26-22F6-40FF-8BF6-03E456CDD290"></OBJECT>
添加OBJECT,
假如需要添加一个新的key厂商:
(1)需要修改,添加一变量var TEST = 3;(以TEST作为厂商名)
在function getKeyNum()添加一字段:
if(HUADA == keyType)
{
var num = huada.GetKeyNum();
return num;
}else if(HAITAI == keyType)
{
var num = haitai.GetDeviceCount();//0,1,2,...
return num;
} else if(TEST == keyType)
{
var num = TEST.GetDeviceCount();//0,1,2,...
return num;
}else
{
return 0;
}
(2) 需要修改scripts/certDownCus,setkey(keyType)
if(cspName.indexOf("HAITAI")>=0 && keyType==HAITAI)
{
cspSelect.options[i].selected = true;
break;
}else if(cspName.indexOf("HUADA")>=0 && keyType==HUADA)
{
cspSelect.options[i].selected = true;
break;
} else if(cspName.indexOf("TEST")>=0 && keyType==TEST)//添加新KEY厂商
{
cspSelect.options[i].selected = true;
break;
}
else
{
cspSelect.options[0].selected = true;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论