身份证阅读器读卡器谷歌火狐浏览器WEB开发接口
发布时间:2026/9/10 9:20:57 作者:尧图编辑部 阅读量:1,286

以EST-100G身份证阅读器系列WEB浏览器读卡效果图从图片中可以看到此款设备支持二代身份证、三代身份证、身份证头像、身份证物理卡号、IC卡卡号、银行卡卡号、社保卡等多种卡片信息读取支持谷歌火狐等多浏览器。测试版本2021年01月更新Chrome浏览器78.*支持httpsFirefox浏览器70.*360浏览器10.0.*支持极速和兼容两种模式IE浏览器IE11Edge浏览器不支持QQ浏览器支持搜狗浏览器支持遨游浏览器支持V4.2.5 2019-12-09*增加读取身份证正、反面照片功能*增加M1卡读写操作功能可读写扇区、块信息*增加CPU卡读写操作功能APDU指令说明此SDK支持型号东信EST-100G免驱系列身份证读卡器其他品牌型号未经深度测试不一定适用// **无缝支持新版本谷歌Chrome火狐Firefox网页浏览器支持H5、Vue、React、jQuery、JSP、PHP、ASP、ASPX、JS、HTML等开发语言以下是WEB前端部分代码供参考html head title东信EST-100G系列谷歌火狐身份证社保卡读卡测试页面V4.1.1/title meta http-equivContent-Type contenttext/html; charsetutf-8 / style body {background-color:#eeeeee;} td {background-color:#FFFFFF;} input {width:430px;} .butt {width:110px; height:25px;} .title {padding-left:10px; width:130px;} table {font-size:12px;} table .tfonts{font-size:22px;} /style /head body table width800px border0 cellspacing1 cellpadding2 aligncenter bgcolor#18bf10 tr td colspan3 aligncenter height60px; classtfonts东信EST-100系列产品谷歌Chrome、火狐Firefox测试页面V4.1.1/td /tr tr td classtitle姓名/td td width100px input typetext nametext_name idtext_name value readonly /td td rowspan5 aligncenter img idPhotoID namePhoto stylewidth:102px; height:126px; srchttps://img-blog.csdnimg.cn/2022010709324177507.jpeg/ /td /tr tr td classtitle性别/td td input typetext nametext_sex idtext_sex value readonly /td /tr tr td classtitle民族/td td input typetext nametext_nation idtext_nation value readonly /td /tr tr td classtitle出生/td td input typetext nametext_birthday idtext_birthday value readonly /td /tr tr td classtitle住址/td td input typetext nametext_address idtext_address value readonly /td /tr tr td classtitle身份证号码/td td input typetext nametext_idNum idtext_idNum value readonly /td td rowspan5 aligncenter img idPhotoIDFront namePhoto stylewidth:200px;height:126px; srchttps://img-blog.csdnimg.cn/2022010709324231495.jpeg/ /td /tr tr td classtitle签发机关/td td input typetext nametext_dept idtext_dept value readonly /td /tr tr td classtitle有效期开始/td td input typetext nametext_effDate idtext_effDate value readonly /td /tr tr td classtitle有效期结束/td td input typetext nametext_expDate idtext_expDate value readonly /td /tr tr td classtitle身份证物理ID/td td input typetext nametext_ID idtext_ID value readonly /td /tr tr td classtitleIC卡卡号/td td input typetext nametext_IC_ID idtext_IC_ID value readonly /td td rowspan5 aligncenter img idPhotoIDBack namePhoto stylewidth:200px;height:126px; srchttps://img-blog.csdnimg.cn/2022010709324243000.jpeg/ /td /tr tr td classtitle银行卡号/td td input typetext nametext_Bank_ID idtext_Bank_ID value readonly /td /tr tr td classtitle社保卡姓名/td td input typetext nameS_text_name idS_text_name value readonly /td /tr tr td classtitle社保卡性别/td td input typetext nameS_text_sex idS_text_sex value readonly /td /tr tr td classtitle社保卡名族/td td input typetext nameS_text_nation idS_text_nation value readonly /td /tr tr td classtitle社保卡出生日期/td td colspan2 input typetext nameS_text_birthday idS_text_birthday value readonly /td /tr tr td classtitle社保卡身份证号码/td td colspan2 input typetext nameS_text_idNum idS_text_idNum value readonly /td /tr tr td classtitle发卡日期/td td colspan2 input typetext nameS_text_effDate idS_text_effDate value readonly /td /tr tr td classtitle卡有效期/td td colspan2 input typetext nameS_text_expDate idS_text_expDate value readonly /td /tr tr td classtitle社保卡卡号/td td colspan2 input typetext nameS_text_kahao idS_text_kahao value readonly /td /tr tr td classtitleIC卡操作/td td colspan2 input typetext nameS_text_kacaozuo idS_text_kacaozuo value placeholderM1卡、CPU卡等读写操作在此输入指令详细见开发文档说明 /td /tr tr td classtitle返回数据/td td colspan2 textarea idtext_result rows6 nametext_result stylecolor:#FF0000;width:94.3%; cols40 readonly/textarea /td /tr tr td colspan3 aligncenter height50px; input classbutt typebutton nameclearImage value清除信息 onClickclearinput() input classbutt typebutton namereadIDCard value读身份证 onClickreadIDCard(); input classbutt typebutton namereadM1Card value读IC卡卡号 onClickreadM1Card(); input classbutt typebutton namereadBankCard value读银行卡卡号 onClickreadBankCard(); input classbutt typebutton namereadSocialCard value读社保卡 onClickreadSocialCard(); input classbutt typebutton namecardOperate valueIC卡操作 onClickcardOperate(); !--input Classbutt typebutton nameIDRequest value检测身份证卡片 onClickIDRequest();-- input classbutt typebutton namecloseSocket value关闭设备 onClickcloseSocket(); /td /tr /table /p p aligncenter 测试版本2019年12月更新 谷歌Chrome78.*.*.* / 火狐Firefox70.* / 360安全浏览器10.*.*.* / Internet ExplorerIE11 /p p aligncenter说明此SDK支持型号东信EST-100G免驱系列身份证读卡器其他品牌型号未经深度测试不一定适用/p script typetext/javascript // // **无缝支持新版本谷歌Chrome火狐Firefox网页浏览器支持H5、Vue、React、jQuery、JSP、PHP、ASP、ASPX、JS、HTML等开发语言 // 控件版本V4.1.1前端修改日期2019.12.09 // var socket; function openReader() { if(socket null){ socket new WebSocket(host); }else{ resultMsg(已初始化.); } try { socket.onopen function () { resultMsg(初始化成功.); getVersion(); }; socket.onclose function () { resultMsg(读卡服务已经断开.); }; socket.onerror function(){ resultMsg(请检查控件是否正常安装.); }; socket.onmessage function (msg) { if (typeof msg.data string) { var msgMmsg.data; var msgJson JSON.parse(msgM); //resultMsg(msgM); switch(msgJson.fun) { case EST_GetVersion#: resultMsg(版本号msgJson.errMsg); break; case EST_Reader_ReadIDCard#: if (msgJson.rCode 0) { posBeep(); document.getElementById(text_name).value msgJson.name; //姓名 document.getElementById(text_sex).value msgJson.sex; //性别 document.getElementById(text_nation).value msgJson.nation; //民族 document.getElementById(text_birthday).value msgJson.birth; //出生日期 document.getElementById(text_address).value msgJson.address; //住址 document.getElementById(text_idNum).value msgJson.certNo; //身份证号码 document.getElementById(text_dept).value msgJson.department; //签发机关 document.getElementById(text_effDate).value msgJson.effectData; //有效期开始 document.getElementById(text_expDate).value msgJson.expire; //有效期结束 document.getElementById(PhotoID).src data:image/jpeg;base64,msgJson.base64Data; //身份证头像base64格式数据实际尺寸102x126px //readIDCardImage() //读取身份证正反面照片如无需使用建议注释掉。base64格式数据实际尺寸540x340px前端为了排版做了缩小显示 //ReadCertID(); //身份证物理ID如无需使用建议注释掉 } else if(msgJson.rCode -2){ resultMsg(请放身份证); } else { resultMsg(msgJson.errMsg); } break; case EST_GetCertFrontImage#: //身份证正面照片base64格式数据 if (msgJson.rCode 0) { document.getElementById(PhotoIDFront).src data:image/jpeg;base64,msgJson.imageFront; } break; case EST_GetCertBackImage#: //身份证反面照片base64格式数据 if (msgJson.rCode 0) { document.getElementById(PhotoIDBack).src data:image/jpeg;base64,msgJson.imageBack; } break; case EST_ReadCertID#: //身份证物理ID if (msgJson.rCode 0) { document.getElementById(text_ID).value msgJson.UID; } else { resultMsg(msgJson.errMsg); } break; case EST_ReadBankCard#: //银行卡卡号 if (msgJson.rCode 0) { document.getElementById(text_Bank_ID).value msgJson.bankCard; posBeep(); } else { resultMsg(msgJson.errMsg); } break; case EST_ReadM1Card#: //IC卡卡号 if (msgJson.rCode 0) { document.getElementById(text_IC_ID).value msgJson.UID; posBeep(); } else { resultMsg(msgJson.errMsg); } break; case EST_ReadSocialCard#: //社保卡信息个别地区社保卡不按国家规范来的会读取信息不全 if (msgJson.rCode 0) { posBeep(); document.getElementById(S_text_name).value msgJson.XM; //社保卡姓名 document.getElementById(S_text_sex).value msgJson.XB; //社保卡性别 document.getElementById(S_text_nation).value msgJson.MZ; //社保卡民族 document.getElementById(S_text_birthday).value msgJson.CSRQ; //社保卡出生日期 document.getElementById(S_text_idNum).value msgJson.SHBZHM; //社保卡身份证号 document.getElementById(S_text_effDate).value msgJson.FKRQ; //社保卡有效期开始 document.getElementById(S_text_expDate).value msgJson.KYXQ; //社保卡有效期结束 document.getElementById(S_text_kahao).value msgJson.SBKH; //社保卡卡号 } else { resultMsg(msgJson.errMsg); } break; case EST_IDRequest#: if (msgJson.rCode 0) { resultMsg(找到身份证); } else { resultMsg(msgJson.errMsg); } break; case EST_FindCardM1#: if (msgJson.rCode 0) { resultMsg(寻卡成功M1卡UID msgJson.Uid); } else { resultMsg(msgJson.errMsg); } break; case EST_VerifyKeyM1#: if (msgJson.rCode 0) { resultMsg(秘钥认证成功); } else { resultMsg(msgJson.errMsg); } break; case EST_ReadCardM1#: if (msgJson.rCode 0) { resultMsg(读卡成功数据为 msgJson.readData); } else { resultMsg(msgJson.errMsg); } break; case EST_WriteCardM1#: if (msgJson.rCode 0) { resultMsg(写卡成功); } else { resultMsg(msgJson.errMsg); } break; case EST_PowerOnCpu#: //非接CPU卡上电信息 if (msgJson.rCode 0) { resultMsg(复位信息 msgJson.ATR); } else { resultMsg(msgJson.errMsg); } break; case EST_WriteCpu#: //非接CPU卡APDU指令响应信息 if (msgJson.rCode 0) { resultMsg(响应数据 msgJson.Resp); } else { resultMsg(msgJson.errMsg); } break; default: break; } } else{ alert(连接异常,请检查是否成功安装控件.); } }; } catch (ex) { alert(连接异常,请检查是否成功安装控件.); } } //提示信息 function resultMsg(msg) { document.getElementById(text_result).value \r\n msg; } //清空文本框信息 function clearinput() { document.getElementById(text_ID).value ; document.getElementById(text_IC_ID).value ; document.getElementById(text_Bank_ID).value ; document.getElementById(text_name).value ; document.getElementById(text_sex).value ; document.getElementById(text_nation).value ; document.getElementById(text_birthday).value ; document.getElementById(text_address).value ; document.getElementById(text_idNum).value ; document.getElementById(text_dept).value ; document.getElementById(text_effDate).value ; document.getElementById(text_expDate).value ; document.getElementById(text_result).value ; document.getElementById(PhotoID).src ; document.getElementById(S_text_name).value ; document.getElementById(S_text_sex).value ; document.getElementById(S_text_nation).value ; document.getElementById(S_text_birthday).value ; document.getElementById(S_text_idNum).value ; document.getElementById(S_text_effDate).value ; document.getElementById(S_text_expDate).value ; document.getElementById(S_text_kahao).value ; document.getElementById(PhotoIDBack).src ; document.getElementById(PhotoIDFront).src ; } //控件版本号 function getVersion() { socket.send(EST_GetVersion#); } //蜂鸣器控制可以自己选择是否蜂鸣 function posBeep() { if (socket.readyState 1) { socket.send(EST_PosBeep#); } else { resultMsg(未找到控件请检查控件是否安装.); } } //读取身份证信息 function readIDCard() { try { if (socket.readyState 1) { socket.send(EST_Reader_ReadIDCard#); } else { resultMsg(未找到控件请检查控件是否安装.); } } catch (ex) { resultMsg(连接异常,请检查是否成功安装控件.); } } //读取身份证正反面照片 function readIDCardImage() { try { if (socket.readyState 1) { socket.send(EST_GetCertFrontImage#); socket.send(EST_GetCertBackImage#); } else { resultMsg(未找到控件请检查控件是否安装.); } } catch (ex) { resultMsg(连接异常,请检查是否成功安装控件.); } } //读取身份证物理ID16位8进制数据一般情况用不到可以注释掉 function ReadCertID() { try { if (socket.readyState 1) { socket.send(EST_ReadCertID#); } else { resultMsg(未找到控件请检查控件是否安装.); } } catch (ex) { resultMsg(连接异常,请检查是否成功安装控件.); } } //读取IC卡号包括M1、CPU卡8位16进制数据 function readM1Card() { try { if (socket.readyState 1) { socket.send(EST_ReadM1Card#); } else { resultMsg(未找到控件请检查控件是否安装.); } } catch (ex) { resultMsg(连接异常,请检查是否成功安装控件.); } } //读取银行卡号支持QUICK PASS闪付银行卡大部分卡支持少部分地方性银行会读取失败 function readBankCard() { try { if (socket.readyState 1) { socket.send(EST_ReadBankCard#); } else { resultMsg(未找到控件请检查控件是否安装.); } } catch (ex) { resultMsg(连接异常,请检查是否成功安装控件.); } } //读社保卡支持二代芯片社保卡三代卡无秘钥不能读取 function readSocialCard() { try { if (socket.readyState 1) { socket.send(EST_ReadSocialCard#); } else { resultMsg(未找到控件请检查控件是否安装.); } } catch (ex) { resultMsg(连接异常,请检查是否成功安装控件.); } } //检测是否有身份证存在 function IDRequest() { try { if (socket.readyState 1) { socket.send(EST_IDRequest#); } else { resultMsg(未找到控件请检查控件是否安装.); } } catch (ex) { resultMsg(连接异常,请检查是否成功安装控件.); } } //IC卡读写操作函数包括M1卡读写、CPU卡读写等功能详细指令见开发文档中3.2.11 IC卡操作函数部分 function cardOperate() { try { if (socket.readyState 1) { socket.send(document.getElementById(S_text_kacaozuo).value); } else { resultMsg(未找到控件请检查控件是否安装.); } } catch (ex) { resultMsg(连接异常,请检查是否成功安装控件.); } } //关闭soket function closeSocket() { try { if(socket ! null){ socket.close(); socket null; } } catch (ex) { } }; // 默认页面打开就自动打开设备 window.onloadopenReader(); /script /body /html说明此SDK支持型号东信EST-100G其他品牌型号例如千景J15S、华科HK-100、东大HD-100、华视CVR-100U华旭HX-FDX3S神思SS628-100U新中新DKQ-A16D精伦iDR210普天CP IDMR02/TG神盾ICR-100U未经深度测试不一定适用