一个通用的二代身份证阅读器ActiveX控件

IDCardReader核心源代码出售:

sell
价格:贰佰圆人民币
微信:splashcn

程序功能说明:

使用C#语言实现的一个通用的二代身份证阅读器ActiveX控件,已在银安科技、神思电子、华视电子的USB接口的阅读器上完美通过测试,并在代码质量、易用性和稳定性方面超越目前所有厂商的官方版本。欢迎大家在项目里免费使用。

演示程序下载:

IDCardReaderActiveX.zip(提取码:oszj)

演示程序界面:

使用接口说明

/* ----------------------------------------------------------
 * 文件名称:IDCardReaderActiveX.cs
 * 
 * 作者:秦建辉
 * 
 * 微信:splashcn
 * 
 * 博客:http://www.firstsolver.com/wordpress/
 * 
 * 开发环境:
 *      Visual Studio V2017
 *      .NET Framework 2.0
 *      
 * 版本历史:
 *      V1.2    2019年06月27日
 *              接口中增加身份证信息文件存放目录设置
 * 
 *      V1.1    2019年05月05日
 *              优化同步读卡接口
 *              
 *      V1.0    2019年04月30日
 *              二代身份证阅读器ActiveX控件
 *              
 * 参考资料:
 *      http://www.pinvoke.net/default.aspx/Interfaces/IObjectSafety.html
 *      
 * 注册命令
 *      %WINDIR%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe IDCardReaderActiveX.dll /codebase
 * 卸载命令
 *      %WINDIR%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe IDCardReaderActiveX.dll /u
 *      
 * 使用说明:
 *      Initialize方法参数说明
 *          0:银安科技(通用) 1:华视电子 2:神思电子
 *      Start方法参数说明
 *          0:不需要 1:照片 2:指纹 3:照片+指纹
 *      注意:目前没提供指纹数据
------------------------------------------------------------ */
namespace Com.FirstSolver.CR
{
    [ComSourceInterfaces(typeof(IComEvents))]
    [Guid("81D112C0-EB3D-4B62-80A6-BF3F62E9F74B"), ProgId("Com.FirstSolver.CR.IDCardReaderActiveX"), ComVisible(true)]
    public class IDCardReaderActiveX : IObjectSafety, IDisposable
    {
        /// <summary>
        /// 软件作者
        /// </summary>
        public string Author;

        /// <summary>
        /// 软件版本
        /// </summary>
        public string Version;

        /// <summary>
        /// 公司名称
        /// </summary>
        public string Company;

        /// <summary>
        /// 错误信息,方法执行后将设置此参数
        /// </summary>
        public string ErrorMessage;

        /// <summary>
        /// 读卡结束事件处理器委托声明
        /// </summary>
        /// <param name="id">身份证卡号</param>
        /// <param name="data">身份证详细信息,JSON字符串</param>
        public delegate void ReadCardCompletedHandler(string id, string data);

        /// <summary>
        /// 读卡结束事件处理器
        /// </summary>
        public event ReadCardCompletedHandler OnReadCardCompleted;

        /// <summary>
        /// 构造函数
        /// </summary>
        public IDCardReaderActiveX();

        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="model">二代身份证阅读器厂家编号 0:银安科技(通用) 1:华视电子 2:神思电子</param>
        /// <param name="sync">是否同步读卡操作。如果同步则每次读卡前需调用ReadCard方法</param>
        /// <param name="folder">一个有读写权限的目录,用于身份证信息文件存放。如果为null或者空串,则默认我的文档\Springwheat\IDCardReader\目录</param>
        /// <returns>
        ///     true:成功
        ///     false:失败
        /// </returns>
        public bool Initialize(int model = 0, bool sync = false, string folder = null);

        /// <summary>
        /// 释放资源
        /// </summary>
        public void Dispose();

        /// <summary>
        /// 释放托管资源和非托管资源,等同于Dispose()
        /// </summary>
        public void Close();

        /// <summary>
        /// 开启身份证读取服务
        /// </summary>
        /// <param name="wanted">
        ///     需要的生物特征数据(0:不需要 1:照片 2:指纹 3:照片+指纹)
        /// </param>
        /// <returns>
        ///     0:读卡服务启动成功
        ///     1:读卡服务已经启动
        ///     -1:读卡服务启动失败
        /// </returns>
        /// <remarks>注意:该版本未提供指纹数据</remarks>
        public int Start(int wanted = 1);

        /// <summary>
        /// 停止读卡
        /// </summary>
        public void Stop();

        /// <summary>
        /// 同步状态下开启读卡操作,非同步状态下无需调用此方法
        /// </summary>
        public void ReadCard();

        /// <summary>
        /// 是否处于读卡状态
        /// </summary>
        public bool IsAlive;

        /// <summary>
        /// 读卡器USB端口号
        /// </summary>
        public int Port;

        #region 身份证数据
        /// <summary>
        /// 姓名,最大字符个数=15
        /// </summary>
        public string Name;

        /// <summary>
        /// 性别,1-男 2-女,最大字符个数=1
        /// </summary>
        public string Sex;

        /// <summary>
        /// 身份证号码,最大字符个数=18
        /// </summary>
        public string CardNo;

        /// <summary>
        /// 民族编码,最大字符个数=2
        /// </summary>
        public string NationCode;

        /// <summary>
        /// 民族名称
        /// </summary>
        public string Nation;

        /// <summary>
        /// 出生日期(yyyy年MM月dd日),最大字符个数=11
        /// </summary>
        public string Birth;

        /// <summary>
        /// 住址,最大字符个数=35
        /// </summary>
        public string Address;

        /// <summary>
        /// 签发机关,最大字符个数=15
        /// </summary>
        public string Police;

        /// <summary>
        /// 有效期限开始日期(yyyy.MM.dd),最大字符个数=10
        /// </summary>
        public string ActivityFrom;

        /// <summary>
        /// 有效期限截止日期(yyyy.MM.dd),最大字符个数=10
        /// </summary>
        public string ActivityTo;

        /// <summary>
        /// 最新住址,最大字符个数=35
        /// </summary>
        public string NewAddress;

        /// <summary>
        /// 照片数据(Base64编码)
        /// </summary>
        public string Photo;
        #endregion
    }
}

Comments are closed.