华大多功能四合一HD-100多功能智能卡读写器OCX插件配置使用教程

华大多功能四合一HD-100多功能智能卡读写器OCX插件配置使用教程

一、简介

华大HD-100多功能智能卡读写器作为IC卡系统集成必备的前端处理设备,极大地提高了系统的安全性和应用的方便性,能更加优秀的服务于卫生、社保、二代证查询、工商、电信、邮政、税务、银行、保险、医疗以及各种收费、储值、查询等智能卡管理应用行业。

1.HD-100有几种不同配置,功能分别如下:
四合一:身份证、社保卡、磁条卡、就诊卡 (此次教程叫的就是四合一)
三合一:社保卡、磁条卡、就诊卡

2.华大HD-100多功能读卡器产品特点:

  • 支持 ISO/IEC 7816-1/2/3 标准 CPU 卡,T=0、T=1、逻辑加密卡及memory卡,社保卡、医保卡等

  • 支持 Mifare 卡和符合 ISO14443 标准的 A 类和 B 类卡,ISO 15693 等卡片, 通讯速率最高支持 424 Kbps

  • 支持身份证卡片

  • 支持 4个 PSAM 卡安全模块、支持高速 PSAM 卡安全交易认证,符合 ISO7816 标准

  • 安装方便,可靠性高,适合联机使用

  • 全速 USB 接口, RS232,以太网等

  • 人机界面:一个指示灯,指示电源和操作状态

  • 支持在线程序升级,提供 Windows/Linux/Unix 等各种平台下的应用程序标 准 DLL 动态库接口

二、配置使用

读卡器图片,如下图

在这里插入图片描述


注意:安装前先把360等杀毒软件退出,否则可能会影响读卡器的正常使用
准备:先将读卡机设备连接到电脑usb接口,确定连接成功之后在进行一下操作

1.以管理员点击运行(华大多合一控件安装.exe)文件,如下图

在这里插入图片描述

2. 安装时一直点击下一步即可,安装成功会显示以下页面

在这里插入图片描述

3.完成安装之后打开页面时需要使用 360浏览器或者IE浏览器 打开浏览器–>工具–>Internet选项–>自定义级别 (Internet和本地Internet都需要设置),如下图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.选择启用

在这里插入图片描述


5.选择 是,之后打开页面之后选择兼容模式

在这里插入图片描述

6.选择允许阻止内容

在这里插入图片描述

7.选择 是

在这里插入图片描述

8.选择 是

在这里插入图片描述

9.硬件配置已完成接下来就可以使用啦!


三、代码分享

1.华大读卡器会给一套js代码,首先,需要引入到页面中进行调用。

<script th:src="@{/js/common/hd_card.js}"></script>

hd_card.js的代码内容如下:

// version:2019011
// 华大读卡器 head 中加 <OBJECT classid=clsid:A02C6AFF-89E7-41232-9DF3-508DD546543F9E2 width=0 height=0 align="center" id="bsHDdev" HSPACE=0 VSPACE=0></OBJECT>
/** ***************基础工具*********************** */

/**
 * 华大读卡器。读身份证或社保卡。返回:{type:类型, realname:姓名,gender:性别,nation:民族,brithday:出生日期,address:家庭住址,idCardNum:身份证号, sidCardNum:社保号, photoBase64: 照片base64字符串}
 */
function tg_readCard4HD(deviceObjectId, slot) {
    var result = tg_readIdCard4HD(deviceObjectId); // 先读身份证
    if (!result.success) { // 身份证读取失败
        result = tg_readSidCard4HD(deviceObjectId, slot); // 读取社保卡
    }
    return result;
}
/**
 * 华大读卡器。读身份证 返回:{type:类型, realname:姓名,gender:性别,nation:民族,brithday:出生日期,address:家庭住址,idCardNum:身份证号, photoBase64: 照片base64字符串}<br>
 * 相片显示:document.getElementById("photo").src="https://img-blog.csdnimg.cn/2022010711192871364.png"+photoBase64;
 */
function tg_readIdCard4HD(deviceObjectId) {
    var result = { // 返回结果
        type : 'idCard' // 身份证
    };
    var deviceObject = document.getElementById(deviceObjectId); // 得到设备控件 deviceObjectId
    var readResult = deviceObject.iReaderIDCard("C:\\zp.jpg"); // 读卡,传入照片路径
    if (readResult == 0) { // 读卡成功
        var cardInfo = deviceObject.pOutInfo;
        var base64Str = deviceObject.base64Data;
        var idCardInfo = cardInfo.split('|').slice(0, 6);
        result.success = true;
        result.realname = idCardInfo[0];
        result.gender = idCardInfo[1];
        result.nation = idCardInfo[2];
        result.brithday = idCardInfo[3];
        result.address = idCardInfo[4];
        result.idCardNum = idCardInfo[5];
        result.photoBase64 = base64Str;
    } else { // 读卡失败
        console.log(deviceObject.pMsgErr);
    }
    return result;
}

/**
 * 华大读卡器。读社保卡 返回:{type:类型, sidCardNum:社保号,idCardNum:身份证号,realname:姓名,gender:性别,nation:民族,brithday:生日}
 */
function tg_readSidCard4HD(deviceObjectId, slotParm) {
    var result = { // 返回结果
        type : 'sidCard' // 社保卡
    };
    var deviceObject = document.getElementById(deviceObjectId); // 得到设备控件 deviceObjectId
    var slot = 17; // 传入卡座号 17 -20
    if (slotParm) {
        slot = slotParm;
    }
    var readResult = deviceObject.iReadSicard(slot); // 读卡
    if (readResult == 0) { // 读卡成功
        var cardInfo = deviceObject.pOutInfo;
        var scardInfo = cardInfo.split('|').slice(0, 6);
        result.success = true;
        result.sidCardNum = scardInfo[0];
        result.idCardNum = scardInfo[1];
        result.realname = scardInfo[2];
        result.gender = scardInfo[3];
        result.nation = scardInfo[4];
        result.brithday = scardInfo[5];
    } else { // 读卡失败
        console.log(deviceObject.pMsgErr);
    }
    return result;
}

2.会有一个object classid 需要引入,下面的是我乱写的classid,每个设备都不一样。

<object classid="clsid:A02C6AFF-89E7-41232-9DF3-508DD546543F9E2" id="bsHDdev" width="0" height="0" hspace="0" vspace="0" />

3.页面使用代码示例(会自带测试页面也可以使用)

<div class="layui-card layadmin-header">
    <div class="layui-breadcrumb" lay-filter="breadcrumb">
        <a lay-href="">主页</a> <a><cite>会员业务</cite></a> <a href="#/manage/member/"><cite>挂号</cite></a>
    </div>
    <object classid="clsid:A02C6AFF-89E7-41232-9DF3-508DD546543F9E2" id="bsHDdev" width="0" height="0" hspace="0" vspace="0" />
</div>
<!--/*******页面内容*******/-->
<div class="layui-fluid">
    <div class="layui-card">
        <div class="layui-card-body">
            <form id="tg_member_add_form" lay-filter="tg_member_add_form_filter" class="layui-form layui-form-pane">
                <!--/*防止重复提交*/-->
                <!--<input name="tgAvoidRepeatSubmitToken" th:value="" type="text" hidden="true" />-->
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <img src="" id="photoBase64" />
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label">姓名<span style="color: red"> *</span></label>
                        <div class="layui-input-inline">
                            <input name="realname" id="realname" disabled placeholder="请输入姓名"  required maxlength="31" autocomplete="off" autofocus="autofocus" class="layui-input" type="text" />
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label">性别<span style="color: red"> *</span></label>
                        <div class="layui-input-inline">
                            <input id="genderStr" disabled placeholder="请输入性别"  required maxlength="31" autocomplete="off" autofocus="autofocus" class="layui-input" type="text" /> 
                            <input id="gender" name="gender" type="text" hidden="true" />
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label">民族<span style="color: red"> *</span></label>
                        <div class="layui-input-inline">
                            <input name="nation" id="nation" disabled placeholder="请输入民族"  required maxlength="31" autocomplete="off" autofocus="autofocus" class="layui-input" type="text" />
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label">出生日期<span style="color: red"> *</span></label>
                        <div class="layui-input-inline">
                            <input name="brithday" id="brithday" disabled placeholder="请输入出生日期"  required maxlength="31" autocomplete="off" autofocus="autofocus" class="layui-input" type="text" />
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label">身份证号<span style="color: red"> *</span></label>
                        <div class="layui-input-inline">
                            <input name="idCardNum" id="idCardNum" disabled placeholder="请输入身份证号"  required maxlength="31" autocomplete="off" autofocus="autofocus" class="layui-input" type="text" />
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <label class="layui-form-label">社保号<span style="color: red"> *</span></label>
                        <div class="layui-input-inline">
                            <input name="sidCardNum" id="sidCardNum" disabled placeholder="请输入社保号"  required maxlength="31" autocomplete="off" autofocus="autofocus" class="layui-input" type="text" />
                        </div>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">地址<span style="color: red"> *</span></label>
                    <div class="layui-input-block">
                        <input name="address" id="address" disabled placeholder="请输入地址"  required maxlength="31" autocomplete="off" autofocus="autofocus" class="layui-input" type="text" />
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-input-block">
                        <div class="layui-footer">
                            <input type="button" id="tg_readCard_add_submit_but" value="读卡" class="layui-btn layui-btn-lg layui-btn-normal" lay-submit="" lay-filter="tg_readCard_add_submit_but_filter">
                            <button id="tg_member_add_form_submit_but" lay-filter="tg_member_add_form_submit_but_filter" class="layui-btn layui-btn-lg" lay-submit="">挂号</button>
                        </div>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
<!--/*******当前页js*******/-->
<script>
    layui.use([ 'member', 'form', 'layer' ], function() {
        var member = layui.member, form = layui.form, $ = layui.$, layer = layui.layer;
        form.render(null, 'tg_member_add_form_filter'); // 渲染该模板动态表单
        // 监听读卡 
        form.on('submit(tg_readCard_add_submit_but_filter)', function(data) {
            var result = tg_readCard4HD("bsHDdev", 17);
            if (result.success) {
                // 设置input值
                $("#realname").attr("value", result.realname); // 姓名
                $("#genderStr").attr("value", result.gender); // 性别
                if(result.gender == "男"){
                    $("#gender").attr("value", 1);
                } else {
                    $("#gender").attr("value", 2);
                }
                var year = result.brithday.substr(0, 4);
                var month = result.brithday.substr(4, 2);
                var day = result.brithday.substr(6, 2);
                $("#nation").attr("value", result.nation); // 民族
                $("#brithday").attr("value", year + "-" + month + "-" + day); // 出生日期
                $("#address").attr("value", result.address); // 地址
                $("#idCardNum").attr("value", result.idCardNum); // 身份证号
                $("#sidCardNum").attr("value", result.sidCardNum); // 社保号
                if( result.photoBase64 != null ){
                    $("#photoBase64").attr("src", 'data:image/jpeg;base64,' + result.photoBase64); // 照片base6
                }
                // 读卡提交到后台的值
                data.field.realname = result.realname; // 姓名
                data.field.gender = $("#gender").val(); // 性别
                data.field.nation = result.nation; // 民族
                data.field.brithday = year + "-" + month + "-" + day; // 出生日期
                data.field.address = result.address; // 地址
                data.field.idCardNum = result.idCardNum; // 身份证号
                data.field.sidCardNum = result.sidCardNum; // 社保号
                data.field.photoBase64 = result.photoBase64; // 照片base6
             tg_submitForm('tg_readCard_add_submit_but', BASE_URL + 'm/cardRecord/add.htm', data.field, function(d) {
            }); 
            return false; // 阻止form跳转
            }
        });
        // 监听提交 
        form.on('submit(tg_member_add_form_submit_but_filter)', function(data) {
            if(data.field.realname != ""){
                tg_submitForm('tg_member_add_form_submit_but', BASE_URL + 'm/signRecord/add.htm', data.field, function(d) {
                    tg_alert_success_location('/manage/member/show/id=' + data.field.idCardNum); // 成功提醒并跳转
                });
            }else{
                layer.msg("请读取卡片");
            }
            return false; // 阻止form跳转
        }); 
    });
</script>

以上就是华大多功能四合一HD-100多功能智能卡读写器配置的使用教程,希望可以帮助到你,如有疑问欢迎私信探讨交流。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王然而

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值