• 神思SS628(100)型第二代身份证验证阅读机B/S二次开发


    神思SS628(100)型第二代身份证验证阅读机具是神思电子一款经典产品

    B/S项目中需要读取个人的身份信息进行登记,为了提高效率,选择了神思电子的神思SS628(100)型第二代身份证验证阅读机,

    具体使用步骤如下:

    首先下载驱动包,由于该功能也是基于ocx插件进行交互的,,所以要先安装驱动

    下面提供下载地址:根据自己的系统型号进行安装

    链接:https://pan.baidu.com/s/15uecO4aCmM_Jq76uXDOi8A
    提取码:z1g8

    同时产家也提供了B/S下的Demo进行测试

    下载地址:

    链接:https://pan.baidu.com/s/1V47BvjmBHw7L8QywF3E_1Q
    提取码:9yg2

    <HTML>
    <H1  style = "color:#0000A0;" align=center ><font size="6">      神思第二代身份证验证系统——支持U口/串口</font></H1>
    <style type="text/css">
    <!--
    .STYLE1{
        font-family:"方正宋体-人口信息";}
    .S1 {
        width:1002px;
        margin:0 auto;
        color:#01c;
        border:0;}
    .S1 table{
        border:1px solid #707070;}
    -->
    </style>
    <HR><center>
    <OBJECT
          classid="clsid:F1317711-6BDE-4658-ABAA-39E31D3704D3"                  
          width=390
          height=300
          align=center
          hspace=0
          vspace=0
          id=idcard
          name=rdcard    
    >
    </OBJECT>
      <body  onbeforeunload="Unload()" >
        <table width="680" border="0">
          <tr>
            <td><input type="button" value="打开机具"         style="140px;"    name="myopen"    onclick="myopen_onclick()"   /></td>
            <td><input type="button" value="关闭机具"         style="140px;"    name="myclose"   onclick="myclose_onclick()"  /></td>
            <td><input type="button" value="开始读卡"         style="140px;"    name="beginread" onClick="beginread_onclick()"/></td>
            <td><input type="button" value="等待读卡"         style="140px;"    name="read3"     onclick="read3_onclick()"    /></td>
            <td><input type="button" value="停止读卡"         style="140px;"    name="endread"   onclick="endread_onclick()"  /></td>
          </tr>
          <tr>
            <td><input type="button" value="手动读卡"         style="140px;"  name="handread"  onclick="handread_onclick()"/></td>
            <td><input type="button" value="保存身份证图片"   style="140px;"  name="SaveCard"  onclick="SaveCard_onclick()"/></td>
            <td><input type="button" value="读设备模块号"     style="140px;"  name="ReadsNum"  onclick="ReadsNum_onclick()"/></td>
            <td><input type="button" value="设置文件路径"     style="140px;"  name="savepath"  onclick="savepath_onclick()"/></td>
                <td><input type="button" value="清空所有属性"     style="140px;"  name="MyClear"   onClick="MyClear_onclick()"/></td> 
          </tr>
        </table>
          <form name=tcard>
           <table class="s1" >
              <tr>
                <td width="12%" ><IMG height=126 alt="" width=102 border=0 name=photo id=jpgfile style="left:10px;"></td>
                <td>
                    <table width="820" border="1" style="color:#0011CC"  >
                      <tr>
                        <td align="right">提示信息</td>
                        <td><input name="tResult" type="text" size="40" /></td>
                        <td align="right">设备模块号</td>
                        <td><input name="tsNum" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">证件类型标识</td>
                        <td><input name="tCardType" type="text" size="40" /></td>
                        <td align="right">证件类型</td>
                        <td><input name="tCardT" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">姓名name</td>
                        <td><input name="tName" type="text" size="40" /></td>
                        <td align="right">姓名nameL</td>
                        <td><input name="tNameL" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">性别sex</td>
                        <td><input name="tSex" type="text" size="40" /></td>
                        <td align="right">性别sexL</td>
                        <td><input name="tSexL" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">民族nation</td>
                        <td><input name="tFolk" type="text" size="40" /></td>
                        <td align="right">民族nationL</td>
                        <td><input name="tFolkL" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">出生Born</td>
                        <td><input name="tBirth" type="text" size="40" /></td>
                        <td align="right">出生BornL</td>
                        <td><input name="tBirthL" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">公民身份号码</td>
                        <td><input name="tcardID" type="text" size="40" /></td>
                        <td align="right">住    址</td>
                        <td><input name="tAddr" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">最新住址</td>
                        <td><input name="tnewAddr" type="text" size="40" /></td>
                        <td align="right">签发机关</td>
                        <td><input name="tIssue" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">有效期限</td>
                        <td><input name="tBeginEnd" type="text" size="40" /></td>
                        <td align="right">有效期限L</td>
                        <td><input name="tBeginEndL" type="text" size="40" /></td>
                      </tr>
                       <tr>
                        <td align="right">通行证号码</td>
                        <td><input name="tPassPortId" type="text" size="40" /></td>
                        <td align="right">签发次数</td>
                        <td><input name="tSignCount" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">头像JPG</td>
                        <td><input name="jbuff" type="text" size="40" /></td>
                        <td align="right">头像BMP</td>
                        <td><input name="bbuff" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">头像JPGroot</td>
                        <td><input name="jroot" type="text" size="40" /></td>
                        <td align="right">头像BMProot</td>
                        <td><input name="broot" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">指纹特征值1</td>
                        <td><input name="Fchar1" type="text" size="40" /></td>
                        <td align="right">指纹特征值2</td>
                        <td><input name="Fchar2" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">指位信息1</td>
                        <td><input name="FNUM1" type="text" size="40" /></td>
                        <td align="right">指位信息2</td>
                        <td><input name="FNUM2" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">指纹质量1</td>
                        <td><input name="Fzl1" type="text" size="40" /></td>
                        <td align="right">指纹质量2</td>
                        <td><input name="Fzl2" type="text" size="40" /></td>
                      </tr>
                      <tr>
                        <td align="right">指纹注册结果1</td>
                        <td><input name="Fzhuce1" type="text" size="40" /></td>
                        <td align="right">指纹注册结果2</td>
                        <td><input name="Fzhuce2" type="text" size="40" /></td>
                      </tr>
                    </table>
                 </td>
           </tr>
         </table>
    
        </form>
      </body>
    
    <script for=idcard event="Readed()">
          //alert('Readed');
          var ss;
          getinfo_onclick();
    </script>
    
    <script for=idcard event="Closed()">
          //window.close();
    </script>
    
    <script for=idcard event="Opened()">
          //window.close();
    </script>
    
    <SCRIPT>
    
    
          function SaveCard_onclick(){
        var  pp
        if(ss=="J")
        {
            document.getElementsByName("tResult")[0].value="港澳台居民居住证暂不支持保存正反面照片";
            return;
        }
        pp = rdcard.ExportBMP("D:\"); 
        if(pp==0)
            {
            document.getElementsByName("tResult")[0].value="保存成功";
            }
            else
            {    
                document.getElementsByName("tResult")[0].value="保存失败: "+pp;
            }
        }
    
        function myopen_onclick(){
        var  pp ;
        pp=rdcard.openport();
            //alert(pp);
        if(pp==0)
            {
            document.getElementsByName("tResult")[0].value="openport成功";
            }
            else
            {    
                document.getElementsByName("tResult")[0].value="openport失败: "+pp;
            }    
        }    
            
        function myclose_onclick(){
        var  pp
        pp=rdcard.closeport();
        if(pp==0)
            {
            document.getElementsByName("tResult")[0].value="closeport成功";
            }
            else
            {    
                document.getElementsByName("tResult")[0].value="closeport失败: "+pp;
            }        
        }
            function Unload(){
            MyClose_onclick();
            //alert("Page is Close");
        }
    
        function endread_onclick(){
        var  pp
        pp=rdcard.endread();
        if(pp==0)
            {
            document.getElementsByName("tResult")[0].value="endread成功";
            }
            else
            {    
                document.getElementsByName("tResult")[0].value="endread失败: "+pp;
            }        
        }
    
        function handread_onclick(){ 
            
        var  pp
        pp=rdcard.readcard();
        if(pp==0)
            {
            document.getElementsByName("tResult")[0].value="readcard成功";
                //showjpg_onclick();
            }
            else
            {    
                document.getElementsByName("tResult")[0].value="readcard失败: "+pp;
            }
        }
        
        function beginread_onclick(){
            
        var  pp
        pp=rdcard.ReadCard2();
        if(pp==0)
            {
            document.getElementsByName("tResult")[0].value="ReadCard2成功";
            }
            else
            {    
                document.getElementsByName("tResult")[0].value="ReadCard2失败: "+pp;
            }
        }
        function read3_onclick(){
            
        var  pp
        pp=rdcard.ReadCard3();
        if(pp==0)
            {
            document.getElementsByName("tResult")[0].value="ReadCard3成功";
            }
            else
            {    
                document.getElementsByName("tResult")[0].value="ReadCard3失败: "+pp;
            }
        }
        
        function ReadsNum_onclick(){
        var  pp
        pp = rdcard.ReadSecurityNum();
        if(pp==0)
            {
                document.getElementsByName("tsNum")[0].value=rdcard.SecurityNum;    
                document.getElementsByName("tResult")[0].value=rdcard.sResultMsg;
            }
            else
            {
                document.getElementsByName("tsNum")[0].value="读模块号码失败";    
                document.getElementsByName("tResult")[0].value="读模块号码失败: "+pp;
            }
        }
        
    
        function showjpgIE6(){
            //alert('读照片成功');
            document.getElementsByName("photo")[0].src = "file:///C|/null.JPEG";
    
        if(rdcard.PhotoPath == "")  
          document.getElementsByName("photo")[0].src = "file:///C|/null.JPEG";
        else     
          document.getElementsByName("photo")[0].src = rdcard.PhotoPath    ;    
        }
        function showjpgIE8(){
            //alert('读照片成功');
            document.all['photo'].src  = 'data:image/jpeg;base64,' + rdcard.JPGBuffer;    
        }
    
    
         function getinfo_onclick(){
        var  r1,r2;
        document.getElementsByName("tName")[0].value=rdcard.NameS;
        document.getElementsByName("tNameL")[0].value=rdcard.NameL;
        document.getElementsByName("tSex")[0].value=rdcard.Sex;
        document.getElementsByName("tSexL")[0].value=rdcard.SexL;
        document.getElementsByName("tFolk")[0].value=rdcard.Nation;
        document.getElementsByName("tFolkL")[0].value=rdcard.NationL;
        document.getElementsByName("tBirth")[0].value=rdcard.Born;
        document.getElementsByName("tBirthL")[0].value=rdcard.BornL;
        document.getElementsByName("tcardID")[0].value=rdcard.CardNo;
        document.getElementsByName("tAddr")[0].value=rdcard.Address;
        document.getElementsByName("tnewAddr")[0].value=rdcard.newAddress;
        document.getElementsByName("tIssue")[0].value =rdcard.Police;
        document.getElementsByName("tBeginEnd")[0].value=rdcard.Activity;
        document.getElementsByName("tBeginEndL")[0].value = rdcard.ActivityL;
        document.getElementsByName("tPassPortId")[0].value = rdcard.PassPortId;
        document.getElementsByName("tSignCount")[0].value = rdcard.SignCount;
        document.getElementsByName("jroot")[0].value=rdcard.JPGfile;
        document.getElementsByName("broot")[0].value=rdcard.BMPfile;
        document.getElementsByName("jbuff")[0].value=rdcard.JPGBuffer;
        document.getElementsByName("bbuff")[0].value=rdcard.BMPBuffer;
        document.getElementsByName("Fchar1")[0].value=rdcard.FGchar1;
        document.getElementsByName("Fchar2")[0].value=rdcard.FGchar2;
        document.getElementsByName("tCardType")[0].value=rdcard.CardType;
        if(rdcard.bHaveCard == "1")
        {
            if(rdcard.CardType == "I")
            {
                document.getElementsByName("tCardT")[0].value="外国人永久居留证";
                ss=rdcard.CardType;
            }
            else if (rdcard.CardType == "J") {
                document.getElementsByName("tCardT")[0].value = "港澳台居民居住证";
                ss=rdcard.CardType;
            }
            else
            {
                document.getElementsByName("tCardT")[0].value="二代身份证";
                ss=rdcard.CardType;
            }
        }
        else
        {
            document.getElementsByName("tCardT")[0].value="";
            ss=rdcard.CardType;
        } 
        
        r1 = rdcard.FGNUM1;
        r2 = rdcard.FGNUM2;
        switch(r1)
        {
        case 11:
          document.getElementsByName("FNUM1")[0].value="右手拇指";
          break;
        case 12:
          document.getElementsByName("FNUM1")[0].value="右手食指";
          break;
        case 13:
          document.getElementsByName("FNUM1")[0].value="右手中指";
          break;
        case 14:
          document.getElementsByName("FNUM1")[0].value="右手环指";
          break;
        case 15:
          document.getElementsByName("FNUM1")[0].value="右手小指";
          break;
        case 16:
          document.getElementsByName("FNUM1")[0].value="左手拇指";
          break;
        case 17:
          document.getElementsByName("FNUM1")[0].value="左手食指";
          break;
        case 18:
          document.getElementsByName("FNUM1")[0].value="左手中指";
          break;
        case 19:
          document.getElementsByName("FNUM1")[0].value="左手环指";
          break;
        case 20:
          document.getElementsByName("FNUM1")[0].value="左手小指";
          break;
        default:
          document.getElementsByName("FNUM1")[0].value="";
        }    
        switch(r2)
        {
        case 11:
          document.getElementsByName("FNUM2")[0].value="右手拇指";
          break;
        case 12:
          document.getElementsByName("FNUM2")[0].value="右手食指";
          break;
        case 13:
          document.getElementsByName("FNUM2")[0].value="右手中指";
          break;
        case 14:
          document.getElementsByName("FNUM2")[0].value="右手环指";
          break;
        case 15:
          document.getElementsByName("FNUM2")[0].value="右手小指";
          break;
        case 16:
          document.getElementsByName("FNUM2")[0].value="左手拇指";
          break;
        case 17:
          document.getElementsByName("FNUM2")[0].value="左手食指";
          break;
        case 18:
          document.getElementsByName("FNUM2")[0].value="左手中指";
          break;
        case 19:
          document.getElementsByName("FNUM2")[0].value="左手环指";
          break;
        case 20:
          document.getElementsByName("FNUM2")[0].value="左手小指";
          break;
        default:
          document.getElementsByName("FNUM2")[0].value="";
        }
    
    
            r1 = rdcard.FGQualityScore1;
            r2 = rdcard.FGQualityScore2;
        if(r1 == 0)  
          document.getElementsByName("Fzl1")[0].value="";
        else     
          document.getElementsByName("Fzl1")[0].value=rdcard.FGQualityScore1;
        if(r2 == 0)  
          document.getElementsByName("Fzl2")[0].value="";
        else     
          document.getElementsByName("Fzl2")[0].value=rdcard.FGQualityScore2;
    
    
            r1 = rdcard.FGRegistry1;
            r2 = rdcard.FGRegistry2;
        switch(r1)
        {
        case 1:
          document.getElementsByName("Fzhuce1")[0].value="注册成功";
          break;
        case 2:
          document.getElementsByName("Fzhuce1")[0].value="注册失败";
          break;
        case 3:
          document.getElementsByName("Fzhuce1")[0].value="未注册";
          break;
        case 9:
          document.getElementsByName("Fzhuce1")[0].value="未知";
          break;
        default:
          document.getElementsByName("Fzhuce1")[0].value="";
        }
        switch(r2)
        {
        case 1:
          document.getElementsByName("Fzhuce2")[0].value="注册成功";
          break;
        case 2:
          document.getElementsByName("Fzhuce2")[0].value="注册失败";
          break;
        case 3:
          document.getElementsByName("Fzhuce2")[0].value="未注册";
          break;
        case 9:
          document.getElementsByName("Fzhuce2")[0].value="未知";
          break;
        default:
          document.getElementsByName("Fzhuce2")[0].value="";
        }
            document.getElementsByName("tResult")[0].value=idcard.sResultMsg;
            document.all['photo'].src  = 'data:image/jpeg;base64,' + rdcard.JPGBuffer;    
    
         }
    
    
    
    
        function savepath_onclick(){
        rdcard.strSavePath= "c:\aa";
        document.getElementsByName("tResult")[0].value="路径设置成功";
        }
    
    
        function MyClear_onclick(){
            var  pp        
            pp = rdcard.ClearAll();
            getinfo_onclick();
            document.getElementsByName("tsNum")[0].value="";
        if(pp==0)
            {
            document.getElementsByName("tResult")[0].value="清空成功";
            }
            else
            {    
                document.getElementsByName("tResult")[0].value="清空失败: "+pp;
            }
        }
    
    
        function window_onUnload(){
              rdcard.DeleteOutputFile();
              rdcard.DeleteAllPicture();
        }  
    </SCRIPT>
    </HTML>
  • 相关阅读:
    【t066】致命的珠宝
    【t081】序列长度
    【t081】序列长度(贪心做法)
    【t093】外星密码
    【codeforces 761A】Dasha and Stairs
    【codeforces 761B】Dasha and friends
    【codeforces 761C】Dasha and Password(动态规划做法)
    【codeforces 761C】Dasha and Password(贪心+枚举做法)
    【codeforces 761D】Dasha and Very Difficult Problem
    【u224】传送机
  • 原文地址:https://www.cnblogs.com/Vinkong/p/12509227.html
Copyright © 2020-2023  润新知