统信OS国产操作系统身份证读卡器社保卡读卡web网页开发使用操作流程

news2024/11/15 7:57:22

用于DONSEE系列身份证阅读器谷歌Chrome火狐Firefox插件,支持的型号有:EST-100、EST-100GS、EST-100G、EST-100U、EST-200G、EST-J13X等。

本方案无缝支持最新版本谷歌Chrome火狐Firefox等网页浏览器,支持H5、Vue、React、Node.js、Electron、Uniapp、jQuery、JSP、PHP、ASP、ASPX、JS、HTML等开发语言。

支持麒麟OS、统信OS等主流国产操作系统,支持ARM、AMD、LoongArch64、MIPS64等构架。

统信OS安装方法:

1、打开应用商店,搜索 东信智能


2、点击安装

3、安装后打开 启动器,选择打开读卡器快捷方式

4、进入读卡界面

 4、进入读卡代码集成阶段

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>HTML5</title>
    <script type="text/javascript" src="jquery-1.12.3.min.js"></script>
    <script type="text/javascript" src="cardReader-1.0.js"></script>
    <style type="text/css">
        *{
            font-family: '微软雅黑';
            font-size: 14px;
        }
        button{
            margin: 8px 15px 8px 0px;
            padding: 5px 10px;
            border: 1px solid #2E3436;
        }
        button:hover{
            background-color: white;
        }
        select, input{
            height:31px;
        }
        fieldset{
            border-color: gray;
            margin-top: 10px;
        }

        img{
            border: 1px solid gray;
            height:126px;
            width: 102px;
        }
        label{
            cursor: pointer;
        }
        .dborder{
            border: 1px gray solid;
            box-sizing: border-box;
        }
        #div4442>button{
            width: 60px;
            margin-right: 10px;
            padding-left: 0px;
            padding-right: 0px;
            margin-bottom: 0px;
        }
        #div15396>button, #div1604>button, #divm1>button{
            width: 60px;
            margin-right: 5px;
            padding-left: 0px;
            padding-right: 0px;
            margin-bottom: 0px;

        }
        #divmore>button{
            width: 100px;
            margin-top: 20px;
        }
        .divTab{
            display: flex;
        }
        .divTab>div{
            text-align: center;
            min-width: 70px;
            padding: 5px;
            border-top: 1px solid;
            border-bottom: 1px solid #FFFFFF;
            border-right: 1px solid;
            cursor: pointer;
            background-color: #CCCCCC;
        }
        .divTab>div:hover{
            background-color: #EEEEEE;
        }
        .divTab>div:first-child{
            border-left: 1px solid;
        }
        .tabSelect{
            background-color: #FFFFFF !important;
            font-weight: bold;
        }
        .divContent>div{
            padding-top: 20px;
            padding-bottom: 10px;
            padding-left: 10px;
            border:1px solid;
            margin-top: -1px;
            display: none;
        }
    </style>
</head>
<body style="background-color: gray;" onselectstart="return false;">
    <div style="width: 100%;justify-content: center;display: flex;">
        <div style="min-width: 1080px; max-width: 1080px; padding: 0px 30px 20px 30px;flex-wrap: wrap;background-color: white;" class="dborder">
            <div style="width: 100%;margin: 10px 0px;font-weight: bold;font-size: 18px;text-align: center;">网页调用读卡器测试</div>
            <div class="divTab">
                <div>设备操作</div>
                <div>身份证</div>
                <div>CPU卡接触</div>
                <div>CPU卡非接</div>
                <div>磁条卡</div>
                <div>M1卡</div>
                <div>4442/4428卡</div>
                <div>15693卡</div>
                <!--<div>指纹</div>-->
                <div>更多</div>
            </div>
            <div class="divContent">
                <!--设备操作-->
                <div>
                    <button act="open">打开端口</button>
                    <button act="close">关闭端口</button>
                </div>
                <!--身份证-->
                <div>
                    <table>
                        <tr>
                            <td width="120px;"><img id="imgIdCard"></td>
                            <td>
                                <button style="width: 120px;" act="readIDCardUID">读身份证UID</button><br>
                                <button style="width: 120px;" act="readIDCard" >身份证</button><br>
                                <button style="width: 120px;" act="readIDCardEX" >身份证(指纹)</button></td>
                        </tr>
                    </table>
                </div>
                <!--CPU卡接触-->
                <div>
                    <button act="cardClodPowerOn" ref="slotNo">冷复位</button>
                    <button act="cardHotPowerOn"  ref="slotNo">热复位</button>
                    <select style="width: 90px;" act="slotNo">
                        <option value="01">大卡</option>
                        <option value="02">副卡</option>
                        <option value="11">PSAM1</option>
                        <option value="12">PSAM2</option>
                        <option value="13">PSAM3</option>
                        <option value="14">PSAM4</option>
                    </select>
                    <input type="text" style="width:248px;margin-top: 10px;" placeholder="APDU命令 HEX串" value="0084000008" act="apdu">
                    <button act="cardPowerOff" ref="slotNo">下电</button>
                    <button style="margin-left: 95px;" act="cardRun" ref="slotNo,apdu">APDU命令</button>
                </div>
                <!--CPU卡非接-->
                <div>
                    <input type="text" style="width:252px;margin-top: 10px;" placeholder="APDU命令 HEX串" value="0084000008" act="apdu">
                    <button style="margin-right: 0px;padding: 5px 5px;" act="mcardPowerOn">TypeA 上电</button>
                    <!-- <button style="margin-left:10px;margin-right: 10px;padding: 5px 5px;" act="mcardPowerOff">TypeA 下电</button>-->
                    <button style="margin-right: 0px;padding: 5px 5px;" act="mcardRun" ref="apdu">APDU</button>
                </div>
                <!--磁条卡-->
                <div>
                    <select style="margin-right: 35px;" act="outInfo">
                        <option value="0">全部数据</option>
                        <option value="1">去除起始结束字符</option>
                        <option value="2">仅输出数字</option>
                    </select>
                    <select style="" act="appendEnter">
                        <option value="0">回车关闭</option>
                        <option value="1" selected>回车开启</option>
                    </select>
                    <div style="margin-top: 8px;">
                        <input type="radio" name="mg" act="mgNum" id="mg1" value="1" style="height: 10px;"><label for="mg1">磁道1</label>
                        <input type="radio" name="mg" act="mgNum" id="mg2" value="2" style="height: 10px;" checked><label for="mg2">磁道2</label>
                        <input type="radio" name="mg" act="mgNum" id="mg3" value="3" style="height: 10px;"><label for="mg3">磁道3</label>
                        <input type="radio" name="mg" act="mgNum" id="mg4" value="4" style="height: 10px;"><label for="mg4">磁道2/3</label>
                        <select style="margin-right: 0px;" act="outType">
                            <option value="0">主动输出</option>
                            <option value="1" selected>被动输出</option>
                        </select>
                        超时(秒)<input type="text" style="width:30px;" value="15" maxlength="12" act="outTime">
                    </div>
                    <button style="margin-right: 0px;padding-left: 0px;padding-right: 0px;" act="scardSet" ref="outInfo,appendEnter,outType,mgNum">磁条输出设置</button>
                    <button style="margin-right: 8px;margin-left: 8px;padding-left: 5px;padding-right: 5px;" act="scardGet">输出获取</button>
                    <button style="margin-right: 0px;padding-left: 0px;padding-right: 0px;" act="scardRead" ref="outTime,mgNum">获取磁道信息</button>
                </div>
                <!--M1卡-->
                <div>
                    <div style="height: 32px;margin-bottom: 7px;">
                        <input type="radio" style="height: 10px;" name="kpm1" id="kpm11" checked act="keyType" value="A"><label for="kpm11">KeyA</label>
                        <input type="radio" style="height: 10px;" name="kpm1" id="kpm12" act="keyType" value="B"><label for="kpm12" style="margin-right: 33px;">KeyB</label>
                        地址块
                        <select style="width:70px;" id="addrm1" act="addr"></select>
                    </div>
                    <div style="padding: 10px 0px;">
                        密钥<input type="text" style="width:230px;" value="FFFFFFFFFFFF" maxlength="12" act="key">
                    </div>
                    数据<input type="text" style="width:230px;font-size: 12px;" maxlength="32" VALUE="000102030405060708090A0B0C0D0E0F" act="data">
                    <div style="padding-top: 10px;">
                        初始化值<input type="text" style="width:30px;margin-right: 20px;" value="256" maxlength="12" act="numInit">
                        增/减值<input type="text" style="width:30px;" value="10" maxlength="12" act="numValue">
                    </div>
                    <div id="divm1" style="padding-top: 9px;">
                        <button act="cardm1Find">寻卡</button>
                        <button act="cardm1Auth" ref="addr,key,keyType">认证PIN</button>
                        <!--<button act="cardm1DownKey" ref="addr,key,keyType">下载密钥</button>-->
                        <!--<button act="cardm1Auth" ref="addr,key,keyType" param="{authType:'2'}" style="margin-right: 0px">下载认证</button>-->
                        <button act="cardm1Read" ref="addr">读数据</button>
                        <!--<button act="cardm1Read" param="{addr:'all'}" style="display: none;">读所有</button>-->
                        <button act="cardm1Write" ref="addr,data">写数据</button>
                        <!--<button act="cardm1Write" param="{addr:'all'}" ref="data" style="margin-right: 0px;display: none;">写所有</button><br>-->
                        <button act="cardm1NumInit"  ref="addr,numInit" style="margin-right: 0px">初始化值</button>
                        <button act="cardm1NumAdd"  ref="addr,numValue" style="margin-right: 0px">增值</button>
                        <button act="cardm1NumDe"  ref="addr,numValue" style="margin-right: 0px">减值</button>
                        <button act="cardm1NumRead"  ref="addr" style="margin-right: 0px">读值</button>
                    </div>
                </div>
                <!--4442/4428卡-->
                <div>
                    <div style="height: 32px;">
                        <input type="radio" style="height: 10px;" name="kplx" id="kplx1" value="4428" act="type" checked onclick="setI44(this)"><label for="kplx1">4428</label>
                        <input type="radio" style="height: 10px;" name="kplx" id="kplx2" value="4442" act="type" onclick="setI44(this)"><label for="kplx2">4442</label>
                    </div>
                    <br>
                    起始地址
                    <input type="text" style="width:48px;margin-right: 25px;" value="0" act="offset" id="i44begin">
                    长度
                    <input type="text" style="width:48px;margin-right: 25px;" value="1024" act="size" id="i44len">
                    密钥
                    <input type="text" style="width:60px;" value="FFFF" act="key" id="i44key">
                    <div style="padding: 15px 0px 3px;">
                        数据<input type="text" style="width:326px;" act="data">
                    </div>
                    <div id="div4442">
                        <button act="card44PowerOn" ref="type">上电</button>
                        <button act="card44PowerOff" ref="type">下电</button>
                        <button act="card44Read" ref="type, offset, size">读数据</button>
                        <button act="card44Write" ref="type, offset, size, data">写数据</button>
                        <br>
                        <button act="card44AuthPIN" ref="type,key">认证PIN</button>
                        <button act="card44EditPIN" ref="type,key">修改PIN</button>
                        <button act="card44AuthNum" ref="type">认证数</button>
                        <button act="card44ReadPro" ref="type, offset, size" style="width:80px;">读保护数据</button>
                        <button act="card44WritePro" ref="type, offset, size" style="width:80px;">写保护数据</button>
                    </div>
                </div>
                <!--15693卡-->
                <div>
                    地址
                    <select style="margin-right: 35px;width:54px;" id="addr15693" act="addr">
                    </select>
                    数据
                    <input type="text" style="width:100px;" value="12345678" act="data">
                    AFI/DSFID
                    <input type="text" style="width:50px;" value="2" act="afidsiddata">
                    <div id="div15396">
                        <button act="card15693Find">寻卡</button>
                        <button act="card15693Read" ref="addr">读卡</button>
                        <button act="card15693Write" ref="addr,data">写卡</button>
                        <button act="card15693WriteAFI" ref="afidsiddata" style="margin-right: 0px">写AFI</button>
                        <button act="card15693LockAFI" ref="addr,data">锁AFI</button>
                        <button act="card15693WriteDSFID" ref="afidsiddata">写DSFID</button>
                        <button act="card15693LockDSFID" ref="addr,data">锁DSFID</button>
                        <button act="card15693Lock" ref="addr" style="margin-right: 0px">锁定块</button>
                        <button act="card15693Info">卡片信息</button>
                        <!--<button act="card15693Write" param="{addr:'all'}">读所有</button>
                        <button act="card15693Write" ref="data" param="{addr:'all'}">写所有</button>-->
                    </div>
                </div>
                <!--指纹
                <div>
                    <div style="display: flex;">
                        <div>
                            <img style="height:120px;width:85px" id="imgFP">

                        </div>
                        <div style="display: inline-block;margin-left: 30px;">
                            <button act="collectFingerPrint" onclick="ctnFingerPrint=true;" id="btnFingerPrint"  style="margin-right: 0px">开始采集指纹</button><br>
                            <button act="" onclick="ctnFingerPrint = false;" style="margin-right: 0px">取消采集指纹</button>
                        </div>
                    </div>
                </div>-->
                <!--更多-->
                <div id="divmore">
                    <button act="version">版本信息</button>
                    <button act="serialNum">芯片序列号</button>
                    <button act="closeAnt">关闭天线</button>
                    <button act="openAnt">打开天线</button>
                    <button act="beep">蜂鸣器</button>
                    <button act="readBankNO">银行卡号</button>
                    <button act="readSci">读取社保卡</button>
                </div>
            </div>
            <div id="msg" onselectstart="event.stopPropagation();" style="margin-top: 20px; word-break: break-all;padding:3px 3px;border: 2px solid #214283;height: 443px;font-size: 14px;line-height: 27px;box-sizing: border-box;overflow-y: scroll;" ondblclick="$('#msg').html('')">消息区<br>--双击可清空消息--<br></div>


    </div>
    </div>
</body>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/931543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java“牵手”天猫商品销量API接口数据,天猫API接口申请指南

天猫平台商品销量接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取天猫商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品销量接口API是一种用于获取电商平台上商品销量数据的接口&#xff0c;通过…

mysql 命令行 执行sql文件

方法1 source source file.sql; file.sql : 绝对路径或 相对路径。 方法2 mysql -u xxx -p < file.sql 方法3 MySQLImport 工具 mysqlimport [options] database file_name 其中&#xff0c;database为要导入数据的数据库名&#xff0c;file_name为要导入的SQL文件名。还可以…

框架分析(5)-Django

框架分析&#xff08;5&#xff09;-Django 专栏介绍Django核心概念以及组件讲解模型&#xff08;Model&#xff09;视图&#xff08;View&#xff09;模板&#xff08;Template&#xff09;路由&#xff08;URLconf&#xff09;表单&#xff08;Form&#xff09;后台管理&…

【动态规划】1137. 第 N 个泰波那契数

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 文章目录 0. 题目解析1.算法原理1.1 状态表示1.2 状态转移方程1.3初始化1.4 填表顺序1.5 返回值 2.算法代码 &#x1f427; 本篇是整个动态规划的…

RT-Thread 时钟管理

时钟节拍 任何操作系统都需要提供一个时钟节拍&#xff0c;以供系统处理所有和时间有关的事件&#xff0c;如线程的延时、时间片的轮转调度以及定时器超时等。 RTT中&#xff0c;时钟节拍的长度可以根据RT_TICK_PER_SECOND的定义来调整。rtconfig.h配置文件中定义&#xff1a…

软件测试用例经典方法 |一文了解软件测试规范

软件测试规范是测试工作的依据和准则&#xff0c;在进行软件测试时&#xff0c;应在相关国标文件的要求和指导下完成测试工作&#xff0c;这样可以从根本上保证软件测试工作的质量&#xff0c;进而提升软件产品的质量。 一个完整的软件测试规范应该包括对规范本身的详细说明&a…

Python(.pyc)反编译:pycdc工具安装与使用

本文将介绍如何将python的.pyc文件反编译成源码&#xff0c;以便我们对源码的学习与改进。pycdc工具安装 下载地址&#xff1a; 1、Github地址&#xff1a;https://github.com/zrax/pycdc &#xff0c;下载后需要使用CMake进行编译。 2、已下载好及编译好的地址&#xff1a;ht…

Java多线程(十二)

目录 一、多线程环境使用哈希表 1.1 HashTable 1.2 ConcurrentHashTable 二、ConcurrentHashMap和Hashtable、HashMap 的区别 一、多线程环境使用哈希表 HashMap 本身就是线程不安全的&#xff0c;所以在多线程的环境下可以使用&#xff1a;HashTable、 ConcurrentHashMap 1.…

Mysql中explain执行计划信息中字段详解

Mysql中explain执行计划信息中字段详解 1. 获取执行计划2. 字段含义2.1 id2.2 select_type2.3 table2.4 partitions2.5 type2.6 possible_keys2.7 key2.8 ley_len2.9 ref2.10 rows2.11 extra 1. 获取执行计划 explain select * from t1; --或 desc select * from t1;2. 字段含…

Pandas数据分析教程-数据清洗-扩展数据类型

pandas-02-数据清洗&预处理 扩展数据类型1. 传统数据类型缺点2. 扩展的数据类型3. 如何转换类型文中用S代指Series,用Df代指DataFrame 数据清洗是处理大型复杂情况数据必不可少的步骤,这里总结一些数据清洗的常用方法:包括缺失值、重复值、异常值处理,数据类型统计,分…

23款奔驰GLE450轿跑升级原厂外观暗夜套件,战斗感满满的

升级的方案基本都是替换原来车身部位的镀铬件&#xff0c;可能会有人问&#xff1a;“难道直接用改色膜贴黑不好吗&#xff1f;”如果是贴膜的话&#xff0c;第一个是颜色没有那么纯正&#xff0c;这些镀铬件贴黑的技术难度先抛开不说&#xff0c;即使贴上去了&#xff0c;那过…

Mac电脑系统应该用什么软件进行优化清理?

作为一枚资深的Windows系统使用者&#xff0c;小编刚刚转向Mac系统的怀抱时&#xff0c;各种不适应&#xff0c;Windows系统中普遍使用的360清理软件目前暂时没有Mac版本的&#xff0c;这就让小编很是头疼了&#xff0c;大家的Mac都是用的什么清理软件呢&#xff1f; 经过一番…

Notion团队协作魔法:如何玩转数字工作空间?

Notion简介 Notion已经成为现代团队协作的首选工具之一。它不仅仅是一个笔记应用&#xff0c;更是一个强大的团队协作平台&#xff0c;能够满足多种工作场景的需求。 Notion的核心功能 Notion提供了丰富的功能&#xff0c;如文档、数据库、看板、日历等&#xff0c;满足团队的…

USB接口发展历程大全

1996年&#xff0c;由英特尔、微软、ibm等多家公司联合设计的usb标准问世&#xff0c;键盘、鼠标、智能手机以及打印机等等大多使用usb标准来实现供电和数据传输。 usb接口从诞生之初就是为了实现通用这个目的。在usb诞生之前&#xff0c;键盘、鼠标多使用ps二接口&#xff0c…

Doris异常处理

1、decimal 字段异常 修改为 2、连接超时 Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure The last packet successfully received from the server was 1,068 milliseconds ago. The last packet sent successfully to the ser…

kali开启SSH服务(简单无比)

1.切换到管理员用户&#xff1a; su root 提示输入root密码 2.启动SSH服务 命令为&#xff1a; /etc/init.d/ssh start 或者 systemctl start ssh 3.查看SSH服务状态是否正常运行&#xff0c;命令为&#xff1a; /etc/init.d/ssh status 图片仅供参考&#xff1a;

一文了解BFD技术:实现故障快速检测!

一、概诉 BFD提供了一个通用的、标准化的、介质无关的、协议无关的快速故障检测机制&#xff0c;有以下两大优点&#xff1a; 1.对相邻转发引擎之间的通道提供轻负荷、快速故障检测。 2.用单一的机制对任何介质、任何协议层进行实时检测。 BFD是一个简单的“Hello”协议。两个…

如何开发一款实景无人智能自动直播平台?抖音

随着科技的迅速发展和互联网的普及&#xff0c;实景无人智能直播平台逐渐成为了各行各业的热门应用。通过结合无人机、人工智能和直播技术&#xff0c;景无人智能直播平台为用户提供了全新的观看和体验方式。本文将深入探讨实景无人智能直播平台的搭建流程&#xff0c;剖析其中…

ASEMI-APT80DQ40BG二极管快速恢复特性及应用

编辑-Z 本文主要介绍了APT80DQ40BG二极管的快速恢复特性以及应用。首先&#xff0c;对该二极管的结构和工作原理进行了简要介绍。接着&#xff0c;详细阐述了其快速恢复特性及其在电源、逆变器和电动汽车等领域的应用。最后&#xff0c;对APT80DQ40BG二极管的优点和未来发展进…

element-ui里el-table表格操作列多横线怎么解决

错误展示 错误原因 在vue中封装了element-ui表格&#xff0c;然后使用插槽&#xff0c;fixed定位等&#xff0c;导致样式出现了错乱 解决方案 1、线没有对齐 /* Element-UI 的table 组件出现表格线条不对齐的问题 */ body .el-table th.gutter {display: table-cell !impor…