/*bjca_zhzx 2021-2-19 接口层(注:所有接口都是异步调用) */ var $_$is_windows = true;//平台(win/linux) var $_$is_login = false;//是否登录 var $_$bPos = true;//是否可拖动印章,true:不可拖拽印章;false:可拖拽印章 var $_$CurStampID = -1;//印章页面ID var $_$CurContainerName = "";//签名容器 var $_$CurOrgData = [];//签名原文 var $_$CurSignData = [];//签名值 var $_$CurSignMethod = [];//签名算法 var $_$CurSealID = [];//印章ID,仅对信创平台有效 var $_$CurCertID = [];//证书ID,仅对信创平台有效 //原文DIV前缀,页面原文的DIV需要用“前缀+印章页面ID”的方式命名,否则无法使用右键验签 var $_$OrgDataContainerNameHead = "originData"; //印章偏移信息,仅对拖拽签章有效 var $_$CurDragPosX = 0; var $_$CurDragPosY = 0; //印章页面结构信息 var $_$Seal_Pic_Main_Div_Name = ""; var $_$Seal_Pic_Div_Name = ""; var $_$Seal_Img_Name = ""; //信创平台证书选择框 var userInfoDialogStr = '
' +'
请选择证书和印章
' +'
' +'
' +'
证书ID
' +'
' +'' +'
' +'
' +'
' +'
输入密码
' +'
' +'' +'
' +'
' +'' +'
' +'
' +'' +'' +'' +'
' +'
'; //信创平台证书选择框回调 var userInfoDialogCallback = null; //等待提示框 var loadingViewStr = '
' +'
' +'正在操作,请等待……' +'
'; /******************************初始化接口******************************/ /** * 引入不同平台的js */ function initJs(){ //常量文件 script = document.createElement("script"); script.src = "/DataUser/OverrideFiles/WorkCheck/qianzhang/static/js/bjca/config.js"; document.getElementsByTagName("head")[0].appendChild(script); //回调函数文件,用户可根据需求配置 script = document.createElement("script"); script.src = "/DataUser/OverrideFiles/WorkCheck/qianzhang/static/js/bjca/BJCAWebSignCallback.js"; document.getElementsByTagName("head")[0].appendChild(script); //拖拽签章文件,需要拖拽功能的时候引入 script = document.createElement("script"); script.src = "/DataUser/OverrideFiles/WorkCheck/qianzhang/static/js/bjca/DragSeal.js"; document.getElementsByTagName("head")[0].appendChild(script); //右键菜单文件,需要使用右键执行验证签章、撤销签章等功能的时候引入 script = document.createElement("script"); script.src = "/DataUser/OverrideFiles/WorkCheck/qianzhang/static/js/bjca/PopMenu.js"; document.getElementsByTagName("head")[0].appendChild(script); if($_$is_windows){ //windows script = document.createElement("script"); script.src = "/DataUser/OverrideFiles/WorkCheck/qianzhang/static/js/bjca/BJCAWebSignForWindows.js"; document.getElementsByTagName("head")[0].appendChild(script); }else{ //信创 script = document.createElement("script"); script.src = "/DataUser/OverrideFiles/WorkCheck/qianzhang/static/js/bjca/BJCAWebSignWithinXTXSAB.js"; document.getElementsByTagName("head")[0].appendChild(script); script = document.createElement("script"); script.src = "../Scripts/qianzhang/static/js/bjca/BJCAWebSignForLinux.js"; document.getElementsByTagName("head")[0].appendChild(script); var loadingView = document.createElement("div"); loadingView.setAttribute("id", "loadingView"); loadingView.className = "win-modal"; document.getElementsByTagName('body')[0].appendChild(loadingView); document.getElementById("loadingView").innerHTML = loadingViewStr; var userCertInfo = document.createElement("div"); userCertInfo.setAttribute("id", "userCertInfo"); userCertInfo.className = "win-modal"; document.getElementsByTagName('body')[0].appendChild(userCertInfo); document.getElementById("userCertInfo").innerHTML = userInfoDialogStr; } } /** * 初始化 * @param UserListID 用户列表选择框id */ function BWS_Init() { // $_$is_windows = false; $_$is_windows = (navigator.platform == "Win32") || (navigator.platform == "Windows"); initJs(); setTimeout(function(){ //设置签章类型和url,0:离线,1:国密在线,2:国办在线验证印章状态 ESeaL_SetSignTypeAndURL($_$WEBSIGN_CONFIG.$_$sign_type, $_$WEBSIGN_CONFIG.$_$url, function(ret){return;}); }, 500); if(!$_$is_windows){ //初始化方法中调用接口需要加等待时间 setTimeout(function(){ ESeaL_SetUserConfig();//先设置可信任根; }, 500); } } /******************************通用接口******************************/ /** * 批量签章 * @param strCertID 证书id * @param strSealID 印章id * @param orgdata 原文(多个原文以json格式拼接) * @param cb 回调函数。成功返回签章值signData(多个签章数据以json格式拼接)和印章图片picData,失败返回空 */ function BWS_BatchSign(strCertID, strSealID, orgdata, cb) { if($_$is_windows) {//windows ESeal_GetStampPic(function(ret){ if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //返回印章图片数据 ESeaL_BatchSign(orgdata, function(ret2){ if(ret2.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret2.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //返回签章数据 if (typeof cb == 'function') { var retObj = {signData:ret2.retVal, picData:ret.retVal}; cb(retObj); } return; } }); } }); } else {//信创 document.getElementById("loadingView").style.display = "block"; SOF_IsLogin_BJCAWebSign(strCertID, function (retLogin) { if (retLogin.retVal) { ESeaL_GetStampPic(strCertID, strSealID, function (ret) { if (ret.retVal == "") { document.getElementById("loadingView").style.display = "none"; //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret.retVal == $_$METHOD_NOT_EXIST) { document.getElementById("loadingView").style.display = "none"; //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //批量签章 ESeaL_BatchSign(strCertID, orgdata, function(ret2){ document.getElementById("loadingView").style.display = "none"; if(ret2.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret2.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //返回签章数据 if (typeof cb == 'function') { var retObj = {signData:ret2.retVal, picData:ret.retVal}; cb(retObj); } return; } }); } }); } else { document.getElementById("loadingView").style.display = "none"; alert("请先登录!"); return ESeaL_ErrorRtnFunc("", cb); } }, null); } } /** * 直接签章 * @param strCertID 证书id * @param strSealID 印章id * @param orgdata 原文 * @param cb 回调函数。成功返回签章值signData和印章图片picData,失败返回空 */ function BWS_DirectSign(strCertID, strSealID, orgdata, cb) { //debugger if($_$is_windows) {//windows ESeal_GetStampPic(function(ret){ if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //返回印章图片数据 ESeaL_Sign(orgdata, function(ret2){ if(ret2.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret2.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { // console.log("BWS_Sign:"+ret2.retVal); //返回签章数据 if (typeof cb == 'function') { var retObj = {signData:ret2.retVal, picData:ret.retVal}; cb(retObj); } } return; }); } }); } else {//信创 document.getElementById("loadingView").style.display = "block"; SOF_IsLogin_BJCAWebSign(strCertID, function (retLogin) { if (retLogin.retVal) { ESeaL_GetStampPic(strCertID, strSealID, function (ret) { if (ret.retVal == "") { document.getElementById("loadingView").style.display = "none"; //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret.retVal == $_$METHOD_NOT_EXIST) { document.getElementById("loadingView").style.display = "none"; //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { ESeaL_Sign(strCertID, orgdata, function(ret2){ document.getElementById("loadingView").style.display = "none"; if(ret2.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } if (typeof cb == 'function') { var retObj = {signData:ret2.retVal, picData:ret.retVal}; cb(retObj); } return; }); } }); } else { document.getElementById("loadingView").style.display = "none"; alert("请先登录!"); return ESeaL_ErrorRtnFunc("", cb); } }, null); } } /** * 签章 * @param strCertID 证书id * @param orgdata 原文 * @param cb 回调函数。成功返回签章值signData,失败返回空 */ function BWS_Sign(strCertID, orgdata, cb) { if($_$is_windows) {//windows ESeaL_Sign(orgdata, function(ret2){ if(ret2.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret2.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //返回签章值 return ESeaL_OKRtnFunc(ret2.retVal, cb); } }); } else {//信创 document.getElementById("loadingView").style.display = "block"; SOF_IsLogin_BJCAWebSign(strCertID, function (retLogin) { if (retLogin.retVal) { ESeaL_Sign(strCertID, orgdata, function(ret2){ document.getElementById("loadingView").style.display = "none"; if(ret2.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } //返回签章值 return ESeaL_OKRtnFunc(ret2.retVal, cb); }); } else { document.getElementById("loadingView").style.display = "none"; alert("请先登录!"); return ESeaL_ErrorRtnFunc("", cb); } }, null); } } /** * 验证 * @param orgdata 原文 * @param signdata 签章值 * @param cb 回调函数。成功返回验证后的印章图片,失败返回空 */ function BWS_Verify(orgdata, signdata, cb, bAlert) { //debugger; var sInfo; var method_name = $_$CurSignMethod[$_$CurStampID]; if($_$is_windows) {//windows平台 //验证 var sVerifyResult; ESeal_Verify(orgdata, signdata, function(ret){ if (ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else if (ret.retVal != 0) { //验证成功 sVerifyResult = "true"; sInfo = "验证成功,数据有效!\r\n" + "签名算法:" + method_name; } else { //验证失败 sVerifyResult = "false"; sInfo = "验证失败,数据无效!\r\n" + "签名算法:" + method_name; } //获取验证后的印章图片 // console.log(sVerifyResult); ESeal_GetStampPicAfterVerifiedEx(sVerifyResult, signdata, function(ret2){ if (ret2.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else if (ret2.retVal != "") { //弹出验证信息 if(bAlert) { alert(sInfo); } // console.log(sInfo); //返回印章图片 return ESeaL_OKRtnFunc(ret2.retVal, cb); } else { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } }) }); } else {//信创平台 //验证 ESeal_Verify(orgdata, signdata, function(ret){ if (ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else if (ret.retVal == "true") { //验证成功 sInfo = "验证成功,数据有效!\r\n" + "签名算法:" + method_name; } else { //验证失败 sInfo = "验证失败,数据无效!\r\n" + "签名算法:" + method_name; } //获取验证后的印章图片 ESeal_GetStampPicAfterVerified(ret.retVal, signdata, function(ret2){ if (ret2.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else if (ret2.retVal != "") { //弹出验证信息 if(bAlert) { alert(sInfo); } //返回印章图片 return ESeaL_OKRtnFunc(ret2.retVal, cb); } else { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } }) }); } } /** * 获取印章图片 * @param strCertID 证书id * @param strSealID 印章id * @param cb 回调函数。成功返回印章图片picData,失败返回空 */ function BWS_GetStampPic(strCertID, strSealID, cb) { if($_$is_windows) {//windows ESeal_GetStampPic(function(ret){ if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //返回印章图片 return ESeaL_OKRtnFunc(ret.retVal, cb); } }); } else {//信创 ESeaL_GetStampPic(strCertID, strSealID, function (ret) { if (ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //返回印章图片 return ESeaL_OKRtnFunc(ret.retVal, cb); } }); } } /** * 撤销签章 * @param signdata 签章值 * @param strCertID 证书id * @param cb 回调函数。成功返回true,失败返回false */ function BWS_Remove(signdata, strCertID, cb) { // console.log("BWS_Remove:"+signdata); if($_$is_windows) { //windows平台 //检查撤章权限 ESeaL_RemoveSeal(signdata, function(ret){ if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc(false, cb); } else if (ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc(false, cb); } else if(ret.retVal == "true") { //允许撤章 return ESeaL_OKRtnFunc(true, cb); } else { //不允许撤章,弹出错误信息 alert(ret.retVal); return ESeaL_ErrorRtnFunc($_$REMOVE_NOT_ALLOWED, cb); } }); } else { //信创平台 //检查撤章权限 ESeaL_RemoveSeal(strCertID, signdata, function(ret){ if(ret.isLogin) { //当前Ukey已登录 if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc(false, cb); } else if (ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc(false, cb); } else if (ret.retVal == "true") { //允许撤章 return ESeaL_OKRtnFunc(true, cb); } else { //不允许撤章,弹出错误信息 alert(ret.retVal); return ESeaL_ErrorRtnFunc($_$REMOVE_NOT_ALLOWED, cb); } } else { //当前Ukey还没有登录,需要先登录 alert("请先登录!"); return ESeaL_ErrorRtnFunc($_$NOT_LOGIN, cb); } }); } } /** * 获取签章时间 * @param signdata 签章值 * @param cb 回调函数。成功返回签章时间,失败返回空 */ function BWS_GetSignTime(signdata, cb) { Eseal_ShowSignTime(signdata, function(ret){ if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if (ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //显示签章时间 //alert(ret.retVal); return ESeaL_OKRtnFunc(ret.retVal, cb); } }); } /** * 获取证书信息 * @param signdata 签章值 * @param cb 回调函数。成功返回证书信息,失败返回空 */ function BWS_GetCertInfo(signdata, cb){ Eseal_ShowUserCerInfo(signdata, function(ret){ if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if (ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //显示证书信息 //alert(ret.retVal); return ESeaL_OKRtnFunc(ret.retVal, cb); } }); } /** * 获取关于信息 * @param cb 回调函数。成功返回签章时间,失败返回空 */ function BWS_GetVersion(cb) { ESeal_GetVersion(function(ret){ if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if (ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //显示证书信息 //alert(ret.retVal); return ESeaL_OKRtnFunc(ret.retVal, cb); } }); } /** * 获取签章算法 * @param signdata 签章值 * @param cb 回调函数。成功返回签章算法,失败返回空 */ function BWS_GetSignMethod(signdata, cb) { //debugger if($_$is_windows) {//windows ESeal_GetSignMethod(function(ret){ if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if(ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //返回签名算法 return ESeaL_OKRtnFunc(ret.retVal, cb); } }); } else {//信创 // console.log(signdata); ESeal_GetSignMethod(signdata, function(ret){ // console.log(ret); if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("", cb); } else if (ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("", cb); } else { //返回签名算法 return ESeaL_OKRtnFunc(ret.retVal, cb); } }); } } /******************************信创接口******************************/ /** * 获取最近一次错误信息并弹框显示 */ function $GetLastErrJS() { ESeal_GetLastErrJS(function (ret) { if (ret.retVal == "") { alert("获取错误信息失败"); } else if (ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); } else { alert(ret.retVal); } }); } /** * 登录 * @param strCertID 证书id * @param strPin 证书id对应的pin码 * @param cb 回调函数。成功返回true,失败返回false */ function BWS_Login(strCertID, strPin, cb){ VerifyUserPIN_BJCAWebSign(strCertID, strPin, function(strRes) { if (!strRes.retVal) { // alert("校验PIN码失败"); return ESeaL_ErrorRtnFunc("false", cb); } else { // alert("校验PIN码成功!\r\n"); $_$is_login = true; return ESeaL_OKRtnFunc("true", cb); } }); } /** * 获取用户列表,并填充UserListObj指向的select框 * @param UserListObj 用户列表select框对象 * @param cb 回调函数。成功返回true,失败返回false */ function BWS_GetUserList(UserListObj, cb){ //先清空select列表 UserListObj.options.length = 0; //获取用户证书列表 GetUserList_BJCAWebSign(function(ret){ console.log("GetUserList_BJCAWebSign ret:"+ret.retVal); if(ret.retVal == "") { alert("没有识别到证书,请插入ukey!"); return ESeaL_ErrorRtnFunc("false", cb); } else { var strUserList = ret.retVal; var allListArray = []; while (true) { var i = strUserList.indexOf("&&&"); if (i <= 0 ) { break; } var strOneUser = strUserList.substring(0, i); var strName = strOneUser.substring(0, strOneUser.indexOf("||")); var strCertID = strOneUser.substring(strOneUser.indexOf("||") + 2, strOneUser.length); UserListObj.options.add(new Option(strName, strCertID)); var len = strUserList.length; strUserList = strUserList.substring(i + 3,len); } console.log("GetUserList_BJCAWebSign end"); return ESeaL_OKRtnFunc("true", cb); } }); } /** * 获取印章列表,并填充SealListObj指向的select框 * @param strCertID 证书id * @param SealListObj 印章列表select框对象 * @param cb 回调函数。成功返回true,失败返回false */ function BWS_GetSealList(strCertID, SealListObj, cb){ if(!$_$is_login) { alert("请先登录!"); return ESeaL_ErrorRtnFunc(false, cb); } //先清空select列表 SealListObj.options.length = 0; //获取印章列表 ESeaL_GetUserSealList(strCertID, function(ret){ if(ret.retVal == "") { //获取错误信息,并弹框显示 $GetLastErrJS(); return ESeaL_ErrorRtnFunc("false", cb); } else if (ret.retVal == $_$METHOD_NOT_EXIST) { //当前接口不存在,客户端版本不匹配 alert($_$METHOD_NOT_EXIST); return ESeaL_ErrorRtnFunc("false", cb); } else { //返回印章列表 var sealListArray = ret.retVal; var seallist_length = sealListArray.length; if (seallist_length == 0) { alert("未能检测到印章!"); return ESeaL_ErrorRtnFunc("false", cb); } //填充印章列表选择框 var i; for (i = 0; i < sealListArray.length; i++) { var certObj = sealListArray[i]; var objItem = new Option(certObj, certObj); SealListObj.options.add(objItem); } return ESeaL_OKRtnFunc("true", cb); } }); } //填充印章列表 function setSealList() { //获取印章列表并显示 var sealSelectObj = document.getElementById("sealSelect"); if (sealSelectObj) { console.log("BWS_GetSealList begin"); BWS_GetSealList($_$CurCertID[$_$CurStampID], sealSelectObj, function(ret){ if(ret.retVal == "true") { document.getElementById("pinConfirmBtn").style.display = "none"; document.getElementById("infoConfirmBtn").style.display = "block"; document.getElementById("certEle").style.display = "none"; document.getElementById("pinEle").style.display = "none"; document.getElementById("sealEle").style.display = "block"; } }); } else { alert("不识别的对象"); } } var $_$isSign = 1;//1:签章,2:撤章 //第二步,弹登录窗口 function showLogin(cb, isSign) { var certSelectObj = document.getElementById("certSelect"); if (certSelectObj) { userInfoDialogCallback = cb; if (!isSign) { isSign = 1; } $_$isSign = isSign; BWS_GetUserList(certSelectObj, function(ret) { if(ret.retVal == "true") { document.getElementById("pinConfirmBtn").style.display = "block"; document.getElementById("infoConfirmBtn").style.display = "none"; document.getElementById("certEle").style.display = "block"; document.getElementById("pinEle").style.display = "block"; document.getElementById("sealEle").style.display = "none"; document.getElementById("userCertInfo").style.display = "block"; document.getElementById("pinInput").value = ""; } }); } else { alert("不识别的对象"); } } //第三步,输入pin码后登录 function pinConfirm() { var strCertID = document.getElementById("certSelect").value; //var strCertName = document.getElementById("certSelect").innerHTML; var index = document.getElementById("certSelect").selectedIndex; var strCertName = document.getElementById("certSelect").options[index].text; var strPin = document.getElementById("pinInput").value; if(strCertID == "") { alert("请先选择证书!"); return; } if(strCertName != "易签盾证书") { if(strPin == "") { alert("请先输入密码!"); return; } } BWS_Login(strCertID, strPin, function(ret){ if(ret.retVal == "true") { alert("校验PIN码成功!\r\n"); //判断是否是易签盾 if(strCertName == "易签盾证书") { GetLastLoginCertID_BJCAWebSign(function(ret){ if(ret.retVal) { $_$CurCertID[$_$CurStampID] = ret.retVal; // console.log("YQD certid:"+$_$CurCertID[$_$CurStampID]); if ($_$isSign == 1) { setSealList(); } else { document.getElementById("userCertInfo").style.display = "none"; if (typeof userInfoDialogCallback == 'function') { userInfoDialogCallback(); } } } else { alert("获取易签盾证书ID失败"); } }); } else { $_$CurCertID[$_$CurStampID] = strCertID; if ($_$isSign == 1) { setSealList(); } else { document.getElementById("userCertInfo").style.display = "none"; if (typeof userInfoDialogCallback == 'function') { userInfoDialogCallback(); } } } } else { alert("校验PIN码失败"); } }); } //第四步,选择印章之后执行签章 function infoConfirm() { $_$CurSealID[$_$CurStampID] = document.getElementById("sealSelect").value; document.getElementById("userCertInfo").style.display = "none"; if (typeof userInfoDialogCallback == 'function') { userInfoDialogCallback(); } // btnSign($_$CurStampID); } //关闭弹窗 function infoCancel() { document.getElementById("userCertInfo").style.display = "none"; }