在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 =>{
      })
Logo

前往低代码交流专区

更多推荐