| | |
| | | //绘画的图形填充样式--填充绘图 |
| | | var fillStyle = "fill"; |
| | | //点击手指 的颜色 |
| | | var fillFingerColor="rgb(71,75,79)"; |
| | | var fillFingerColor = "rgb(71,75,79)"; |
| | | //判断是否修改了数据(包括新增和删除) |
| | | var fpModifyFlag = false; |
| | | |
| | |
| | | * @param x, y 椭圆定位的坐标 |
| | | * @param width, height 椭圆的宽度和高度 |
| | | */ |
| | | CanvasRenderingContext2D.prototype.oval = function(x, y, width, height) |
| | | { |
| | | var k = (width/0.75)/2,w = width/2,h = height/2; |
| | | this.strokeStyle = bgColor; |
| | | CanvasRenderingContext2D.prototype.oval = function (x, y, width, height) { |
| | | var k = (width / 0.75) / 2, w = width / 2, h = height / 2; |
| | | this.strokeStyle = bgColor; |
| | | this.beginPath(); |
| | | |
| | | this.moveTo(x, y-h); |
| | | this.bezierCurveTo(x+k, y-h, x+k, y+h, x, y+h); |
| | | this.bezierCurveTo(x-k, y+h, x-k, y-h, x, y-h); |
| | | |
| | | this.moveTo(x, y - h); |
| | | this.bezierCurveTo(x + k, y - h, x + k, y + h, x, y + h); |
| | | this.bezierCurveTo(x - k, y + h, x - k, y - h, x, y - h); |
| | | this.closePath(); |
| | | this.stroke(); |
| | | return this; |
| | | } |
| | | |
| | | /** |
| | | * 查动态库连接回调函数 |
| | | * @author wenxin |
| | | * @create 2013-05-15 17:12:21 pm |
| | | * @param ${pers_person_templateCount}:指纹数 |
| | | */ |
| | | function getDLLConnectCallBack(result,isComp) |
| | | { |
| | | if(globalContext == null) |
| | | { |
| | | if(isComp==true){ |
| | | /** |
| | | * 查动态库连接回调函数 |
| | | * @author wenxin |
| | | * @create 2013-05-15 17:12:21 pm |
| | | * @param ${pers_person_templateCount}:指纹数 |
| | | */ |
| | | function getDLLConnectCallBack(result, isComp) { |
| | | if (globalContext == null) { |
| | | if (isComp == true) { |
| | | globalContext = document.getElementById("canvasComp").getContext("2d"); |
| | | }else{ |
| | | } else { |
| | | globalContext = document.getElementById("canvas").getContext("2d"); |
| | | } |
| | | } |
| | |
| | | var ret = null; |
| | | ret = result.ret; |
| | | //接口调用成功返回时 |
| | | if(ret == 0) |
| | | { |
| | | if (ret == 0) { |
| | | //${base_fp_connectFail}:连接指纹采集器失败 |
| | | collectTips(globalContext, "未检测到指纹采集器.", "verification"); |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | //${base_fp_loadFail}:加载ZKFinger10失败 |
| | | collectTips(globalContext, "加载动态库失败.", "verification"); |
| | | } |
| | |
| | | * @create 2013-06-24 10:11:21 am |
| | | * @param context 2d画布上下文 |
| | | */ |
| | | function beginCapture(context) |
| | | { |
| | | $.ajax( { |
| | | type : "GET", |
| | | url : issOnlineUrl+"/fingerprint/beginCapture?type=2&FakeFunOn=0&random="+getRandomNum(), |
| | | dataType : "json", |
| | | function beginCapture(context) { |
| | | $.ajax({ |
| | | type: "GET", |
| | | url: issOnlineUrl + "/fingerprint/beginCapture?type=2&FakeFunOn=0&random=" + getRandomNum(), |
| | | dataType: "json", |
| | | async: true, |
| | | success : function(result) |
| | | { |
| | | success: function (result) { |
| | | //返回码 |
| | | var ret = null; |
| | | ret = result.ret; |
| | | //接口调用成功返回时 |
| | | if(ret == 0) |
| | | { |
| | | if (ret == 0) { |
| | | verifyFlag = true; |
| | | //检查采集、显示图像 |
| | | checkColl(); |
| | | } |
| | | else if(ret == -2001) |
| | | { |
| | | else if (ret == -2001) { |
| | | //${base_fp_connectFail}:连接指纹采集器失败 |
| | | //显示框--采集提示 |
| | | collectTips(context, "未检测到指纹采集器.", "verification"); |
| | | } |
| | | else if(ret == -2002) |
| | | { |
| | | else if (ret == -2002) { |
| | | getWebServerInfo(null, null, "1"); |
| | | } |
| | | else if(ret == -2005) |
| | | { |
| | | else if (ret == -2005) { |
| | | //取消采集 |
| | | cancelCapture(); |
| | | //开始采集 |
| | | beginCapture(globalContext); |
| | | } |
| | | }, |
| | | error : function(XMLHttpRequest, textStatus, errorThrown) |
| | | { |
| | | error: function (XMLHttpRequest, textStatus, errorThrown) { |
| | | alert("请安装指纹驱动或启动该服务!"); |
| | | //messageBox({messageType: "alert", title: "${common_prompt_title}", text: "${base_fp_connectPrompt}"}); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | /** |
| | |
| | | * @author wenxin |
| | | * @create 2013-06-24 10:11:21 am |
| | | */ |
| | | function checkColl() |
| | | { |
| | | function checkColl() { |
| | | var base64FPImg = ""; |
| | | //返回码 |
| | | var ret = null; |
| | | $.ajax( { |
| | | type : "GET", |
| | | url : issOnlineUrl+"/fingerprint/getImage?random="+getRandomNum(), |
| | | dataType : "json", |
| | | $.ajax({ |
| | | type: "GET", |
| | | url: issOnlineUrl + "/fingerprint/getImage?random=" + getRandomNum(), |
| | | dataType: "json", |
| | | async: true, |
| | | success : function(result) |
| | | {debugger; |
| | | success: function (result) { |
| | | debugger; |
| | | //alert(objToStr(data)); |
| | | //指纹采集次数 |
| | | var collCount = 0; |
| | | ret = result.ret; |
| | | if(ret == 0) |
| | | { |
| | | if (ret == 0) { |
| | | collCount = result.data.enroll_index; |
| | | base64FPImg = result.data.jpg_base64; |
| | | } |
| | | if(collCount == 0) |
| | | { |
| | | if (collCount == 0) { |
| | | //定时器 |
| | | timer = setTimeout("checkColl()", 200);//比对失败重新开始 |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | //将定时器关闭 |
| | | clearTimeout(verifyTimer); |
| | | //显示指纹图像 |
| | |
| | | $("#oneToMany").attr("disabled", false); |
| | | $("#oneToOne").attr("disabled", false); |
| | | setTimeout("beginCapture(null)", 200); |
| | | |
| | | console.log('1', getFPTemplate(paramArray, "verification")) |
| | | console.log('2', $("#oneToMany").attr("disabled", false)) |
| | | console.log('3', $("#oneToOne").attr("disabled", false)) |
| | | } |
| | | }, |
| | | error : function(XMLHttpRequest, textStatus, errorThrown) |
| | | { |
| | | error: function (XMLHttpRequest, textStatus, errorThrown) { |
| | | alert("请安装指纹驱动或启动该服务!"); |
| | | //messageBox({messageType: "alert", title: "${common_prompt_title}", text: "${base_fp_connectPrompt}"}); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | /** |
| | |
| | | * @create 2013-06-24 17:41:21 pm |
| | | * @param fpTemplate 指纹模板 |
| | | */ |
| | | function fpComparison(fpTemplate) |
| | | { |
| | | if(model == "1") |
| | | { |
| | | if($("#persNumText").val() != "${pers_person_pin}") |
| | | { |
| | | function fpComparison(fpTemplate) { |
| | | if (model == "1") { |
| | | if ($("#persNumText").val() != "${pers_person_pin}") { |
| | | $("#pin").val($("#persNumText").val()); |
| | | } |
| | | } |
| | |
| | | $("#verifyTemplate").val(fpTemplate); |
| | | //表单提交 |
| | | //formSubmit("fpVerifyForm"); |
| | | |
| | | |
| | | } |
| | | /** |
| | | * 取消采集 |
| | | * @author wenxin |
| | | * @create 2013-06-24 19:57:11 pm |
| | | */ |
| | | function cancelCapture() |
| | | { |
| | | function cancelCapture() { |
| | | //将定时器的递归调用关闭 |
| | | clearTimeout(timer); |
| | | //取消采集 |
| | | $.ajax( { |
| | | type : "GET", |
| | | url : issOnlineUrl+"/fingerprint/cancelCapture?random="+getRandomNum(), |
| | | dataType : "json", |
| | | $.ajax({ |
| | | type: "GET", |
| | | url: issOnlineUrl + "/fingerprint/cancelCapture?random=" + getRandomNum(), |
| | | dataType: "json", |
| | | async: true, |
| | | success : function(result) |
| | | { |
| | | success: function (result) { |
| | | verifyFlag = false; |
| | | }, |
| | | error : function(XMLHttpRequest, textStatus, errorThrown) |
| | | { |
| | | error: function (XMLHttpRequest, textStatus, errorThrown) { |
| | | alert("请安装指纹驱动或启动该服务!"); |
| | | //messageBox({messageType: "alert", title: "${common_prompt_title}", text: "${base_fp_connectPrompt}"}); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | /** |
| | |
| | | * @author wenxin |
| | | * @create 2013-06-26 16:57:11 pm |
| | | */ |
| | | function beginVerify() |
| | | { |
| | | if($("#persNumText").val() == "${pers_person_pin}" && model == "1") |
| | | { |
| | | function beginVerify() { |
| | | if ($("#persNumText").val() == "${pers_person_pin}" && model == "1") { |
| | | //${base_fp_enterPin}:请输入人员编号 |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, "请输入人员编号", "verification"); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | //${base_fp_verifyInfo}:请水平按压手指验证 |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, "请水平按压手指验证", "verification"); |
| | | } |
| | | |
| | | |
| | | //取消采集--如果当前正在采集 |
| | | cancelEvent(); |
| | | $("#oneToMany").attr("disabled", true); |
| | |
| | | * @author wenxin |
| | | * @create 2013-09-05 16:57:11 pm |
| | | */ |
| | | function clearImageData() |
| | | { |
| | | |
| | | if(isComp){ |
| | | function clearImageData() { |
| | | |
| | | if (isComp) { |
| | | //清空指纹图像 |
| | | clearFPImage(globalContext, "verification"); |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, "请水平按压手指验证", "verification"); |
| | | }else{ |
| | | } else { |
| | | //清空指纹图像 |
| | | clearFPImage(globalContext, "register"); |
| | | } |
| | |
| | | * @author wenxin |
| | | * @create 2013-06-26 16:57:11 pm |
| | | */ |
| | | function callBackFormSubmit(msg) |
| | | { |
| | | if(msg.ret == "ok")//成功 |
| | | function callBackFormSubmit(msg) { |
| | | if (msg.ret == "ok")//成功 |
| | | { |
| | | collectTips(globalContext, "验证通过", "verification"); |
| | | setTimeout("closeVerify()", 1000); |
| | | setTimeout(_callBackFunction("dashboard.action"), 1000); |
| | | } |
| | | else if(msg.msg == "disabled") |
| | | { |
| | | else if (msg.msg == "disabled") { |
| | | collectTips(globalContext, "${auth_login_disabled}", "verification"); |
| | | setTimeout("closeVerify()", 1000); |
| | | $(".errorTip").html("${auth_login_disabled}"); |
| | | $(".errorTip").show(); |
| | | }else if(msg.msg == "notExist") |
| | | { |
| | | } else if (msg.msg == "notExist") { |
| | | collectTips(globalContext, "验证失败", "verification"); |
| | | setTimeout("clearImageData()", 1000); |
| | | beginCapture(globalContext); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | /** |
| | | * 关闭比对页面 |
| | | * @author wenxin |
| | | * @create 2013-06-21 14:57:11 pm |
| | | */ |
| | | function closeVerify() |
| | | { |
| | | function closeVerify() { |
| | | //正在进行验证,还没有关闭指纹采集 |
| | | if(verifyFlag) |
| | | { |
| | | if (verifyFlag) { |
| | | //取消采集 |
| | | cancelCapture(); |
| | | } |
| | |
| | | * @author wenxin |
| | | * @create 2013-07-09 15:18:31 pm |
| | | */ |
| | | function dataInitComp() |
| | | { |
| | | function dataInitComp() { |
| | | var canvas = document.getElementById("canvasComp"); |
| | | var context = canvas.getContext("2d"); |
| | | globalContext = context; |
| | | //文本框内提示信息并清空 |
| | | //checkText(); |
| | | |
| | | |
| | | //${base_fp_verifyInfo}:请水平按压手指验证 |
| | | //显示框--采集提示 |
| | | collectTips(context, "请水平按压手指验证", "verification"); |
| | | |
| | | |
| | | //开始采集 |
| | | beginCapture(context); |
| | | //定时器 |
| | |
| | | * @create 2013-05-15 17:12:21 pm |
| | | * @param ${pers_person_templateCount}:指纹数 |
| | | */ |
| | | function submitEvent(event) |
| | | { |
| | | console.log('event', event); |
| | | function submitEvent() { |
| | | storeDataToHtml(); |
| | | console.log('storeDataToHtml()', storeDataToHtml()); |
| | | window.top.postMessage('message from iframe1'); |
| | | showFPCount('指纹数:'); |
| | | //closeWindow(); |
| | | close(); |
| | | |
| | | $.ajax({ |
| | | type: "GET", |
| | | url: issOnlineUrl + "/fingerprint/getTemplate?random=" + getRandomNum(), |
| | | dataType: "json", |
| | | async: false, |
| | | success: function (result) { |
| | | //返回码 |
| | | var ret = null; |
| | | ret = result.ret; |
| | | console.log('template',result.data.template) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 采集指纹 |
| | | * @author wenxin |
| | | * @create 2013-05-13 10:18:31 am |
| | | * @param context 2d画布上下文 |
| | | */ |
| | | function fpCollection(context) |
| | | { |
| | | $.ajax( { |
| | | type : "GET", |
| | | url : issOnlineUrl+"/fingerprint/beginCapture?type=1&FakeFunOn=0&random="+getRandomNum(), |
| | | dataType : "json", |
| | | async: true, |
| | | success : function(result) |
| | | { |
| | | //返回码 |
| | | var ret = null; |
| | | ret = result.ret; |
| | | //接口调用成功返回时 |
| | | if(ret == 0) |
| | | { |
| | | //检查采集次数、显示图像 |
| | | checkCollCount(); |
| | | } |
| | | else if(ret == -2001) |
| | | { |
| | | //${base_fp_connectFail}:连接指纹采集器失败 |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, "未检测到指纹采集器.", "html5"); |
| | | } |
| | | else if(ret == -2002) |
| | | { |
| | | getWebServerInfo(null, null, "1"); |
| | | } |
| | | else if(ret == -2005) |
| | | { |
| | | //取消采集 |
| | | cancelRegister(); |
| | | //切换手指后,渲染手指(消除原来手指的颜色) |
| | | renderAfterColl(globalContext, fpIdNum, bgColor, false); |
| | | //${base_fp_pressFinger}:请选择手指 |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, "请选择手指.", "html5"); |
| | | } |
| | | }, |
| | | error : function(XMLHttpRequest, textStatus, errorThrown) |
| | | { |
| | | alert("请安装指纹驱动或启动该服务!"); |
| | | //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"}); |
| | | } |
| | | }); |
| | | } |
| | | /** |
| | | * 检查采集次数 |
| | | * @author wenxin |
| | | * @create 2013-05-22 09:24:31 am |
| | | * @param collCount 采集次数 |
| | | */ |
| | | function checkCollCount() |
| | | { |
| | | var base64FPImg = ""; |
| | | //返回码 |
| | | var ret = null; |
| | | $.ajax( { |
| | | type : "GET", |
| | | url : issOnlineUrl+"/fingerprint/getImage?random="+getRandomNum(), |
| | | dataType : "json", |
| | | async: false, |
| | | success : function(result) |
| | | { |
| | | //alert(objToStr(data)); |
| | | //指纹采集次数 |
| | | var collCount = 0; |
| | | ret = result.ret; |
| | | if(ret == 0) |
| | | { |
| | | collCount = result.data.enroll_index; |
| | | base64FPImg = result.data.jpg_base64; |
| | | } |
| | | if(collCount != 3) |
| | | { |
| | | //第一次和第二次采集,显示采集次数、指纹图像、进度条 |
| | | if(collCount == 1 || collCount == 2) |
| | | { |
| | | //${base_fp_collCount}:按压指纹剩余次数: |
| | | var text = "按压剩余次数:"+(FINGERPRINT_NUMBER - collCount); |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, text, "html5"); |
| | | //进度条 |
| | | drawProgressBar(globalContext, collCount); |
| | | //显示指纹图像 |
| | | showImage(globalContext, base64FPImg, "html5"); |
| | | //清空图像 |
| | | setTimeout("clearImageData()", 200); |
| | | } |
| | | //定时器 |
| | | timer = setTimeout("checkCollCount()", 200); |
| | | } |
| | | else |
| | | { |
| | | //显示指纹图像 |
| | | showImage(globalContext, base64FPImg, "html5"); |
| | | //清空图像 |
| | | setTimeout("clearImageData()", 200); |
| | | //存放国际化元素数组 |
| | | var paramArray = new Array(); |
| | | paramArray[0] = "成功登记指纹.";//base_fp_registerSuccess:成功登记指纹 |
| | | paramArray[1] = "采集失败,请重新登记.";//base_fp_pressFingerAgain:请重按手指 |
| | | paramArray[2] = "请不要重复录入指纹!";//base_fp_repeatCollection:请不要重复录入指纹! |
| | | paramArray[3] = "请安装指纹驱动或启动该服务!";//base_fp_connectPrompt:请检查网络连接 |
| | | //进度条 |
| | | drawProgressBar(globalContext, collCount); |
| | | //获取指纹模板 |
| | | if(!getFPTemplate(paramArray, "register")) |
| | | { |
| | | drawProgressBar(globalContext, 0);//进度条灰显 |
| | | } |
| | | |
| | | //如果胁迫指纹选中,则取消选中 |
| | | if(duressFingerFlag) |
| | | { |
| | | $("#duressFinger").attr("checked", false); |
| | | } |
| | | $("#duressFinger").attr("disabled", false); |
| | | $("#submitButtonId").attr("disabled", false); |
| | | collectFlag = false; |
| | | fpIdNum = -1; |
| | | return collCount; |
| | | } |
| | | }, |
| | | error : function(XMLHttpRequest, textStatus, errorThrown) |
| | | { |
| | | alert("请安装指纹驱动或启动该服务!"); |
| | | //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"}); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 取消采集,当采集中断时 |
| | | * @author wenxin |
| | | * @create 2013-05-27 17:46:31 pm |
| | | */ |
| | | function cancelRegister() |
| | | { |
| | | //当前有手指在采集指纹 |
| | | if(collectFlag) |
| | | { |
| | | //将定时器的递归调用关闭 |
| | | clearTimeout(timer); |
| | | //取消采集 |
| | | $.ajax( { |
| | | type : "GET", |
| | | url : issOnlineUrl+"/fingerprint/cancelCapture?random="+getRandomNum(), |
| | | dataType : "json", |
| | | async: false, |
| | | success : function(result) |
| | | { |
| | | //如果胁迫指纹选中,则取消选中 |
| | | if(duressFingerFlag) |
| | | { |
| | | $("#duressFinger").attr("checked", false); |
| | | } |
| | | if(fpModifyFlag) |
| | | { |
| | | $("#submitButtonId").attr("disabled", false); |
| | | } |
| | | $("#duressFinger").attr("disabled", false); |
| | | if(fpIdNum != null) |
| | | { |
| | | //消除原来手指的颜色 |
| | | |
| | | renderAfterColl(globalContext, lastFPIdNum, bgColor, false); |
| | | } |
| | | collectFlag = false; |
| | | }, |
| | | error : function(XMLHttpRequest, textStatus, errorThrown) |
| | | { |
| | | alert("请安装指纹驱动或启动该服务!"); |
| | | //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"}); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 绘画 |
| | | * @author wenxin |
| | | * @create 2013-05-13 10:18:31 am |
| | | * @param context 2d画布上下文 |
| | | * @param x, y 绘画左手掌的第一个点的坐标,后面的绘画手指和右手掌的坐标都是相对于此点坐标来计算 |
| | | * @param color 绘画手指和手掌的边框颜色 |
| | | */ |
| | | function draw(context, x, y, color) |
| | | { |
| | | var coordArray = new Array(); |
| | | //初始化起始坐标,并返回json格式数据 |
| | | var coordJson = initCoordJson(); |
| | | for(var i=0; i<coordJson.length; i++) |
| | | { |
| | | //绘画双手和圆弧 |
| | | drawHandAndArc(context, coordArray, color, coordJson[i].coord.x, coordJson[i].coord.y, coordJson[i].num); |
| | | // drawHandAndArc(context, coordArray, color, coordJson[i].coord.x, coordJson[i].coord.y, i); |
| | | coordArray = null; |
| | | coordArray = new Array(); |
| | | } |
| | | //存放国际化元素数组 |
| | | var paramArray = new Array(); |
| | | paramArray[0] = "请选择手指."; |
| | | paramArray[1] = "未检测到指纹采集器."; |
| | | paramArray[2] = "加载动态库失败."; |
| | | paramArray[3] = "请选择手指."; |
| | | |
| | | |
| | | //检查指纹采集器 |
| | | checkFPReader(context, paramArray, "html5"); |
| | | |
| | | //进度条 |
| | | drawProgressBar(context, 0); |
| | | //将确定按钮置灰 |
| | | $("#submitButtonId").attr("disabled", true); |
| | | } |
| | | /** |
| | | * 绘画双手和圆弧 |
| | | * @author wenxin |
| | | * @create 2013-06-17 10:18:31 am |
| | | * @param context 2d画布上下文 |
| | | * @param coordArray 坐标数组 |
| | | * @param x, y 绘画左手掌的第一个点的坐标,后面的绘画手指和右手掌的坐标都是相对于此点坐标来计算 |
| | | * @param color 绘画手指和手掌的边框颜色 |
| | | * @param num 当前会话对象编号 |
| | | */ |
| | | function drawHandAndArc(context, coordArray, color, x, y, num) |
| | | { |
| | | //初始化坐标 |
| | | coordArray = initCoordArray(coordArray, x, y, num); |
| | | var drawObj = null; |
| | | //绘画手指 |
| | | if(num < 10) |
| | | { |
| | | drawObj = "finger"+num; |
| | | drawObj = new renderFinger(context, coordArray); |
| | | drawObj.drawFinger(strokeStyle, color); |
| | | //初始化时,渲染手指 |
| | | renderInit(context, num, "html5"); |
| | | //将绘画的手指实例放入数组,方便重画时用 |
| | | if(fingerList.length < 10) |
| | | { |
| | | fingerList.push(drawObj); |
| | | } |
| | | } |
| | | //绘画双手掌心 |
| | | else if(num < 12) |
| | | { |
| | | new renderHand(context, coordArray).drawHand(color); |
| | | } |
| | | //绘画圆圈 |
| | | showImage(context, "image/base_fpVerify_clearImage.png", "clearForRegister"); |
| | | //绘画圆弧 |
| | | //else if(num == 12) |
| | | //{ |
| | | // new FillArc(context, coordArray).drawArc(arcBgColor); |
| | | //} |
| | | } |
| | | /** |
| | | * 重画 |
| | | * @author wenxin |
| | | * @create 2013-05-13 10:18:31 am |
| | | * @param x, y 鼠标点击处的坐标 |
| | | */ |
| | | function redraw(x, y) |
| | | { |
| | | var canvas = document.getElementById("canvas"); |
| | | if (canvas.getContext) |
| | | { |
| | | var context = canvas.getContext("2d"); |
| | | |
| | | //是否点击在手指区域 |
| | | var isInFingerArea = false; |
| | | //判断当前点击是否在手指区域 |
| | | for ( var i = 0; i < fingerList.length; i++) |
| | | { |
| | | var finger = fingerList[i]; |
| | | finger.drawFinger(strokeStyle, fingerBorderColor); |
| | | if (context.isPointInPath(x, y)) |
| | | { |
| | | isInFingerArea = true; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | outerloop: |
| | | for ( var i = 0; i < fingerList.length; i++) |
| | | { |
| | | if(collectFlag) |
| | | { |
| | | //当点击的是同一个手指时,如何判断?(编辑指纹时,有问题) |
| | | if(fpIdNum == i) |
| | | { |
| | | //切换手指后,渲染手指(消除原来手指的颜色) |
| | | renderAfterColl(globalContext, fpIdNum, bgColor, false); |
| | | } |
| | | } |
| | | var finger = fingerList[i]; |
| | | finger.drawFinger(strokeStyle, fingerBorderColor); |
| | | //currentContext = context; |
| | | if (context.isPointInPath(x, y)) |
| | | { |
| | | globalContext = context; |
| | | //两次是否点击的同一个手指进行采集。如果是,则第二次点击时取消采集。 |
| | | var iaSameFinger = false; |
| | | if(fpIdNum == i && collectFlag) |
| | | { |
| | | iaSameFinger = true; |
| | | } |
| | | var fingerId; |
| | | //判断该手指是否已经有指纹 |
| | | var isCollected = false; |
| | | isCollected = isContains(fingerIdArray, i); |
| | | fpIdNum = i; |
| | | if(!isCollected) |
| | | { |
| | | //保存当前正在采集的手指标记 |
| | | lastFPIdNum = fpIdNum; |
| | | } |
| | | //如果已经有指纹 |
| | | if(isCollected) |
| | | { |
| | | //取消采集 |
| | | cancelRegister(); |
| | | var flag=confirm("删除当前选中的指纹吗?"); |
| | | if(flag){ |
| | | delFPData(flag, context, "html5"); |
| | | collectTips(globalContext, "请选择手指.", "html5"); |
| | | //进度条 |
| | | drawProgressBar(globalContext, 0); |
| | | } |
| | | |
| | | break outerloop; |
| | | } |
| | | else |
| | | { |
| | | //两次点击的同一个手指进行采集,则第二次取消采集。 |
| | | if(iaSameFinger) |
| | | { |
| | | //取消采集 |
| | | cancelRegister(); |
| | | //取消采集后重新提示请选择手指 |
| | | collectTips(globalContext, "请选择手指.", "html5"); |
| | | //取消采集后重新绘制进度条 |
| | | drawProgressBar(context, 0); |
| | | fpIdNum = -1; |
| | | } |
| | | else |
| | | { |
| | | //取消采集 |
| | | cancelRegister(); |
| | | context.fillStyle = fillFingerColor; |
| | | context.fill(); |
| | | //globalContext = context; |
| | | collectFlag = true;//需要判断,当重复点击时,颜色改变 |
| | | $("#duressFinger").attr("disabled", true); |
| | | $("#submitButtonId").attr("disabled", true); |
| | | //${base_fp_collCount}:按压指纹剩余次数: |
| | | var text = "按压剩余次数:"+FINGERPRINT_NUMBER; |
| | | //进度条 |
| | | drawProgressBar(globalContext, 0); |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, text, "html5"); |
| | | //指纹采集 |
| | | fpCollection(context); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | context.fillStyle = bgColor; |
| | | context.fill(); |
| | | renderInit(context, i, "html5"); |
| | | if(collectFlag) |
| | | { |
| | | if(fpIdNum == i && !isInFingerArea) |
| | | { |
| | | context.fillStyle = fillFingerColor; |
| | | context.fill(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 页面加载时,初始化数据 |
| | | * @author wenxin |
| | | * @create 2013-07-09 15:18:31 pm |
| | | */ |
| | | function dataInitReg() |
| | | { |
| | | if(!duressFingerShowFlag) |
| | | { |
| | | $("#duressFingerDiv").hide(); |
| | | } |
| | | var canvas = document.getElementById("canvas"); |
| | | var context = canvas.getContext("2d"); |
| | | |
| | | fpIdNum = null; |
| | | //获取页面的指纹数据 |
| | | getDataFromPage(); |
| | | //绘画 |
| | | draw(context, x, y, fingerBorderColor); |
| | | //jquery在ie下实现cors跨域请求 |
| | | jQuery.support.cors = true; |
| | | //鼠标事件 |
| | | canvas.onmousedown = function(event){ |
| | | //event.which == 1--鼠标左键 |
| | | if(event.which == 1) |
| | | { |
| | | var pageInfo = canvas.getBoundingClientRect(); |
| | | var x = event.clientX - pageInfo.left; |
| | | var y = event.clientY - pageInfo.top; |
| | | |
| | | duressFingerFlag = $("#duressFinger").attr("checked"); |
| | | |
| | | //重画 |
| | | redraw(x, y); |
| | | } |
| | | } |
| | | } |
| | | |
| | | function myfunction(){ |
| | | /** |
| | | * 采集指纹 |
| | | * @author wenxin |
| | | * @create 2013-05-13 10:18:31 am |
| | | * @param context 2d画布上下文 |
| | | */ |
| | | function fpCollection(context) { |
| | | $.ajax({ |
| | | type: "GET", |
| | | url: issOnlineUrl + "/fingerprint/beginCapture?type=1&FakeFunOn=0&random=" + getRandomNum(), |
| | | dataType: "json", |
| | | async: true, |
| | | success: function (result) { |
| | | //返回码 |
| | | var ret = null; |
| | | ret = result.ret; |
| | | //接口调用成功返回时 |
| | | if (ret == 0) { |
| | | //检查采集次数、显示图像 |
| | | checkCollCount(); |
| | | } |
| | | else if (ret == -2001) { |
| | | //${base_fp_connectFail}:连接指纹采集器失败 |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, "未检测到指纹采集器.", "html5"); |
| | | } |
| | | else if (ret == -2002) { |
| | | getWebServerInfo(null, null, "1"); |
| | | } |
| | | else if (ret == -2005) { |
| | | //取消采集 |
| | | cancelRegister(); |
| | | //切换手指后,渲染手指(消除原来手指的颜色) |
| | | renderAfterColl(globalContext, fpIdNum, bgColor, false); |
| | | //${base_fp_pressFinger}:请选择手指 |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, "请选择手指.", "html5"); |
| | | } |
| | | }, |
| | | error: function (XMLHttpRequest, textStatus, errorThrown) { |
| | | alert("请安装指纹驱动或启动该服务!"); |
| | | //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"}); |
| | | } |
| | | }); |
| | | } |
| | | /** |
| | | * 检查采集次数 |
| | | * @author wenxin |
| | | * @create 2013-05-22 09:24:31 am |
| | | * @param collCount 采集次数 |
| | | */ |
| | | function checkCollCount() { |
| | | var base64FPImg = ""; |
| | | //返回码 |
| | | var ret = null; |
| | | $.ajax({ |
| | | type: "GET", |
| | | url: issOnlineUrl + "/fingerprint/getImage?random=" + getRandomNum(), |
| | | dataType: "json", |
| | | async: false, |
| | | success: function (result) { |
| | | //alert(objToStr(data)); |
| | | //指纹采集次数 |
| | | var collCount = 0; |
| | | ret = result.ret; |
| | | if (ret == 0) { |
| | | collCount = result.data.enroll_index; |
| | | base64FPImg = result.data.jpg_base64; |
| | | } |
| | | if (collCount != 3) { |
| | | //第一次和第二次采集,显示采集次数、指纹图像、进度条 |
| | | if (collCount == 1 || collCount == 2) { |
| | | //${base_fp_collCount}:按压指纹剩余次数: |
| | | var text = "按压剩余次数:" + (FINGERPRINT_NUMBER - collCount); |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, text, "html5"); |
| | | //进度条 |
| | | drawProgressBar(globalContext, collCount); |
| | | //显示指纹图像 |
| | | showImage(globalContext, base64FPImg, "html5"); |
| | | //清空图像 |
| | | setTimeout("clearImageData()", 200); |
| | | } |
| | | //定时器 |
| | | timer = setTimeout("checkCollCount()", 200); |
| | | } |
| | | else { |
| | | //显示指纹图像 |
| | | showImage(globalContext, base64FPImg, "html5"); |
| | | //清空图像 |
| | | setTimeout("clearImageData()", 200); |
| | | //存放国际化元素数组 |
| | | var paramArray = new Array(); |
| | | paramArray[0] = "成功登记指纹.";//base_fp_registerSuccess:成功登记指纹 |
| | | paramArray[1] = "采集失败,请重新登记.";//base_fp_pressFingerAgain:请重按手指 |
| | | paramArray[2] = "请不要重复录入指纹!";//base_fp_repeatCollection:请不要重复录入指纹! |
| | | paramArray[3] = "请安装指纹驱动或启动该服务!";//base_fp_connectPrompt:请检查网络连接 |
| | | //进度条 |
| | | drawProgressBar(globalContext, collCount); |
| | | console.log('paramArray', paramArray) |
| | | //获取指纹模板 |
| | | if (!getFPTemplate(paramArray, "register")) { |
| | | drawProgressBar(globalContext, 0);//进度条灰显 |
| | | } |
| | | |
| | | //如果胁迫指纹选中,则取消选中 |
| | | if (duressFingerFlag) { |
| | | $("#duressFinger").attr("checked", false); |
| | | } |
| | | $("#duressFinger").attr("disabled", false); |
| | | $("#submitButtonId").attr("disabled", false); |
| | | collectFlag = false; |
| | | fpIdNum = -1; |
| | | return collCount; |
| | | } |
| | | }, |
| | | error: function (XMLHttpRequest, textStatus, errorThrown) { |
| | | alert("请安装指纹驱动或启动该服务!"); |
| | | //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"}); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 取消采集,当采集中断时 |
| | | * @author wenxin |
| | | * @create 2013-05-27 17:46:31 pm |
| | | */ |
| | | function cancelRegister() { |
| | | //当前有手指在采集指纹 |
| | | if (collectFlag) { |
| | | //将定时器的递归调用关闭 |
| | | clearTimeout(timer); |
| | | //取消采集 |
| | | $.ajax({ |
| | | type: "GET", |
| | | url: issOnlineUrl + "/fingerprint/cancelCapture?random=" + getRandomNum(), |
| | | dataType: "json", |
| | | async: false, |
| | | success: function (result) { |
| | | //如果胁迫指纹选中,则取消选中 |
| | | if (duressFingerFlag) { |
| | | $("#duressFinger").attr("checked", false); |
| | | } |
| | | if (fpModifyFlag) { |
| | | $("#submitButtonId").attr("disabled", false); |
| | | } |
| | | $("#duressFinger").attr("disabled", false); |
| | | if (fpIdNum != null) { |
| | | //消除原来手指的颜色 |
| | | |
| | | renderAfterColl(globalContext, lastFPIdNum, bgColor, false); |
| | | } |
| | | collectFlag = false; |
| | | }, |
| | | error: function (XMLHttpRequest, textStatus, errorThrown) { |
| | | alert("请安装指纹驱动或启动该服务!"); |
| | | //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"}); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 绘画 |
| | | * @author wenxin |
| | | * @create 2013-05-13 10:18:31 am |
| | | * @param context 2d画布上下文 |
| | | * @param x, y 绘画左手掌的第一个点的坐标,后面的绘画手指和右手掌的坐标都是相对于此点坐标来计算 |
| | | * @param color 绘画手指和手掌的边框颜色 |
| | | */ |
| | | function draw(context, x, y, color) { |
| | | var coordArray = new Array(); |
| | | //初始化起始坐标,并返回json格式数据 |
| | | var coordJson = initCoordJson(); |
| | | for (var i = 0; i < coordJson.length; i++) { |
| | | //绘画双手和圆弧 |
| | | drawHandAndArc(context, coordArray, color, coordJson[i].coord.x, coordJson[i].coord.y, coordJson[i].num); |
| | | // drawHandAndArc(context, coordArray, color, coordJson[i].coord.x, coordJson[i].coord.y, i); |
| | | coordArray = null; |
| | | coordArray = new Array(); |
| | | } |
| | | //存放国际化元素数组 |
| | | var paramArray = new Array(); |
| | | paramArray[0] = "请选择手指."; |
| | | paramArray[1] = "未检测到指纹采集器."; |
| | | paramArray[2] = "加载动态库失败."; |
| | | paramArray[3] = "请选择手指."; |
| | | |
| | | |
| | | //检查指纹采集器 |
| | | checkFPReader(context, paramArray, "html5"); |
| | | |
| | | //进度条 |
| | | drawProgressBar(context, 0); |
| | | //将确定按钮置灰 |
| | | $("#submitButtonId").attr("disabled", true); |
| | | } |
| | | /** |
| | | * 绘画双手和圆弧 |
| | | * @author wenxin |
| | | * @create 2013-06-17 10:18:31 am |
| | | * @param context 2d画布上下文 |
| | | * @param coordArray 坐标数组 |
| | | * @param x, y 绘画左手掌的第一个点的坐标,后面的绘画手指和右手掌的坐标都是相对于此点坐标来计算 |
| | | * @param color 绘画手指和手掌的边框颜色 |
| | | * @param num 当前会话对象编号 |
| | | */ |
| | | function drawHandAndArc(context, coordArray, color, x, y, num) { |
| | | //初始化坐标 |
| | | coordArray = initCoordArray(coordArray, x, y, num); |
| | | var drawObj = null; |
| | | //绘画手指 |
| | | if (num < 10) { |
| | | drawObj = "finger" + num; |
| | | drawObj = new renderFinger(context, coordArray); |
| | | drawObj.drawFinger(strokeStyle, color); |
| | | //初始化时,渲染手指 |
| | | renderInit(context, num, "html5"); |
| | | //将绘画的手指实例放入数组,方便重画时用 |
| | | if (fingerList.length < 10) { |
| | | fingerList.push(drawObj); |
| | | } |
| | | } |
| | | //绘画双手掌心 |
| | | else if (num < 12) { |
| | | new renderHand(context, coordArray).drawHand(color); |
| | | } |
| | | //绘画圆圈 |
| | | showImage(context, "image/base_fpVerify_clearImage.png", "clearForRegister"); |
| | | //绘画圆弧 |
| | | //else if(num == 12) |
| | | //{ |
| | | // new FillArc(context, coordArray).drawArc(arcBgColor); |
| | | //} |
| | | } |
| | | /** |
| | | * 重画 |
| | | * @author wenxin |
| | | * @create 2013-05-13 10:18:31 am |
| | | * @param x, y 鼠标点击处的坐标 |
| | | */ |
| | | function redraw(x, y) { |
| | | var canvas = document.getElementById("canvas"); |
| | | if (canvas.getContext) { |
| | | var context = canvas.getContext("2d"); |
| | | |
| | | //是否点击在手指区域 |
| | | var isInFingerArea = false; |
| | | //判断当前点击是否在手指区域 |
| | | for (var i = 0; i < fingerList.length; i++) { |
| | | var finger = fingerList[i]; |
| | | finger.drawFinger(strokeStyle, fingerBorderColor); |
| | | if (context.isPointInPath(x, y)) { |
| | | isInFingerArea = true; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | outerloop: |
| | | for (var i = 0; i < fingerList.length; i++) { |
| | | if (collectFlag) { |
| | | //当点击的是同一个手指时,如何判断?(编辑指纹时,有问题) |
| | | if (fpIdNum == i) { |
| | | //切换手指后,渲染手指(消除原来手指的颜色) |
| | | renderAfterColl(globalContext, fpIdNum, bgColor, false); |
| | | } |
| | | } |
| | | var finger = fingerList[i]; |
| | | finger.drawFinger(strokeStyle, fingerBorderColor); |
| | | //currentContext = context; |
| | | if (context.isPointInPath(x, y)) { |
| | | globalContext = context; |
| | | //两次是否点击的同一个手指进行采集。如果是,则第二次点击时取消采集。 |
| | | var iaSameFinger = false; |
| | | if (fpIdNum == i && collectFlag) { |
| | | iaSameFinger = true; |
| | | } |
| | | var fingerId; |
| | | //判断该手指是否已经有指纹 |
| | | var isCollected = false; |
| | | isCollected = isContains(fingerIdArray, i); |
| | | fpIdNum = i; |
| | | if (!isCollected) { |
| | | //保存当前正在采集的手指标记 |
| | | lastFPIdNum = fpIdNum; |
| | | } |
| | | //如果已经有指纹 |
| | | if (isCollected) { |
| | | //取消采集 |
| | | cancelRegister(); |
| | | var flag = confirm("删除当前选中的指纹吗?"); |
| | | if (flag) { |
| | | delFPData(flag, context, "html5"); |
| | | collectTips(globalContext, "请选择手指.", "html5"); |
| | | //进度条 |
| | | drawProgressBar(globalContext, 0); |
| | | } |
| | | |
| | | break outerloop; |
| | | } |
| | | else { |
| | | //两次点击的同一个手指进行采集,则第二次取消采集。 |
| | | if (iaSameFinger) { |
| | | //取消采集 |
| | | cancelRegister(); |
| | | //取消采集后重新提示请选择手指 |
| | | collectTips(globalContext, "请选择手指.", "html5"); |
| | | //取消采集后重新绘制进度条 |
| | | drawProgressBar(context, 0); |
| | | fpIdNum = -1; |
| | | } |
| | | else { |
| | | //取消采集 |
| | | cancelRegister(); |
| | | context.fillStyle = fillFingerColor; |
| | | context.fill(); |
| | | //globalContext = context; |
| | | collectFlag = true;//需要判断,当重复点击时,颜色改变 |
| | | $("#duressFinger").attr("disabled", true); |
| | | $("#submitButtonId").attr("disabled", true); |
| | | //${base_fp_collCount}:按压指纹剩余次数: |
| | | var text = "按压剩余次数:" + FINGERPRINT_NUMBER; |
| | | //进度条 |
| | | drawProgressBar(globalContext, 0); |
| | | //显示框--采集提示 |
| | | collectTips(globalContext, text, "html5"); |
| | | //指纹采集 |
| | | fpCollection(context); |
| | | } |
| | | } |
| | | } |
| | | else { |
| | | context.fillStyle = bgColor; |
| | | context.fill(); |
| | | renderInit(context, i, "html5"); |
| | | if (collectFlag) { |
| | | if (fpIdNum == i && !isInFingerArea) { |
| | | context.fillStyle = fillFingerColor; |
| | | context.fill(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 页面加载时,初始化数据 |
| | | * @author wenxin |
| | | * @create 2013-07-09 15:18:31 pm |
| | | */ |
| | | function dataInitReg() { |
| | | if (!duressFingerShowFlag) { |
| | | $("#duressFingerDiv").hide(); |
| | | } |
| | | var canvas = document.getElementById("canvas"); |
| | | var context = canvas.getContext("2d"); |
| | | |
| | | fpIdNum = null; |
| | | //获取页面的指纹数据 |
| | | getDataFromPage(); |
| | | //绘画 |
| | | draw(context, x, y, fingerBorderColor); |
| | | //jquery在ie下实现cors跨域请求 |
| | | jQuery.support.cors = true; |
| | | //鼠标事件 |
| | | canvas.onmousedown = function (event) { |
| | | //event.which == 1--鼠标左键 |
| | | if (event.which == 1) { |
| | | var pageInfo = canvas.getBoundingClientRect(); |
| | | var x = event.clientX - pageInfo.left; |
| | | var y = event.clientY - pageInfo.top; |
| | | |
| | | duressFingerFlag = $("#duressFinger").attr("checked"); |
| | | |
| | | //重画 |
| | | redraw(x, y); |
| | | } |
| | | } |
| | | } |
| | | |
| | | function myfunction() { |
| | | //加载xml中ISSOnline_server的ip和port |
| | | //loadXml("<%=basePath%>"+"webapp/xml/BaseISSOnlineServer.xml"); |
| | | //加载指纹标记和指纹模板数据到页面 |
| | |
| | | paramArray[0] = '指纹'; |
| | | paramArray[1] = '指纹数:'; |
| | | paramArray[2] = '确认保存当前修改吗?'; |
| | | paramArray[3] = '登记'; |
| | | paramArray[3] = '录入指纹'; |
| | | paramArray[4] = '请安装指纹驱动或启动该服务!'; |
| | | paramArray[5] = '0'; |
| | | paramArray[6] = '指纹数:'; |
| | |
| | | checkDriver(paramArray, browserFlag, false); |
| | | } |
| | | |
| | | function closeCompa() |
| | | { |
| | | function closeCompa() { |
| | | $("#bg").css("display", "none"); |
| | | $("#box").css("display", "none"); |
| | | $("#comparisonDiv").css("display", "none"); |
| | | } |
| | | |
| | | //初始化界面数据,即清除指纹记录。 |
| | | function cleanData() |
| | | { |
| | | function cleanData() { |
| | | var canvas = document.getElementById("canvas"); |
| | | var context = canvas.getContext("2d"); |
| | | fpIdNum = null; |
| | |
| | | redraw(x, y); |
| | | } |
| | | |
| | | function doVerify() |
| | | { |
| | | function doVerify() { |
| | | var regTemplate = "TVFTUjIyAAAEEhAFBQUHCc7QAAAcE2kAAAAAgyEgiBKiAacPlQABAIIdnAHcAH4PagBlEmYN6ACJAA0PLhKrAaoPSADAAZcdEQGWACsONgA8EqwMzQAYAEYPZBJMAIMOhAB3AJodXgGdALIPeAB5EmQPqQBZADAMNxKXAbMPRACKAMIdAABwAM4PYQAbEvkOoQA9Ab0PAhMXAFMOtQCeAfAdlwGIAM0PZABvEucMcgDfAEoPyBJqAUgOngDAAX0dcAEyANkPUAAnE/cOIwBXAH8PAxMHAFMMGQDiAMEdLAmp3xIhWOopGLPgtfpCBkfzxGWAgSogmv2fgkJ1qPtygM/6FgYnAf6ecoBWeeZzdz8K4i9neo/e2VeB9g7jj7PzfPgBCHvu5hdWAxMP/QzLAbaAsJMYEaa8IAtOidYD9w2j/FoCFgk3ia4jhmX6I8cHuYf3hcMQ8AG335Nj830/ERZyASuC6G9qhZJs8OoY8hMfC8filOfG4M5Wk4TO7EYDExab4gbnvZFXfbcHvvW69PsZcAGv37/XMgzfEcLuzLf4/cQJBBIDMVlMFw+e9VYh1l1f/06bOqskIQADRB4qBMUsBEicDQA4AFoBwIJDgiUARABXVXhw7cCVw4DDb0fAf9CGxRQAVACnosXSwkSEwsDCBosDEmABXpNcDsWHBHvCgWd4eAbFngRlx8HAwwUAHwAN7P7ZDAAOAoZ4+9FSbgMAGQWJwwgSYhNTwVyABYgZEswVj6lpwkl6ldSDocPBSQnF1R0dwf/9/f4kwQDJCIGOBAAbLviECxMNL6mZfsUFwcDSwcMRAO83WcPFgJONkMQLAKs4SNLDcMHClhbFp0r7/P3A+fjAm/767PzB/f/9wOMDBNtTgcMJAJmlU6XUyMLDDQELoEkyVMHB+10GAMtrOYHBDQAUazAFc4BuBQG8b3Cn3gDPYEf//vz9/D76+u38//7///w7/vns//v9wP3A3gEPb0j///9HwDhU++3+/ztE/0beAQiBSP/+PlP+Ov/7UsH8///AwDv/xewLARSXKXivhQ4SNp0peIOJzgEPvVIqV8AzDsUMvznDdcFsb8HdARSuXVVTPsDA7v867f9LBwAMyvWZaB4ADsta/0eQ/kkeABDZXP/COcFP0zMHAAveJwbAxNECAZ3fdP3QAQTsZUZM//5bBf/60j/BChAXC9N0emUGEZ8Icf6F/w0DAgtiPkr/yBEGC2ZL/8D+wzr+XRYRWVt9MgrUAiJ1RcH/ZAwQyynz63PD/8PAasIQED0XwMDCagjVDjU7n8GNBRChhXTEKgQR5kNtRcEQ511sRVJCABmGAQYTAccAWl8AxACmEoXUAAAZRZcAQFAAAAAAABbFAAQSAzIAAAAAxQBBUA=="; |
| | | var fpTemplate = "TVFTUjIyAAAEEhAFBQUHCc7QAAAcE2kAAAAAgyEgiBKiAacPlQABAIIdnAHcAH4PagBlEmYN6ACJAA0PLhKrAaoPSADAAZcdEQGWACsONgA8EqwMzQAYAEYPZBJMAIMOhAB3AJodXgGdALIPeAB5EmQPqQBZADAMNxKXAbMPRACKAMIdAABwAM4PYQAbEvkOoQA9Ab0PAhMXAFMOtQCeAfAdlwGIAM0PZABvEucMcgDfAEoPyBJqAUgOngDAAX0dcAEyANkPUAAnE/cOIwBXAH8PAxMHAFMMGQDiAMEdLAmp3xIhWOopGLPgtfpCBkfzxGWAgSogmv2fgkJ1qPtygM/6FgYnAf6ecoBWeeZzdz8K4i9neo/e2VeB9g7jj7PzfPgBCHvu5hdWAxMP/QzLAbaAsJMYEaa8IAtOidYD9w2j/FoCFgk3ia4jhmX6I8cHuYf3hcMQ8AG335Nj830/ERZyASuC6G9qhZJs8OoY8hMfC8filOfG4M5Wk4TO7EYDExab4gbnvZFXfbcHvvW69PsZcAGv37/XMgzfEcLuzLf4/cQJBBIDMVlMFw+e9VYh1l1f/06bOqskIQADRB4qBMUsBEicDQA4AFoBwIJDgiUARABXVXhw7cCVw4DDb0fAf9CGxRQAVACnosXSwkSEwsDCBosDEmABXpNcDsWHBHvCgWd4eAbFngRlx8HAwwUAHwAN7P7ZDAAOAoZ4+9FSbgMAGQWJwwgSYhNTwVyABYgZEswVj6lpwkl6ldSDocPBSQnF1R0dwf/9/f4kwQDJCIGOBAAbLviECxMNL6mZfsUFwcDSwcMRAO83WcPFgJONkMQLAKs4SNLDcMHClhbFp0r7/P3A+fjAm/767PzB/f/9wOMDBNtTgcMJAJmlU6XUyMLDDQELoEkyVMHB+10GAMtrOYHBDQAUazAFc4BuBQG8b3Cn3gDPYEf//vz9/D76+u38//7///w7/vns//v9wP3A3gEPb0j///9HwDhU++3+/ztE/0beAQiBSP/+PlP+Ov/7UsH8///AwDv/xewLARSXKXivhQ4SNp0peIOJzgEPvVIqV8AzDsUMvznDdcFsb8HdARSuXVVTPsDA7v867f9LBwAMyvWZaB4ADsta/0eQ/kkeABDZXP/COcFP0zMHAAveJwbAxNECAZ3fdP3QAQTsZUZM//5bBf/60j/BChAXC9N0emUGEZ8Icf6F/w0DAgtiPkr/yBEGC2ZL/8D+wzr+XRYRWVt9MgrUAiJ1RcH/ZAwQyynz63PD/8PAasIQED0XwMDCagjVDjU7n8GNBRChhXTEKgQR5kNtRcEQ511sRVJCABmGAQYTAccAWl8AxACmEoXUAAAZRZcAQFAAAAAAABbFAAQSAzIAAAAAxQBBUA=="; |
| | | $.ajax( { |
| | | type : "POST", |
| | | url : "http://127.0.0.1:22001/ZKBIOOnline/fingerprint/verify", |
| | | dataType : "json", |
| | | data:JSON.stringify({'reg':regTemplate, |
| | | 'ver':fpTemplate}), |
| | | $.ajax({ |
| | | type: "POST", |
| | | url: "http://127.0.0.1:22001/ZKBIOOnline/fingerprint/verify", |
| | | dataType: "json", |
| | | data: JSON.stringify({ |
| | | 'reg': regTemplate, |
| | | 'ver': fpTemplate |
| | | }), |
| | | async: true, |
| | | success : function(data) |
| | | { |
| | | success: function (data) { |
| | | //返回码 |
| | | var ret = null; |
| | | ret = data.ret; |
| | | //接口调用成功返回时 |
| | | if(ret == 0) |
| | | { |
| | | ret = data.ret; |
| | | //接口调用成功返回时 |
| | | if (ret == 0) { |
| | | alert("score:" + data.score); |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | alert("ret:" + data.ret); |
| | | } |
| | | }, |
| | | error : function(XMLHttpRequest, textStatus, errorThrown) |
| | | { |
| | | error: function (XMLHttpRequest, textStatus, errorThrown) { |
| | | alert("请安装指纹驱动或启动该服务!"); |
| | | } |
| | | } |
| | | }); |
| | | } |