有关NTKO 安全签名印章系统WEB版本的详细信息,请参考《NTKO安全签名印章系统WEB版编程接口参考》
1、NTKO安全签章系统WEB版本体系介绍
NTKO安全签名印章系统WEB版本由两部分组成:
- NTKO安全签名印章系统Helper控件(NTKO WebSignHelper 控件);
- NTKO安全签名印章系统签章控件
Helper控件负责在网页上创建签章控件,并调用签章控件的方法实现签章。后者是签章的实现控件。另外,Helper控件还负责将网页上已经存在的签章控件的数据保存到WEB服务器,以及从WEB服务器装载所有的签章数据,并在网页上恢复所有签章。
您在编程中直接使用到的一般是NTKO安全签名印章系统Helper控件(NTKO WebSignHelper 控件)的属性和方法,以及签章控件的WebSignInfo属性。
2、编程简要说明
要正确使用NTKO安全签名印章系统WEB版,一般的过程如下:
- 调用Helper对象的AddSecSignOcx方法创建一个对象,并获取返回的签章对象;
- 设定签章对象的WebSignInfo属性,从而指明该签章验证的网页域;
- 将签章对象作为第一个参数,调用Helper对象的AddSecHandSign、AddSecSignFromLocal,AddSecSignFromURL或者AddSecSignFromEkey方法,进行签名或者盖章;
- (可选)读取Helper对象的SignsCount属性,获得签章数量,保存到表单的隐藏域;
- 调用Helper对象的SaveToURL方法,将签章数据保存到WEB服务器。
- 打开网页的时候,在onload事件中,调用Helper对象的LoadFromURL方法,将签章数据装载到WEB网页。
简单示例:
function AddSecHandSign()
{
var secSignObj = ntkoobj.AddSecSignOcx("SecHandSignID",200,300);
secSignObj.WebSignInfo = WebSignInfo;
ntkoobj.AddSecHandSign(secSignObj,'测试用户');
}
上面的方法是进行手写签名。其中,ntkoobj是Helper对象,而secSignObj是新增的签章对象。
3、网页中必须包含的js文件
因为NTKO安全签名印章系统WEB版本需要调用一个js文件中的固定名称的JavaScript Function来创建印章并完成签章工作,因此,需要在网页的<head>和</head>标记之间,使用:
<SCRIPT LANGUAGE="JavaScript" type="text/javascript" src="NtkoAddSecSign.js"></SCRIPT>
来引入一个系统所需的NtkoAddSecSign .js文件。这个文件您最好不进行任何修改。除了必须的时候修改编码方式。
和网页在同一目录的NtkoAddSecSign .js文件的内容如下:[注意js的编码方式必须和网页的编码方式一致,请参考相关示例目录下的NtkoAddSecSign .js文件]
//注意:这是内部需要使用的函数,不能修改
function NtkoReserved_AddSecSignOcx(ControlID,ocxLeft,ocxTop)
{
var ocxElement = document.createElement('object');
document.body.appendChild(ocxElement);
if("string" == typeof(ControlID))
{
ocxElement.id = ControlID;
}
ocxElement.style.position = "absolute";
ocxElement.style.pixelLeft = ocxLeft;
ocxElement.style.pixelTop = ocxTop;
ocxElement.classid= "clsid:AA4B3728-B61C-4bcc-AEE7-0AA47D3C0DDA";
ocxElement.width = "10";
ocxElement.height = "10";
return ocxElement;
}
function NtkoReserved_RunSignHelper(ocxElement,UserName,FileName,PromptSelect,
PrintMode,IsUseCertificate,IsLocked,IsCheckDocChange,
IsShowUI,SignPass,SignType)
{
if("object" != typeof(ocxElement)) return;
ocxElement.SetUser(UserName);
switch(SignType)
{
case 0:
{
try
{
ocxElement.DoSign(FileName,PromptSelect, SignPass, PrintMode,
IsUseCertificate, IsLocked,IsCheckDocChange,IsShowUI);
}
catch(err)
{
alert("加盖印章错误!");
ocxElement.Close();
ocxElement.removeNode();
}
}
break;
case 1:
{
try
{
ocxElement.DoHandSign(PrintMode,IsUseCertificate,IsLocked,IsCheckDocChange,IsShowUI);
}
catch(err)
{
alert("手写签名错误!");
ocxElement.Close();
ocxElement.removeNode();
}
}
break;
case 2:
{
try
{
ocxElement.DoSignFromEkey(SignPass,PrintMode,IsUseCertificate,IsLocked,IsCheckDocChange,IsShowUI);
}
catch(err)
{
alert("加盖印章错误!");
ocxElement.Close();
ocxElement.removeNode();
}
}
break;
default:
{
try
{
ocxElement.DoSign(FileName,true, SignPass, PrintMode,
IsUseCertificate, IsLocked,IsCheckDocChange,IsShowUI);
}
catch(err)
{
alert("加盖印章错误!");
ocxElement.Close();
ocxElement.removeNode();
}
}
break;
}
}
|