NTKO安全签名印章系统Web(HTML)版本集成架构
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来创建印章并完成签章工作,因此,需要在网页的和标记之间,使用:
来引入一个系统所需的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; } }
|
|