新中新身份证读卡器接口API使用手册
- 格式:doc
- 大小:58.50 KB
- 文档页数:8
居民身份证验证读卡器接口API使用手册哈尔滨新中新电子股份有限公司2004年12月1.端口类APIint Syn_OpenPort(int iPortID);说明:打开串口/USB口参数:iPortID[in]整数,表示端口号。
1-16(十进制)为串口,1001-1016(十进制)为USB 口,缺省的一个USB设备端口号是1001。
返回值:成功返回0,错误返回见6。
int Syn_ClosePort(int iPortID);说明:关闭串口/USB口参数:iPortID[in]整数,表示端口号。
返回值:成功返回0,错误返回见6。
int Syn_GetCOMBaud(int iComID,unsignedint*puiBaud Rate);说明:查看串口的波特率参数:iPort[in]整数,表示端口号。
此处端口号必须为1-16,表示串口,参见。
puiBaudRate[out]无符号整数指针,指向普通串口当前波特率,默认情况下为115200。
返回值:成功返回0,错误返回见6。
int Syn_SetCOMBaud(int iComID,unsignedint uiCurrBaud,unsignedint uiSetBaud);说明:设置串口的波特率参数:iPort[in]整数,表示端口号。
此处端口号必须为1-16,表示串口。
uiCurrBaud[in]无符号整数,调用该API前已设置的业务终端与SAM_V通信的波特率(SAM_V出厂时默认,业务终端与SAM_V通信的波特率为115200)。
业务终端以该波特率与SAM_V通信,发出设置SAM_V新波特率的命令。
uiCurrBaud只能为下列数值之一:115200,57600,38400,19200,9600.如果uiCurrBaud数值不是这些值之一,函数返回0x21;如果已设置的波特率与uiCurrBaud不一致,则函数返回非零,表示不能设置,调用API不成功。
新中新身份证读卡器接口API使用手册12020年4月19日居民身份证验证读卡器接口API使用手册哈尔滨新中新电子股份有限公司12月2 2020年4月19日1.端口类APIint Syn_OpenPort(int iPortID);说明: 打开串口/USB口参数:iPortID [in] 整数,表示端口号。
1-16(十进制)为串口,1001-1016(十进制)为USB口,缺省的一个USB设备端口号是1001。
返回值:成功返回0,错误返回见6。
int Syn_ClosePort(int iPortID);说明: 关闭串口/USB口参数:iPortID [in] 整数,表示端口号。
返回值:成功返回0,错误返回见6。
int Syn_GetCOMBaud(int iComID,unsigned int *puiBaudRate);说明: 查看串口的波特率参数:iPort [in] 整数,表示端口号。
此处端口号必须为1-16,表示串口,参见7.1。
puiBaudRate [out] 无符号整数指针,指向32020年4月19日普通串口当前波特率, 默认情况下为 115200。
返回值:成功返回0,错误返回见6。
int Syn_SetCOMBaud(int iComID,unsigned int uiCurrBaud,unsigned int uiSetBaud);说明: 设置串口的波特率参数:iPort [in] 整数,表示端口号。
此处端口号必须为1-16,表示串口。
uiCurrBaud [in] 无符号整数,调用该API前已设置的业务终端与SAM_V通信的波特率(SAM_V出厂时默认,业务终端与SAM_V通信的波特率为115200)。
业务终端以该波特率与SAM_V通信,发出设置SAM_V新波特率的命令。
uiCurrBaud只能为下列数值之一:115200,57600,38400,19200,9600.如果uiCurrBaud数值不是这些值之一,函数返回0x21;如果已设置的波特率与uiCurrBaud不一致, 则函数返回非零,表示不能设置,调用API不成功。
使用说明市博纳思信息技术二零一四年二月一简介1.1 产品简介感您选择新中新二代阅读器关于识别器,随着全国婚姻登记系统的渐渐普及,为了方便我们各地政府在登记业务中更方便,更节省时间,紫光公司为用户开发了新中新二代识别器,帮助用户更快速更便捷的办理业务。
二功能2.1 主要功能二代识别器的主要作用是,代替人工录入婚姻登记中得各种信息,比如:,等信息,安装好驱动程序,插入硬件即可使用,操作非常的简单。
三安装与使用3.1 安装说明3.1.1 安装驱动程序将产品配件中的光盘插入电脑的光驱中然后打开“我的电脑”找到“可移动存储的设备”下的已识别出来的光盘名称像“110921_***(G:)”双击名称打开盘符如下图:Setup.exe的一个安装文件,双击图标后,如下图:直接点击“下一步”需要修改安装目录时,点击“浏览”选择安装程序的安装目录位置即可系统默认为C盘,点击“下一步”如下图:需要修改安装目录文件夹,点击“浏览”修改即可系统默认为婚姻录入辅助系统,点击“下一步”如下图:为了方便应用,可以选中“创建桌面快捷方式”前方的系统将在桌面创建快捷方式,点击“下一步”如下图:如需要修改图中显示的信息,点击“上一步”进行修改直接点击“安装”程序自动进行安装,安装结束,显示如下图:安装完成系统提示“请确保读卡器连接到正确的USB接口”,并进行程序注册系统默认为选中状态,点击“完成”就完成了驱动程序的安装(注意:如果安装完驱动程序,不想立刻注册,请把复选框中的绿色小勾去掉,点击完成即可。
)安装完成后,桌面上会出现一个“紫光软件全国婚姻登记系统录入辅助系统”的图标如下图:3.1.2 硬件注册完成驱动程序安装后,系统会提示,如下图:看到提示框中的提示,我们需要把二代识别器,插入到电脑的USB接口,确定连接成功后,点击“确定”如下图:输入购买产品时的注册码,点击“注册”即可完成产品注册。
注册成功后,系统提示,如下图:注册成功后,我们即可使用二代读卡器。
竭诚为您提供优质文档/双击可除二代身份证读卡器接口规范篇一:二代身份证读卡器安装及使用说明二代身份证读卡器安装及使用说明一.说明为方便各旅馆单位更快捷的录入人员信息,现本系统提供第二代居民身份证验证(阅读)设备。
将第二代居民身份证置于机具感应区,与之相连的计算机可即时显示该证件持有人的彩色照片及文字信息,既有利于方便、快捷的录入人员信息,又保证了录入信息的准确性和安全性。
二.安装1.机具连接本系统当前所使用的机具使用usb通讯方式,连接时请必须按照如下顺序连接:1.首先将usb插头插入计算机的usb插口。
2.将mini-b接口插入二代身份证阅读机具插口。
当机具连接后,如果机具上的电源指示灯变为红色,工作指示灯变为绿色,故障灯不亮,表示机具连接成功;如果机具上的电源指示灯变为红色,故障指示灯红灯闪烁或长亮,请确认是否为电源问题,如计算机电源供电不足等。
2.设备驱动安装当机具初次连接至计算机时,需要按照机具的驱动程序。
请按如下顺序操作:1.从旅馆业系统的“从业人员信息登记”或“国内旅客入住登记”页面下载驱动程序usbdriver.exe。
bdriver.exe为自解压格式文件,打开后请指定一个目标文件夹,而后点击“安装”。
3.当机具初次连接至计算机时,将弹出如下页面:4.点击“下一步”,选择第一项“搜索适于我的设备的驱动程序”5.点击“下一步”,选择“指定一个位置”6.点击“下一步”,在弹出的对话框中点击“浏览”按钮,而后在查找文件对话框中选择驱动程序解压后所在目录,并根据当前计算机的系统选择对应目录下的usbdiv.inf文件。
7.选中驱动文件后,点击查找文件框中的“打开”按钮,点击“找到新的硬件设备向导”中的“确定”按钮,点击“下一步”。
8.点击“下一步”,此时即完成驱动程序的安装。
三.使用当安装完驱动程序后,连接好机具,进入旅馆业系统的从业人员信息登记、修改,国内旅客入住登记、修改,此时可以看到程序页面右上角的提示“2代身份证机具连接成功”,同时机具为绿色工作指示灯闪烁,进入寻卡工作状态。
新中新二代身份证读卡器安装调试和使用方法1.二代身份证读卡器的连接和驱动安装①安装身份证读卡器的USB驱动②安装新中新二代身份证验证软件,验证软件装好后会自动在桌面生成一个新中新二代身份证验证系统的快捷方式二代身份证读卡器的连接和驱动安装方法详见随机附送的安装使用说明书,驱动程序和新中新二代身份证验证软件的安装程序在随机附送的光盘里面。
2.二代身份证读卡器的调试方法:①打开两癌筛查系统的两癌筛查健康档案页面;②通过桌面上的快捷方式打开已经安装好的“新中新二代身份证验证系统”如图所示打开新中新二代身份证验证系统后,点击上图中的“录入配置(I)”按钮,弹出如下对话框在该界面进行二代证信息的录入配置:录入方式选择“自动录入”录入窗体选择时先点击“变更”按钮,点击之后会弹出一个提示,点击“确定”,然后将光标放在录入窗体文本框内,再在下面的任务栏中点击①打开的两癌筛查系统,那么录入窗体的文本框中会自动填充进去“两癌筛查系统 - [健康检查档案]”录入信息位置的数据就按照图片的内容去设置,项目名称先选择“姓名”,项目位置选择“1”,点击“增加”按钮,姓名就会填充到录入信息中去,项目名称再选择“身份证号”,项目位置选择“8”,点击“增加”按钮,身份证号就会填充到录入信息中去。
最后点击结束设置;二代身份证读卡器的调试完成。
3.二代身份证读卡器的使用方法使用二代身份证读卡器之前要先打开桌面上的“新中新二代身份证验证系统”并且使用读卡器读取身份证信息时,这个验证系统的软件需一直开启,可以将之最小化①打开两癌筛查系统的两癌筛查健康档案页面,将光标放在“姓名“文本框内②将身份证放在读卡器上,“嘀”的一声响后,读卡器会将姓名和身份证号码读入到相应的文本框中,然后点击一下年龄的文本框,年龄也会自动计算出来。
注意:读卡器读取身份证信息时,当将身份证号信息填充进去后,请迅速将身份证从读卡器上移开,否则读卡器会连续重复的读取身份证的信息,导致信息的错误。
身份证阅读器智能接口版SDK使用手册V1.10公安部第一研究所证件技术事业部2005年12月身份证阅读器智能接口版SDK使用手册版本1.1.0出版日期2005年12月著作权注意事项本书版权为公安部第一研究所证件技术事业部所有。
未经公安部第一研究所证件技术事业部书面同意,任何公司、单位或个人,不得用任何手段复制本手册的部分或全部内容。
对印刷错误的更正,所述信息谬误的勘误,以及产品的改进,均由公安部第一研究所证件技术事业部随时作出解释,恕不预先通知,修正内容将编入再版说明书中。
商标所有在本手册使用的商标为该商标所有人的资产。
联系方式地址:北京海淀区首体南路1号邮编:100044电话:(销售),(技术支持)e-mail:一、概述本手册是操作身份证阅读器应用函数的定义格式、调用方法和返回值的说明。
在使用前,请确认授权文件termb.lic是否在你的PC机C:\根目录下。
二、定义应用函数开发包含下列文件:termb.h API函数原型定义termb.lib API函数的VC开发包termb.dll API函数的动态联接库sdtapi.dll termb.dll需要的后台库(和termb.dll一起放在当前目录或系统目录下)WltRS.dll termb.dll需要的后台库(和termb.dll一起放在当前目录或系统目录下) 适用操作系统:Windows NT: 需要NT 3.1版或以后版本Windows: 需要 Windows 98、Windows 2000或以后版本适用开发语言:Visual C++ 5.0 及以后版本Visual Basic 5.0 及以后版本DEPHI 3.0 及以后版本PowerBuilder 6.0 及以后版本三、函数列表int InitComm(int Port) 初始化串口;int InitCommExt() 初始化串口(扩展);int CloseComm() 关闭串口;int Authenticate() 卡认证;int Read_Content(int Active) 读卡操作,信息文件存储在应用程序当前目录下;int Read_Content_Path(char* cPath,int Active) 读卡操作,信息文件存储在指定目录下。
新中新身份证读卡器接口API使用手册新中新身份证读卡器接口API使用手册12020年4月19日居民身份证验证读卡器接口API使用手册哈尔滨新中新电子股份有限公司12月2 2020年4月19日1.端口类APIint Syn_OpenPort(int iPortID);说明: 打开串口/USB口参数:iPortID [in] 整数,表示端口号。
1-16(十进制)为串口,1001-1016(十进制)为USB口,缺省的一个USB设备端口号是1001。
返回值:成功返回0,错误返回见6。
int Syn_ClosePort(int iPortID);说明: 关闭串口/USB口参数:iPortID [in] 整数,表示端口号。
返回值:成功返回0,错误返回见6。
int Syn_GetCOMBaud(int iComID,unsigned int *puiBaudRate);说明: 查看串口的波特率参数:iPort [in] 整数,表示端口号。
此处端口号必须为1-16,表示串口,参见7.1。
puiBaudRate [out] 无符号整数指针,指向32020年4月19日普通串口当前波特率, 默认情况下为 115200。
返回值:成功返回0,错误返回见6。
int Syn_SetCOMBaud(int iComID,unsigned int uiCurrBaud,unsigned int uiSetBaud);说明: 设置串口的波特率参数:iPort [in] 整数,表示端口号。
此处端口号必须为1-16,表示串口。
uiCurrBaud [in] 无符号整数,调用该API前已设置的业务终端与SAM_V通信的波特率(SAM_V出厂时默认,业务终端与SAM_V通信的波特率为115200)。
业务终端以该波特率与SAM_V通信,发出设置SAM_V新波特率的命令。
uiCurrBaud只能为下列数值之一:115200,57600,38400,19200,9600.如果uiCurrBaud数值不是这些值之一,函数返回0x21;如果已设置的波特率与uiCurrBaud不一致, 则函数返回非零,表示不能设置,调用API不成功。
二代身份证读卡器二次开发说明编写目的为了在自行开发的项目中使用“新中新二代身份证读卡器”(以下简称读卡器)获得的二代身份证信息,需要对现有读卡器程序进行二次开发。
准备SDK: 新中新二代证SDK开发包.rar示例代码: “新中新二代证SDK开发包.rar\DLL\测试程序\C#”读卡器型号: DKQ-116D版本号:DU使用方法由于开发包中已提供了相对完整的示例代码,因此本文直接以示例代码中的例子进行讲解。
一、开发前先运行开发包中”\DLL\DLLTestSDK.exe”或者“新中新二代身份证验证系统”以保证读卡器硬件连接及驱动都已正确安装. 或者单独安装驱动程序(一)、“新中新二代身份证验证系统”1. 运行程序2. 在读卡器上扫描二代身份证,在界面上查看是否显示身份证信息(二)、“DLLTestSDK.exe”1. 运行程序2. 点击“自动寻找读卡器”,查看列表框提示信息及”端口号”内容是否被改变3. 点击”使用结构体返回信息”,查看列表框中是否已输出身份证信息.二、将” sdtapi.dll”、” SynIDCardAPI.dll”、” WltRS.dll” 3个文件复制到与程序运行相同目录三、参考示例代码,在自己开发的类中定义结构体”IDCardData”,并声明"SynIDCardAPI.dll"的方法.[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]public string Nation; //名族[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)]public string Born; //出生日期[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 72)]public string Address; //住址[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 38)]public string IDCardNo; //身份证号[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]public string GrantDept; //发证机关[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)]public string UserLifeBegin; // 有效开始日期[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)]public string UserLifeEnd; // 有效截止日期[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 38)]public string reserved; // 保留[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 255)]public string PhotoFileName; // 照片路径}/************************端口类API *************************/[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetMaxRFByte", CharSet =CharSet.Ansi)]public static extern int Syn_SetMaxRFByte(int iPort, byte ucByte, int iIfOpen);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_GetCOMBaud", CharSet = CharSet.Ansi)] public static extern int Syn_GetCOMBaud(int iPort, ref uint puiBaudRate);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetCOMBaud", CharSet = CharSet.Ansi)] public static extern int Syn_SetCOMBaud(int iPort, uint uiCurrBaud, uint uiSetBaud); [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_OpenPort", CharSet = CharSet.Ansi)] public static extern int Syn_OpenPort(int iPort);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ClosePort", CharSet = CharSet.Ansi)] public static extern int Syn_ClosePort(int iPort);/**************************SAM类函数 **************************/[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ResetSAM", CharSet = CharSet.Ansi)] public static extern int Syn_ResetSAM(int iPort, int iIfOpen);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_GetSAMStatus", CharSet =CharSet.Ansi)]public static extern int Syn_GetSAMStatus(int iPort, int iIfOpen);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_GetSAMID", CharSet = CharSet.Ansi)] public static extern int Syn_GetSAMID(int iPort, ref byte pucSAMID, int iIfOpen);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_GetSAMIDToStr", CharSet = CharSet.Ansi)]public static extern int Syn_GetSAMIDToStr(int iPort, ref byte pcSAMID, int iIfOpen);/*************************身份证卡类函数 ***************************/[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_StartFindIDCard", CharSet = CharSet.Ansi)]public static extern int Syn_StartFindIDCard(int iPort, ref byte pucIIN, int iIfOpen); [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SelectIDCard", CharSet =CharSet.Ansi)]public static extern int Syn_SelectIDCard(int iPort, ref byte pucSN, int iIfOpen); [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadBaseMsg", CharSet = CharSet.Ansi)] public static extern int Syn_ReadBaseMsg(int iPort, ref byte pucCHMsg, ref uint puiCHMsgLen, ref byte pucPHMsg, ref uint puiPHMsgLen, int iIfOpen);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadIINSNDN", CharSet = CharSet.Ansi)] public static extern int Syn_ReadIINSNDN(int iPort, ref byte pucIINSNDN, int iIfOpen); [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadBaseMsgToFile", CharSet = CharSet.Ansi)]public static extern int Syn_ReadBaseMsgToFile(int iPort, ref byte pcCHMsgFileName, ref uint puiCHMsgFileLen, ref byte pcPHMsgFileName, ref uint puiPHMsgFileLen, int iIfOpen);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadIINSNDNToASCII", CharSet = CharSet.Ansi)]public static extern int Syn_ReadIINSNDNToASCII(int iPort, ref byte pucIINSNDN, int iIfOpen);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadNewAppMsg", CharSet = CharSet.Ansi)]public static extern int Syn_ReadNewAppMsg(int iPort, ref byte pucAppMsg ,ref uint puiAppMsgLen , int iIfOpen);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_GetBmp", CharSet = CharSet.Ansi)] public static extern int Syn_GetBmp(int iPort, ref byte Wlt_File);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadMsg", CharSet = CharSet.Ansi)] public static extern int Syn_ReadMsg(int iPortID, int iIfOpen, ref IDCardData pIDCardData);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_FindReader", CharSet = CharSet.Ansi)] public static extern int Syn_FindReader();/***********************设置附加功能函数 ************************/[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetPhotoPath", CharSet =CharSet.Ansi)]public static extern int Syn_SetPhotoPath(int iOption, ref byte cPhotoPath);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetPhotoType", CharSet =CharSet.Ansi)]public static extern int Syn_SetPhotoType(int iType);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetPhotoName", CharSet =CharSet.Ansi)]public static extern int Syn_SetPhotoName(int iType);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetSexType", CharSet = CharSet.Ansi)] public static extern int Syn_SetSexType(int iType);[DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetNationType", CharSet =四、调用” Syn_FindReader()”获得读卡器端口号五、如需保存照片调用”Syn_SetPhotoPath”设置照片保存位置,调用”Syn_SetPhotoType()”设置保存格式,调用” Syn_SetPhotoName()”设置文件名规范.六、读取信息:步骤: 打开端口->设置通讯字节数->读取卡信息->指向读到的第一张卡信息->将卡信息填入结构体-> 读取结构体信息参考示例代码:private void button17_Click(object sender, EventArgs e){IDCardData CardMsg = new IDCardData();int nRet,nPort;string stmp;byte[] pucIIN = new byte[4];byte[] pucSN = new byte[8];nPort = Convert.ToInt32(textBox1.Text);if (Syn_OpenPort(nPort) == 0){if (Syn_SetMaxRFByte(nPort,80,0)==0){nRet = Syn_StartFindIDCard(nPort, ref pucIIN[0], 0);nRet = Syn_SelectIDCard(nPort,ref pucSN[0], 0);nRet = Syn_ReadMsg(nPort, 0, ref CardMsg);if (nRet == 0){stmp = Convert.ToString(System.DateTime.Now) + " 姓名:" +;listBox1.Items.Add(stmp);stmp = Convert.ToString(System.DateTime.Now) + " 性别:" +CardMsg.Sex;listBox1.Items.Add(stmp);stmp = Convert.ToString(System.DateTime.Now) + " 民族:" +CardMsg.Nation;listBox1.Items.Add(stmp);stmp = Convert.ToString(System.DateTime.Now) + " 出生日期:" + CardMsg.Born;listBox1.Items.Add(stmp);stmp = Convert.ToString(System.DateTime.Now) + " 地址:" + CardMsg.Address;listBox1.Items.Add(stmp);stmp = Convert.ToString(System.DateTime.Now) + " 身份证号:" + CardMsg.IDCardNo;listBox1.Items.Add(stmp);stmp = Convert.ToString(System.DateTime.Now) + " 发证机关:" + CardMsg.GrantDept;listBox1.Items.Add(stmp);stmp = Convert.ToString(System.DateTime.Now) + " 有效期开始:" + erLifeBegin;listBox1.Items.Add(stmp);stmp = Convert.ToString(System.DateTime.Now) + " 有效期结束:" + erLifeEnd;listBox1.Items.Add(stmp);stmp = Convert.ToString(System.DateTime.Now) + " 照片文件名:" + CardMsg.PhotoFileName;listBox1.Items.Add(stmp);}else{stmp = Convert.ToString(System.DateTime.Now) + " 读取身份证信息错误";listBox1.Items.Add(stmp);}}}else{stmp = Convert.ToString(System.DateTime.Now) + " 打开端口失败";listBox1.Items.Add(stmp);}}。
身份证读卡器操作使用说明
一、适用环境
1、硬件设备:身份证读卡器一台
2、应用浏览器:IE浏览器(8.0-10版本)或360浏览器(兼容模式)
二、身份证读卡器使用流程
1、第一步,连接设备:用设备USB数据线连接设备与电脑,打开设备电源开关,电源指示灯亮红色,状态指示灯亮绿色正常。
2、第二步,安装身份证读卡器控件
➢点击【优抚认证登记】菜单中国家机关工作人员登记,进入信息采集页面,点击
➢点击,
➢系统提示需下载执行安装身份证读卡控件
➢点击下载执行安装,系统提示保存读卡器控件
➢双击控件、安装程序。
3、第三步,安装完成后必须重启浏览器,身份证读卡器控件才能应用。
三、身份证信息读取成功提示
将身份证放在读卡器上,点识别按钮,读卡器界面如图
读取成功,姓名、性别、民族、身份证号码、出生日期、年龄、起止日期、签发机关、身份证地址、身份证头像、身份证正反面照片信息全部自动上传系统。
居民身份证验证读卡器接口API使用手册哈尔滨新中新电子股份有限公司2004年12月1.端口类APIint Syn_OpenPort(int iPortID);说明: 打开串口/USB口参数:iPortID [in] 整数,表示端口号。
1-16(十进制)为串口,1001-1016(十进制)为USB口,缺省的一个USB设备端口号是1001。
返回值:成功返回0,错误返回见6。
int Syn_ClosePort(int iPortID);说明:关闭串口/USB口参数:iPortID [in] 整数,表示端口号。
返回值:成功返回0,错误返回见6。
int Syn_GetCOMBaud(int iComID,unsigned int *puiBaud Rate);说明:查看串口的波特率参数:iPort [in] 整数,表示端口号。
此处端口号必须为1-16,表示串口,参见7.1。
puiBaudRate [out] 无符号整数指针,指向普通串口当前波特率, 默认情况下为115200。
返回值:成功返回0,错误返回见6。
int Syn_SetCOMBaud(int iComID,unsigned int uiCurrBaud,unsigned int uiSetBaud);说明:设置串口的波特率参数:iPort [in] 整数,表示端口号。
此处端口号必须为1-16,表示串口。
uiCurrBaud [in] 无符号整数,调用该API前已设置的业务终端与SAM_V通信的波特率(SAM_V出厂时默认,业务终端与SAM_V通信的波特率为115200)。
业务终端以该波特率与SAM_V通信,发出设置SAM_V新波特率的命令。
uiCurrBaud只能为下列数值之一:115200,57600,38400,19200,9600.如果uiCurrBaud数值不是这些值之一,函数返回0x21;如果已设置的波特率与uiCurrBaud不一致, 则函数返回非零,表示不能设置,调用API不成功。
uiSetBaud [in] 符号整数,将要设置的SAM_V与业务终端通信波特率。
uiSetBaud只能取下列值之一:115200,57600,38400,19200,9600,如果输入uiSetBaud参数不是这些数值之一,函数返回非零,设置不成功,保持原来的波特率不变。
返回值:成功返回0,错误返回见6。
2. SAM类APIint Syn_GetSAMStatus(int iPortID,int iIfOpen);说明: 对SAM_V进行状态检测参数:iPort [in] 整数,表示端口号。
参见7.1。
iIfOpen [in] 整数,参见7.2。
返回值:成功返回0,错误返回见6。
int Syn_ResetSAM(int iPortID,int iIfOpen);说明:对SAM_V复位参数:iPort [in] 整数,表示端口号。
参见7.1。
iIfOpen [in] 整数,参见7.2。
返回值:成功返回0,错误返回见6。
int Syn_GetSAMID(int iPortID,unsigned char *pucSAMID,int iIfOpen);说明:读取SAM_V的编号(十六进制)参数:iPort [in] 整数,表示端口号。
参见7.1。
pucSAMID [out] 无符号字符串指针,SAM_V编号,16字节。
iIfOpen [in] 整数,参见7.2。
返回值:成功返回0,错误返回见6。
int Syn_GetSAMIDToStr(int iPortID,char *pcSAMID,int iIfOpen);说明:读取SAM_V的编号(字符串格式)参数:iPort [in] 整数,表示端口号。
参见7.1。
pcSAMID [out] 字符串指针,SAM_V编号。
iIfOpen [in] 整数,参见7.2。
返回值:成功返回0,错误返回见6。
3. 身份证卡类APIint Syn_StartFindIDCard(int iPortID,unsigned char *pucManaInfo,int iIfOpen); 说明:开始找卡参数:iPort [in] 整数,表示端口号。
参见7.1。
pucManaInfo [out] 无符号字符指针,证/卡芯片管理号,4个字节。
iIfOpen [in] 整数,参见7.2。
返回值:成功返回0,错误返回见6。
int Syn_SelectIDCard(int iPortID,unsigned char *pucManaMsg,int iIfOpen); 说明:选卡参数:iPort [in] 整数,表示端口号。
参见7.1。
pucManaMsg [out] 无符号字符指针,证/卡芯片序列号,8个字节。
iIfOpen [in] 整数,参见7.2。
返回值:成功返回0,错误返回见6。
int Syn_ReadMsg(int iPortID,int iIfOpen,IDCardData *pIDCardData);说明:读取证/卡信息参数:iPort [in] 整数,表示端口号。
参见7.1。
iIfOpen [in] 整数,参见7.2。
pIDCardData [out] IDCardData类型读出的数据,参见5。
返回值:成功返回0,错误返回见6。
4. 附加类APIint Syn_SendSound(int iCmdNo);说明:发送语音参数:iCmdNo [in] 声音编号返回值:成功返回0,错误返回见6。
void Syn_DelPhotoFile();说明:删除临时照片文件参数:无返回值:成功返回0,错误返回见6。
5. 结构体声明typedef struct tagIDCardData{char Name[32]; //姓名char Sex[4]; //性别char Nation[6]; //名族char Born[18]; //出生日期char Address[72]; //住址char IDCardNo[38]; //身份证号char GrantDept[32]; //发证机关char UserLifeBegin[18]; //有效开始日期char UserLifeEnd[18]; //有效截止日期char reserved[38]; //保留char PhotoFileName[255]; //照片路径}IDCardData;6.函数返回值0 操作成功或相片解码解码正确-1 端口打开失败/端口尚未打开/端口号不合法-2 证/卡中此项无内容-3 PC接收超时,在规定的时间内未接收到规定长度的数据-4 数据传输错误-5 该SAM_V串口不可用,只在SDT_GetCOMBaud时才有可能返回-6 接收业务终端数据的校验和错-7 接收业务终端数据的长度错-8 接收业务终端的命令错误,包括命令中的各种数值或逻辑搭配错误-9 越权操作-10 无法识别的错误-11 寻找证/卡失败-12 选取证/卡失败-13 调用sdtapi.dll错误-14 相片解码错误-15 授权文件不存在-16 设备连接错误7.注意7.1系统支持的串行端口号:1-16,USB端口号:1001-10167.2 iIfOpen [in] 整数,0表示不在该函数内部打开和关闭串口,此时确保之前调用了Syn_OpenPort来打开端口,并且在不需要与端口通信时,调用Syn_ClosePort关闭端口;非0表示在API函数内部包含了打开端口和关闭端口函数,之前不需要调用Syn_OpenPort,也不用再调用Syn_ClosePort。
7.3 普通开发中只使用“端口类API”与“身份证卡类API”与“附加类API”就能满足开发需要,使用方法见第10部分实例。
7.4 在使用Syn_SendSound函数时请先用Syn_ClosePort函数关闭打开的端口。
7.5 SDK包包含文件Syn_IDCardRead.dll、Syn_IDCardRead.lib、Syn_IDCardRead.h、sdtapi.dll、WltRS.dll8.声音命令暂时未定0.读身份证成功9.Syn_IDCardRead.h头文件:#ifdef _WIN32#define STDCALL __stdcall#else#define STDCALL#endif#ifndef SDTAPI_#define SDTAPI_#ifdef __cplusplusextern"C"{#endif#pragma pack(1)typedef struct tagIDCardData{char Name[32];char Sex[4];char Nation[6];char Born[18];char Address[72];char IDCardNo[38];char GrantDept[32];char UserLifeBegin[18];char UserLifeEnd[18];char reserved[38];char PhotoFileName[255];}IDCardData;#pragma pack()/************************端口类API *************************/int STDCALL Syn_GetCOMBaud(int iComID,unsigned int *puiBaud);int STDCALL Syn_SetCOMBaud(int iComID,unsigned int uiCurrBaud,unsigned int uiSetBaud); int STDCALL Syn_OpenPort(int iPortID);int STDCALL Syn_ClosePort(int iPortID);/************************ SAM类API *************************/int STDCALL Syn_GetSAMStatus(int iPortID,int iIfOpen);int STDCALL Syn_ResetSAM(int iPortID,int iIfOpen);int STDCALL Syn_GetSAMID(int iPortID,unsigned char *pucSAMID,int iIfOpen);int STDCALL Syn_GetSAMIDToStr(int iPortID,char *pcSAMID,int iIfOpen);/********************身份证卡类API *************************/int STDCALL Syn_StartFindIDCard(int iPortID,unsigned char *pucManaInfo,int iIfOpen);int STDCALL Syn_SelectIDCard(int iPortID,unsigned char *pucManaMsg,int iIfOpen);int STDCALL Syn_ReadMsg(int iPortID,int iIfOpen,IDCardData *pIDCardData);/********************附加类API *****************************/int STDCALL Syn_SendSound(int iCmdNo);void STDCALL Syn_DelPhotoFile();#ifdef __cplusplus}#endif#endif}10.调用实例:10.1 vc6.0调试通过void CSampleDlg::OnButton1(){// TODO: Add your control notification handler code here int ifOpen;int iPort;int iRet;unsigned char pucIIN[4];unsigned char pucSN[8];IDCardData CardMsg;ifOpen=0; //是否需要打开串口iPort=1;iRet=Syn_OpenPort(iPort);if (iRet==0){iRet=Syn_StartFindIDCard(iPort,pucIIN,ifOpen);if (iRet==0){iRet=Syn_SelectIDCard(iPort,pucSN,ifOpen);if (iRet==0){iRet=Syn_ReadMsg(iPort,0,&CardMsg);if (iRet==0){//显示读出的信息UpdateData(true);m_name=;UpdateData(false);Syn_SendSound(0);Syn_DelPhotoFile();}}}}Syn_ClosePort(iPort);}10.2 delphi7.0调试通过首先将Syn_IDCardRead.h翻译为Delphi 格式。