zoukankan      html  css  js  c++  java
  • 德卡Z90读卡器读取社保卡,德卡Z90读卡器CSharp示例程序源码

    前言,最近学习调用 医保卡业务,使用德卡读卡器,主要就是调用一个DLL,动态库文件.
    借着自学的机会把心得体会都记录下来,方便感兴趣的小伙伴学习与讨论。
    内容均系原创,欢迎大家转载分享,但转载的同时别忘了注明作者和原文链接哦。本文内容和图片如果有侵犯您的权利,请联系yisheng163@qq.com。
    

      一,准备工作:

    先到德卡官网下载相关资料,下载动态库。
    http://www.decard.com/download/downloadcategoryid=10&isMode=false.html
    下载 SSCardDriver.dll 动态库。

    读卡器准备:找到一台德卡Z9读卡器用来测试,Z9与Z90基本通用,不影响测试。

    先拆开底座,把授权蕊片装入卡槽二。

    USB插头,插入电脑USB口,任意插USB,不需要记住USB端口号,下一步读卡也不需要设置USB端口号。

     

    二,C#读卡类

    /// <summary>
        /// 德卡读卡器专用类
        /// mail:yisheng163@qq.com
        /// </summary>
        public class SSCard
        {
            /// <summary>
            /// 德卡读卡器专用读卡方法,需要将SSCardDriver.dll放在程序同一目录下
            /// </summary>
            /// <param name="iType">卡的类型,定义如下:1-接触式操作卡;2-非接触式操作卡;3-自动寻卡,接触式操作卡优先;4-自动寻卡,非接触式操作卡优先。</param>
            /// <param name="outInfo">该输出参数为读出的社保卡基本信息各数据项,依次为:发卡地区行政区划代码(卡识别码前6位)、社会保障号码、卡号、卡识别码、姓名、卡复位信息(仅取历史字节)、规范版本、发卡日期、卡有效期、终端机编号、终端设备号。各数据项之间以“|”分割,且最后一个数据项以“|”结尾。</param>
            /// <returns></returns>
            [DllImport("SSCardDriver.dll", EntryPoint = "iReadCardBas")]
            public static extern int iReadCardBas(int iType, StringBuilder outInfo);
    
            /// <summary>
            /// 读取社会保障号和姓名
            /// </summary>
            /// <returns></returns>
            public static string GetIDCode(ref bool CodeState, ref string ErrDesc, ref string IName, ref string ICard)
            {
                string ReStr="";
    
                StringBuilder myStrB=new StringBuilder(256);
                iReadCardBas(1, myStrB);
                if (myStrB != null && myStrB.ToString() != "" && myStrB.ToString().IndexOf("|") >= 0)
                {
                    //读取成功
                    string[] myStringList = myStrB.ToString().Split('|');
                    if (myStringList != null && myStringList.Length > 0)
                    {
                        ICard = myStringList[1];
                        IName = myStringList[4];
                        CodeState = true;
                        ErrDesc = "";                    
                    }
                    else
                    {
                        CodeState = false;
                        ErrDesc = myStrB.ToString();
                        return "";
                    }
                }
                else
                {
                        CodeState = false;
                        ErrDesc = myStrB.ToString();
                        return "";
                }
    
                return ReStr;
            }
    
        }

    三,调用测试。

    StringBuilder myStrB = new StringBuilder(2048);
                PT.BLL.DLL.SSCard.iReadCardBas(1, myStrB);
                if (myStrB != null && myStrB.ToString() != "" && myStrB.ToString().IndexOf("|") >= 0)
                {
                    textBox1.Text = "
    " + myStrB.ToString();
                }

     

    读卡成功。

    四,示例源码:

     德卡Z90读卡器CSharp示例程序.rar

    德卡Z90读卡器CSharp示例程序源码.rar

     

  • 相关阅读:
    DotNetCore + Sonar + Coverlet 代码覆盖率检查
    Docker + Sonarqube 环境搭建
    使用cmd进行tfs的签入
    Swashbuckle.AspNetCore(v2.5.0)使用小记
    Ocelot(v7.0.6)使用小记
    layui.formSelects.render(); 需要先执行
    .net core编译时设置不自动生成“netcoreapp3.0”目录
    C# List引用类型的克隆
    HTTP Error 502.5
    GPS服务端(上)-Socket服务端(golang)
  • 原文地址:https://www.cnblogs.com/yisheng163/p/9000910.html
Copyright © 2011-2022 走看看