WebSign-开发文档

更新时间:2023-12-06 10:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

WebSign –开发文档 产品名称: WebSign –开发文档 产品代号:WebSign

标记

名称: 状态: 部门: 文档ID:

WebSign开发文档 发布 研发部

WebSign-02-001

一、WebSign开发流程 ................................................................................................................... 5 二、WEB页面调用控件 ................................................................................................................. 7 三、接口说明 ................................................................................................................................... 7

3.1 long SetSignData(BSTR strSignData) ......................................................................... 7 3.2 Void SetPosition(long lPosX, long lPosY, BSTR strTagName) .................................... 8 3.3 BSTR AddSeal(BSTR strSealPath, BSTR strSealName) .............................................. 8 3.4 BSTR HandWrite(long lPenWidth, long lPenColor, BSTR strSealName) ................... 9 3.5 BSTR HandWritePop(long lPenWidth, long lPenColor, long lPageMode,long lWinWidth, long lWinHeight, BSTR strSealName) .......................................................... 11 3.6 long ShowWebSeals() ................................................................................................ 12 3.7 long SetSealSignData(BSTR strSealName, BSTR strSignData) ............................... 12 3.8 long LockSeal(BSTR strSealName, long lLocked) .................................................... 12 3.9 BSTR GetStoreData() ................................................................................................ 13 3.10 long SetStoreData(BSTR StoreData) ....................................................................... 13 3.11 long VerifyDoc(BSTR strSealName) ........................................................................ 13 3.12 long VerifySeal (BSTR strSealName) ...................................................................... 14 3.13 BSTR FindSeal(BSTR strSealName, long lFindMode) ........................................... 15 3.14 long DelSeal(BSTR strSealName) ........................................................................... 15 3.15 long LockSealPosition(BSTR strSealName) ............................................................ 15 3.16 BSTR GetRetCodeStr(long lErrorID) ...................................................................... 16 3.17 BSTR GetLastLog() ................................................................................................. 16 3.18 BSTR HttpAddress ................................................................................................... 16 3.19 BSTR RemoteID ...................................................................................................... 17 3.20 SetCurrUserName (String userName) ..................................................................... 17 3.21 long SetCurrTime(String dateAndTime) .................................................................. 17 3.22 long SetTipBKLeftColor .......................................................................................... 17 3.23 long TipBKRightColor............................................................................................. 17 3.24 long TipLineColor ................................................................................................... 17 3.25 long TipTitleColor ................................................................................................... 18 3.26 long TipTextColor .................................................................................................... 18 3.27 long SetMenuItem(BSTR strSealName, long lIndex); ............................................. 18 2.38 long GetSealBP(BSTR strSealName, BSTR strFilePath);....................................... 19 3.29 long DelLocalFile (BSTR strFilePath); .................................................................. 20 3.30 BSTR GetTempFileName (); .................................................................................... 20 3.31 BSTR GetSealPosX (BSTR strSealName); .............................................................. 20 3.32 BSTR GetSealPosY (BSTR strSealName);............................................................... 20 3.33 BSTR GetSealPosY (BSTR strSealName);............................................................... 21 3.34 BSTR GetSealWidth (BSTR strSealName); ............................................................. 21 3.35 BSTR GetSealHeight (BSTR strSealName); ............................................................ 21 3.36 HRESULT MoveSealPosition(BSTR strSealName,long lPosX, long lPosY, BSTR strTagName); ................................................................................................................... 22 3.37 HRESULT SetDocAutoVerify([in] BSTR strSealName, [in] long lAutoVerify,[out,retval] long *pVal); ............................................................................... 23

3.38 HRESULT GetStoreDataEx([in] BSTR strSealName, [out,retval] BSTR *pVal) .... 23 3.39 HRESULT SetCurrentForm([in]BSTR strCurrentFormName,[out,retval] long *pVal) .............................................................................................................................. 24 3.40 HRESULT GetCurrentFormName ([in]BSTR strCurrentFormName, [out,retval] long *pVal) ...................................................................................................................... 24 3.41 HRESULT GetPosition([in]BSTR strSealName,[out, retval] BSTR *pVal) 24

3.42 HRESULT ShowSeal([in]BSTR strSealName, [in] long lShow, [out, retval] long *pVal); ............................................................................................................................. 25 3.43 HRESULT MovePopWnd([in] long lX, [in] long lY,[in] long lW, [in] long lH, [out, retval] long *pVal); ......................................................................................................... 25 3.44 HRESULT GetSealBmpString([in]BSTR strSealName, [in]BSTR strType, [out, retval] BSTR *pVal); ....................................................................................................... 26 3.45 GetHashFromFile([in]BSTR strFilePath, [in]long lHashType, [out]BSTR *pVal); ............................................................................................................................. 26 3.46 GetSealBmpToFile([in]BSTR strSealName, [in]BSTR strType, [in]BSTR strFilePath,[out, retval] long *pVal); ............................................................................. 26

WebSign简介:

实现在Html页面上加盖电子印章和手写签名,利用电子签名技术实现对表单中的数据区域绑定,达到验证数据完整性和身份可追溯性。 WebSign是一个ActiveX控件,可以很方便的嵌入到任何的B/S的开发平台中,比如:ASP、PHP、JSP … …基于浏览器的应用。 WebSign支持文件证书和USBKey智能卡。

WebSign工作流程

1. 在页面中加入Com组件(WebSign.dll)。

2. 通过javascript脚本来设置当前的印章或者签名对那些数据进行绑定,即设置待签名数

据。

3. 用户插入USBKey,Key里面会有私钥和印章图片。 4. 利用Key中的私钥进行签名,生成签名数据。 5. 获取Key里面的印章信息和证书公钥信息。

6. 在COM组件上显示印章信息,同时把印章信息+证书公钥信息+签名数据都保存到后台

的数据库中。以便下次调用的时候能够显示出来。

一、WebSign开发流程

WebSign网页盖章的原理: 以表单域为原始数据,然后使用数字签名技术对原始数据数字签名(盖章或签名).可以设置绑定多个表单域。

盖章、签字流程: 步骤 说明 1 2 3 4 5 装载控件 填写网页表单域 设置印章或者签名的位置 盖章或签字 接口 SetPosition 备注 ... 设置印章或者签名绑定的数据,或者绑定域名称 SetSignData AddSeal 或 HandWrite 或 HandWritePop LockSealPosition 非必须 GetStoreData 6 7 设置印章位置是否锁定 获取印章和签名数据,并赋值给表单隐藏域 将隐藏域中印章、签名数据和表单元素保存到数据库 演示验证流程:

3.5 BSTR HandWritePop(long lPenWidth, long lPenColor, long

lPageMode,long lWinWidth, long lWinHeight, BSTR strSealName)

功 能:

执行弹出手写窗口状态,此时用户可以在弹出的手写窗口上签署手写意见,保存后,手写印章数据会被作为签名来保存。此手写签名在本系统上与印章处于同种地位。 参数:

lPenWidth:

签字默认笔粗细,1-16。(为0将会使用上次的设置)

lPenColor:

RGB值,(为-1将会使用上次的设置),可以使用十进制或十六进制数表示,如:

0x0000FF 表示画笔为红色 0x00FF00 表示画笔为绿色 0xFF0000 表示画笔为蓝色 0x000000 表示画笔为黑色 0xFFFFFF表示画笔为白色

lPageMode:

保留参数。(指定缩放百分比,100为原始大小,为0将会使用上次的设置)

lWinWidth:

弹出窗口的宽度,单位像素。(为0将会使用默认的设置)

lWinHeight:

弹出窗口的高度,单位像素。(为0将会使用默认的设置)

strSealName:

添加的手写签名的唯一名称,此参数非常重要,用户可以自己命名,但是同一个Html页面中,必须保证唯一。如果此参数为空,则系统会自动生成唯一的名称,并返回。

返回值:

运行成功返回此手写签名的名称,否则返回空。名称很重要,很多情况下需要设置名称,比如数据验证、签名验证… …

说 明:

调用该接口前可以先执行SetSignData方法设置签名绑定数据或者绑定具体的域。运行该接口后,您可以在弹出的手写窗口上签署手写意见,签批保存后重新显示页面时,再调用ShowWebSeals来显示数据,您可以移动签批到合适的位置,然后设置位置锁定,这样手写签批的位置就固定了。

示 例:

//默认笔宽为2,笔的颜色为红色,并返回所写数据在Html页面中的唯一的名称 var strSealName = document.all.DWebSignSealPop.HandWrite (2,255,300,400, \//默认笔宽为2,笔的颜色为黑色,并返回所写数据在Html页面中的唯一的名称

var strSealName = document.all.DWebSignSeal.HandWritePop (2,0,200,300, \

3.6 long ShowWebSeals()

功 能:

重建页面时,调用SetStoreData后系统并不会立刻显示印章或者签名数据,需要再调用ShowWebSeals来显示印章或者签名的信息。 参数:

无 返回值:

0: 正确;非零失败。

说 明:

3.7 long SetSealSignData(BSTR strSealName, BSTR strSignData)

功 能:

设置印章或者签名绑定的数据

参数:

strSealName:

印章的名称,即AddSeal、HandWrite、HandWritePop的返回值,不能为空。

strSignData:

需要绑定的数据,用户可以自己组合。(不支持设置域名称列表)

返回值:

0: 正确;非零失败。

说 明:

3.8 long LockSeal(BSTR strSealName, long lLocked)

功 能:

锁定印章所关联的域。 参 数:

strSealName:

印章的名称,即AddSeal、HandWrite、HandWritePop的返回值,如果此参数为空,则锁定整个文档。

lLocked:

锁定或者解锁,0为解锁;1为锁定。

返回值:

0: 正确;非零失败。

示 例: //锁定文档

var strSealName = document.all.DWebSignSealPop.LockSeal(\

3.9 BSTR GetStoreData()

功 能:获取加密后的页面内所有印章、手写数据 返回值:字符串形式返回加密后的印章、手写数据

说 明:该方法返回数据可以赋值给表单隐藏域,然后随表单保存到数据库 示 例:

document.all.DWebSignSeal.GetStoreData();

3.10 long SetStoreData(BSTR StoreData)

功能:设置印章、签字数据

参数:StoreData为印章或签字的数据,通常来自数据库 返回值:0是设置成功,非0为设置失败

说明:该方法用于输出数据库中印章、签字数据并将显示

示例:

document.all.DWebSignSeal.SetStoreData(“<%=StoreData %>“);

3.11 long VerifyDoc(BSTR strSealName)

功 能:验证数据是否被修改

说 明:该方法用于验证网页内与该seal绑定的表单域数据是否被修改过。如果有绑

定域的数据被修改,印章将显示为无效状态

参 数:

strSealName:

印章的名称,即AddSeal、HandWrite、HandWritePop的返回值,如果此参数为空,则代表针对Html中所有的印章和签名。

返回值:0是验证通过,非0为验证失败 注 意:如果使用自定义数据,那么在使用verifyDoc方法前要先调用SetSealSignData()方法对控件设置数据。(该自定义数据只需要调用一次,你可以在SetStoreData之后调用SetSealSignData函数或在AddSeal,HandWrite(Pop)之前调用SetSignData)

示 例:

document.all.DWebSignSeal. SetSealSignData (\document.all.DWebSignSeal.verifyDoc(\

3.12 long VerifySeal (BSTR strSealName)

功 能:验证印章签名

说 明:该方法用于验证印章签名。可以确认印章所有者 参 数:

strSealName:

印章的名称,即AddSeal、HandWrite、HandWritePop的返回值,如果此参数为空,则代表针对Html中所有的印章和签名。

返回值:0是验证通过,非0为验证失败 示 例:

document.all.DWebSignSeal. VerifySeal (\

3.13 BSTR FindSeal(BSTR strSealName, long lFindMode)

功 能:

查找指定印章。 参数:

strSealName:

印章名称,按照lFindMode的不同可以确定是查找该印章的下一个印章,上一个印章还是确认该印章存在性。如果lFindMode为wsFindNext或wsFindPre,可以为空。

lFindMode:

指定查找方向:wsFindMode模式,可以为wsFindNext(0), wsFindPre(1), wsFindCurr(2)。

返回值:

运行成功返回印章的名称,否则返回空。

说 明:

此借口可以用来遍历印章或检查指定名称印章是否存在。

示 例:

//获取第一个印章名称

var strSealName = document.all.DWebSignSeal.FindSeal(\

3.14 long DelSeal(BSTR strSealName)

功 能:

删除指定印章。 参数:

strSealName:

印章名称,不可以为空。

返回值:

运行成功返回0,否则返回非零。

说 明:

示 例:

//删除Hetong印章

document.all.DWebSignSeal.DelSeal(\

3.15 long LockSealPosition(BSTR strSealName)

功 能:

锁定印章位置。(将不可以解锁) 参 数:

strSealName:

印章的名称,如果此参数为空,则锁定所有印章。

返回值:

0: 正确;非零失败。

示 例:

//固定所有印章位置

var strSealName = document.all.DWebSignSeal. LockSealPosition(\

3.16 BSTR GetRetCodeStr(long lErrorID)

功 能:

返回特定错误号的字符串描述。 参 数: lErrorID:

错误号。

返回值:

错误描述串;返回空失败。

示 例:

var strErrorDesc = document.all.DWebSignSeal. GetRetCodeStr (-10);

3.17 BSTR GetLastLog()

功 能:

返回最后的log信息。 参 数:

无 返回值:

最后的log信息。 示 例:

var strLastLog = document.all.DWebSignSealPop. GetLastLog ();

3.18 BSTR HttpAddress

属 性:

返回或设置远程http地址。网络版websign需要该地址访问服务器。

3.19 BSTR RemoteID

属 性:

返回或设置远程标示号。网络版websign需要该号在服务器上标示自己。

3.20 SetCurrUserName (String userName)

功 能:设置当前盖章用户名,一般用在文件版本上 参 数:userName 当前编辑人的用户名 说 明:此接口要在盖章或者签名之前设置 示 例:

document.all.DWebSignSeal.SetCurrUserName(\张三\

3.21 long SetCurrTime(String dateAndTime)

功 能:设置客户端的盖章时间,防止客户端和服务端的时间误差

参 数:dateAndTime 参数的形式必须为 yyyy-mm-dd hh-mm-ss的形式 返回值:此接口要在盖章或者签名之前设置 示 例:

document.all.DWebSignSeal.SetCurrTime(\

3.22 long SetTipBKLeftColor

属 性:

返回或设置提示框的背景左边颜色,RGB值

3.23 long TipBKRightColor

属 性:

返回或设置提示框的背景右边颜色,RGB值

3.24 long TipLineColor

属 性:

返回或设置提示框的上面线颜色,RGB值

3.25 long TipTitleColor

属 性:

返回或设置提示框的标题颜色,RGB值

3.26 long TipTextColor

属 性:

返回或设置提示框的正文文字颜色,RGB值

3.27 long SetMenuItem(BSTR strSealName, long lIndex);

功 能:

设置右键菜单的隐藏和显示,一般在显示印章的时候调用。 参 数:

strSealName:

印章的名称,不可为空。

long lIndex

菜单的参数列表,是以下数值的组合 MENU_DelSeal = 0x01, //删除印章 MENU_MoveSeal = 0x02, //移动印章 MENU_SealInfo = 0x04, //印章信息 MENU_UserInfo = 0x08, //身份信息 MENU_DocVerify = 0x10, //文档验证 MENU_SealVerify = 0x20, //签名验证 MENU_Field_LockOrUnLock = 0x40, //区域解锁 MENU_Doc_LockOrUnlock = 0x80, //文档解锁 MENU_Pos_Lock = 0x100, //锁定位置 MENU_Version = 0x8000 //关于我们 返回值:

无意义。

示 例:

区域锁定文档锁定

设置当前所有的印章右键菜单中只有”印章信息”一个菜单条。 var strObjectName ;

strObjectName = DWebSignSeal.FindSeal(\ while(strObjectName != \ DWebSignSeal.SetSealSignData(strObjectName,str); DWebSignSeal.SetMenuItem(strObjectName,4); strObjectName = DWebSignSeal.FindSeal(strObjectName,0); }

设置当前所有的印章右键菜单中有”印章信息”和” 文档验证”两个菜单条。 var strObjectName ;

strObjectName = DWebSignSeal.FindSeal(\ while(strObjectName != \ DWebSignSeal.SetSealSignData(strObjectName,str); DWebSignSeal.SetMenuItem(strObjectName,20); strObjectName = DWebSignSeal.FindSeal(strObjectName,0); }

2.38 long GetSealBP(BSTR strSealName, BSTR strFilePath);

功 能:

把指定的印章另存为BMP图片。 参 数:

strSealName:

印章的名称,不可为空。

strFilePath:

另存为的BMP的路径地址。

返回值:

0:正确。

示 例:

把第一个印章保存为图片。 var strObjectName = document.all.DWebSignSeal.FindSeal(\ var vTempPath;

if(strObjectName != \ //获取临时文件的路径 vTempPath = document.all.DWebSignSeal.GetTempFileName() ; //把第一个印章保存到临时文件中 document.all.DWebSignSeal.GetSealBP(strObjectName,vTempPath); //插入图片到指定的书签位置

//此时可以把图片保存到临时文件中 //删除临时文件 document.all.DWebSignSeal.DelLocalFile(vTempPath); }

3.29 long DelLocalFile (BSTR strFilePath);

功 能:

删除本地文件。 参 数: strFilePath:

文件路径。 示 例:

把第一个印章保存为图片。

document.all.DWebSignSeal.DelLocalFile(\

3.30 BSTR GetTempFileName ();

功 能:

获取临时文件名,并不创建临时文件。 返回值:

临时文件路径。 示 例:

把第一个印章保存为图片。

var vTempPath = document.all.DWebSignSeal.GetTempFileName ();

3.31 BSTR GetSealPosX (BSTR strSealName);

功 能:

获取印章的Left坐标。

参 数:

strSealName:

印章的名称,不可为空。

返回值:

Left坐标。 示 例:

返回第一个印章Left值。

var vLeft = document.all.DWebSignSeal.GetSealPosX (\

3.32 BSTR GetSealPosY (BSTR strSealName);

功 能:

获取印章的Top坐标。

参 数:

strSealName:

印章的名称,不可为空。

返回值:

Top坐标。

示 例:

返回第一个印章Left值。

var vLeft = document.all.DWebSignSeal.GetSealPosY (\

3.33 BSTR GetSealPosY (BSTR strSealName);

功 能:

获取印章的Top坐标。

参 数:

strSealName:

印章的名称,不可为空。

返回值:

Top坐标。 示 例:

返回第一个印章Left值。

var vLeft = document.all.DWebSignSeal.GetSealPosY (\

3.34 BSTR GetSealWidth (BSTR strSealName);

功 能:

获取印章的宽度。

参 数:

strSealName:

印章的名称,不可为空。

返回值:

宽度。 示 例:

返回第一个印章Left值。

var vLeft = document.all.DWebSignSeal.GetSealWidth (\

3.35 BSTR GetSealHeight (BSTR strSealName);

功 能:

获取印章的高度。

参 数:

strSealName:

印章的名称,不可为空。

返回值:

高度。 示 例:

返回第一个印章高度。

var vLeft = document.all.DWebSignSeal.GetSealHeight (\

3.36 HRESULT MoveSealPosition(BSTR strSealName,long lPosX, long lPosY, BSTR strTagName);

功 能:

重新设置印章或者签名的位置。必须在SetStoreData 和ShowWebSeals()函数之间调用。 参 数:

strSealName:

印章的名称,不可为空。

lPosX:

印章的X坐标,单位:像素。

lPosY:

印章的Y坐标,单位:像素。

strTagName:

参照物的元素的ID,比如可以设置所添加的印章相对于id=strTagName的元素的位置,如果此参数为空,则相对于Body的位置。 目前只有两种元素适用于这种绑定机制 A.元素为表结构的标识,如下:

B. 元素为层,如下:

返回值:

说 明:

此接口必须在SetStoreData 和ShowWebSeals()函数之间调用。

示 例: //装载数据 document.all.DWebSignSeal.SetStoreData(\

//设置印章名为”test”的印章到id=\的的 (200,400)像素位置。 document.all.DWebSignSeal.MoveSealPosition(\document.all.DWebSignSeal.ShowWebSeals();

3.37 HRESULT SetDocAutoVerify([in] BSTR strSealName, [in] long lAutoVerify,[out,retval] long *pVal);

功 能:

设置是否校验印章绑定数据的完整性,即是否在章上划标记数据已经被修改的黑杠。默认和初始状态是校验的。 参 数:

strSealName:

印章的名称,不可为空。

lAutoVerify:

0:为不校验。1:校验。

返回值:

0:设置成功;非0:设置未成功

说 明:

此接口必须在SetStoreData 和ShowWebSeals()函数之后调用。

示 例:

//装载数据

document.all.DWebSignSeal.SetStoreData(\var strObjectName ; //获取第一个印章

strObjectName = DWebSignSeal.FindSeal(\//显示印章

document.all.DWebSignSeal.ShowWebSeals(); while(strObjectName != \ //设置 即使文档修改,也不校验其完整性。

DWebSignSeal.SetDocAutoVerify(strObjectName,0); //遍历,获取下一个印章

strObjectName = DWebSignSeal.FindSeal(strObjectName,0); }

3.38 HRESULT GetStoreDataEx([in] BSTR strSealName, [out,retval] BSTR *pVal)

功 能:获取加密后的页面内指定印章、手写数据 返回值:字符串形式返回加密后的指定印章、手写数据

说 明:该方法返回数据可以赋值给表单隐藏域,然后随表单保存到数据库 参 数:

strSealName:

印章的名称,如果此参数为空,则此接口与GetStoreData效果相同。

示 例:

//只返回印章名为“Seal10”的印章数据。

document.all.DWebSignSeal.GetStoreDataEx(\

3.39 HRESULT SetCurrentForm([in]BSTR strCurrentFormName,[out,retval] long *pVal)

功 能:设置当前的数据绑定的表单名称。与SetSignData函数之前调用 返回值:0:正确;非0:错误 说 明: 参 数:

strCurrentFormName:

Form表单的名称或者ID。

示 例:

3.40 HRESULT GetCurrentFormName ([in]BSTR strCurrentFormName, [out,retval] long *pVal)

功 能:获取当前的数据绑定的表单名称。 返回值:当前的Form名称 说 明: 参 数:

示 例:

3.41 HRESULT GetPosition([in]BSTR strSealName,[out, retval] BSTR *pVal)

功 能:获取当前指定印章绑定的位置。 返回值:绑定的位置名称 说 明: 参 数:

strSealName:

印章的名称

示 例:

3.42 HRESULT ShowSeal([in]BSTR strSealName, [in] long lShow, [out, retval] long *pVal);

功 能:设置指定印章的显示状态,显示/隐藏。 返回值: 0:失败 1:成功 说 明: 参 数:

strSealName:

印章的名称

lShow:

0:隐藏该印章 1:显示该印章

示 例:

//设置印章名为“Seal10”的印章不显示。

document.all.DWebSignSeal. ShowSeal (\

3.43 HRESULT MovePopWnd([in] long lX, [in] long lY,[in] long lW, [in] long lH, [out, retval] long *pVal);

功 能:移动弹出手写对话框的位置。 返回值: 0:失败 1:成功 说 明: 参 数: LX:

左移像素

LY:

右移像素

LW:

宽度像素

LH:

高度像素

示 例:

3.44 HRESULT GetSealBmpString([in]BSTR strSealName, [in]BSTR strType, [out, retval] BSTR *pVal);

功 能:获取制定印章的图片的Base64数值,方便在javascirpt中传递。 返回值: Base64的数值 说 明: 参 数:

strSealName:

印章的名称

LstrType :

图片的类型,可取以下类型:\

示 例:

3.45 GetHashFromFile([in]BSTR strFilePath, [in]long lHashType, [out]BSTR *pVal);

功能:获取远程文件的散列值的base64,可用来校验远程文件是否发生改变 返回值 Base64数值 说明: 参数:

strFilePath: 远程文件路径 lHashType: 散列类型,0 SHA-1算法

1 MD5算法

建议采用SHA-1算法。

3.46 GetSealBmpToFile([in]BSTR strSealName, [in]BSTR strType, [in]BSTR strFilePath,[out, retval] long *pVal);

功 能:

把指定的印章另存为其他格式的图片。 参 数:

strSealName:

印章的名称,不可为空。

strType:

图片格式,不可为空。

strFilePath:

另存为的图片的路径地址。

返回值:

0:正确。

本文来源:https://www.bwwdw.com/article/vzpt.html

Top