Vue 实现华视身份证读卡器功能
在www.downcc.com下载“华视cvr100驱动”安装程序;华视电子官网有相应的文档说明和程序下载一、服务安装选择安装目录:启动读卡服务:安装成功会有如图所示:注意事项:安装开发包必须使用管理员权限,因为windows服务和读卡器设备驱动程序均需要管理员权限,否则会安装失败。win10需要修改组策略才有管理员权限。二、服务的使用打开浏览器,输入地址http://127.0.0.1:1919
·
在www.downcc.com下载“华视cvr100驱动”安装程序;
- 华视电子官网有相应的文档说明和程序下载
一、服务安装
选择安装目录:
启动读卡服务:
安装成功会有如图所示:
注意事项:
安装开发包必须使用管理员权限,因为windows服务和读卡器设备驱动程序均需要管理员权限,否则会安装失败。
win10需要修改组策略才有管理员权限。
二、服务的使用
打开浏览器,输入地址http://127.0.0.1:19196/mainpage,回车
点击openDevice:
点击读卡:
根据以上文档目录说明封装成本地接口 根据个人需要进行封装 该读卡器的页面位于安装目录下
- 打开页面查看所需代码接口,根据实际应用拿取接口(连接,读卡,断开);
<td><input type="button" value="连接" onclick="connect()"></td>
<td><input type="button" value="读安全模块号" onclick="readSAMID()"></td>
<td><input type="button" value="读卡" onclick="readCert()"></td>
<td><input type="button" value="断开" onclick="disconnect()"></td>
function connect(){
function onSuccess(data){
document.getElementById("result").value = "提示:" + data.match("\"errorMsg\" : (.*)")[1] + "\n返回值:" + data.match("\"resultFlag\" : (.*)")[1];
}
clearForm();
var options=new Object();
options.type="GET";
options.url = "/OpenDevice";
options.timeout=5000;
options.onSuccess=onSuccess;
console.log(options,'optionssss')
ajax(options);
}
function disconnect(){
function onSuccess(data){
document.getElementById("result").value = "提示:" + data.match("\"errorMsg\" : (.*)")[1] + "\n返回值:" + data.match("\"resultFlag\" : (.*)")[1];
}
clearForm();
var options=new Object();
options.type="GET";
options.url="CloseDevice";
options.timeout=5000;
options.onSuccess=onSuccess;
ajax(options);
}
function readCert() {
function onSuccess(data){
var endDt = new Date();
document.getElementById("timeElapsed").value = (endDt.getTime() - startDt.getTime()) + "毫秒";
var errorMsg = data.match("\"errorMsg\" : (.*)")[1];
var resultFlag = data.match("\"resultFlag\" : (.*)")[1];
document.getElementById("result").value = "提示:" + errorMsg + "\n返回值:" + resultFlag;
var certType = data.match("\"certType\" : \"(.*?)\"")[1];
if(certType == " ")
{
certType = "身份证";
}
else if(certType == "I")
{
certType = "外国人居住证";
}
else if(certType == "J")
{
certType = "港澳台居住证";
}
else
{
certType = "未知";
}
document.getElementById("certType").value = certType;
document.getElementById("partyName").value = data.match("\"partyName\" : \"(.*?)\"")[1];
document.getElementById("gender").value = data.match("\"gender\" : \"(.*?)\"")[1];
document.getElementById("nation").value = data.match("\"nation\" : \"(.*?)\"")[1];
document.getElementById("bornDay").value = data.match("\"bornDay\" : \"(.*?)\"")[1];
document.getElementById("certAddress").value = data.match("\"certAddress\" : \"(.*?)\"")[1];
document.getElementById("certNumber").value = data.match("\"certNumber\" : \"(.*?)\"")[1];
document.getElementById("certOrg").value = data.match("\"certOrg\" : \"(.*?)\"")[1];
document.getElementById("effDate").value = data.match("\"effDate\" : \"(.*?)\"")[1];
document.getElementById("expDate").value = data.match("\"expDate\" : \"(.*?)\"")[1];
}
clearForm();
var startDt = new Date();
var options=new Object();
options.type="GET";
options.url="readcard";
options.timeout=5000;
options.onSuccess=onSuccess;
ajax(options);
}
- 根据自己的项目需要 创建sdk.js接口请求文件;
/*
* @Author: Hikari
* @Date: 2021-04-26 18:52:16
* @LastEditTime: 2021-04-26 20:16:36
* @LastEditors: Please set LastEditors
* @Description: 读取身份证信息
* @FilePath: /cloud-desk-top/components/common/idcard/sdk.js
*/
import Vue from 'vue';
import axios from 'axios'
const sdk = new function(){
var type = null;
// 初始化SDK 默认使用华视
this.init_sdk = function( qudao='hs' ){
this.type = qudao;
};
// 读取身份证信息
this.read_card = function(){
return new Promise((resolve ,reject )=>{
axios({
method:'post',
url:'http://localhost:19196/readCard'
}).then( res=>{
let data = res.data;
let result = data;
if( result.resultFlag == 0){
resolve( result )
}else{
reject();
}
}).catch( err => {
reject();
})
// Vue.prototype.$api.post(`/idcard/readCard`)
// .then( res=>{
// let result = res;
// if( result.resultFlag == 0){
// debugger
// resolve( res )
// }else{
// reject();
// }
// })
// .catch( err => {
// reject();
// })
})
};
// 链接
this.open_device = function(){
return new Promise((resolve ,reject )=>{
axios({
method:'post',
url:'http://localhost:19196/OpenDevice'
}).then( res=>{
let data = res.data;
let result = data;
if( result.resultFlag == 0){
resolve( result )
}else{
reject();
}
})
.catch( err => {
reject();
})
})
};
// 断开
this.close_device = function(){
return new Promise((resolve ,reject )=>{
axios({
method:'post',
url:'http://localhost:19196/CloseDevice'
}).then( res=>{
let data = res;
let result = data;
if( result.resultFlag == 0){
resolve( result )
}else{
reject();
}
})
.catch( err => {
reject();
})
})
};
};
export default sdk;
- 在项目中需要的页面引入调用
import sdk from '../components/common/idcard/sdk';
sdk.open_device()
.catch(err =>{
})
更多推荐
已为社区贡献4条内容
所有评论(0)