主营二代三代社保卡读卡器、医保卡阅读器、身份证阅读器机具,广泛应用社保局、医院、政务服务中心、劳动局、就业局、药店等场所。
社保卡读卡器商城
当前位置:首页 > 技术服务

HD-100多功能身份证社保卡读卡器Windows开发包文档

来源:www.huada-os.com 标签:Windows 开发包 SDK HD-100 社保卡读卡器 身份证  发布时间:2018-9-15 15:51:24

提供HD-100多功能身份证社保卡读卡器Windows开发包文档,此文档适合HD-100智能卡读写器、HD-100社保卡读卡器、HD-100医保卡读卡器等系列产品,欢迎下载使用。

HD-100多功能身份证社保卡读卡器Windows开发包文档

HD-100多功能智能卡读写器接口文档

目录

HD-100多功能智能卡读写器接口文档1

一、接口文档维护记录2

二、HD-100多功能智能卡读写器读卡器SDK简介2

三、函数说明2

3.1、设备类2

3.1.1、连接读卡器2

3.1.2、断开连接3

3.1.3、蜂鸣器3

3.2、接触类3

3.2.1、CPU卡3

3.3、非接类4

3.3.1、非接卡前置步骤(必须)4

3.3.2、非接CPU卡(TypeA)5

3.3.2.1、TypeA卡上电复位5

3.3.2.2、TypeA卡执行APDU命令5

3.3.3、Mifare One(M1卡) 系列5

3.3.3.1、认证秘钥5

3.3.3.2、读卡6

3.3.3.3、写卡6

3.4、身份证6

3.4.1、读身份证信息(文字+照片)6

3.4.2、读身份证信息(文字+照片+指纹)7

3.4.3、读身份证物理ID号7

3.4.4、查询天线区域有无身份证7

3.4.5 get函数8

3.5、磁条9

3.6、辅助函数9

3.6.1、十六进制数组转hexstr字符串,例如:0x11,0x22   “1122”9

3.6.1、hexstr字符串转十六进制数组,例如:“1122”    0x11,0x229

3.7、卡片操作要点10

3.7.1typeACPU 卡操作顺序10

3.7.2typeB 卡操作顺序10

3.7.3M1卡操作顺序10

3.7.4接触CPU卡操作顺序10

3.8、状态码10

二、HD-100多功能智能卡读写器读卡器SDK简介

本文档描述了广东东信智能科技有限公司HD-100型号读写器SDK的函数定义、调用方法、参数以及返回值说明,供开发人员进行二次开发时使用。

三、函数说明

3.1、设备类

3.1.1、连接读卡器

函数原型:long HDAPI IC_Read_Open(char* dev_Name);

参数:[IN] dev_Name:固定值 “USB1”.

返回值:连接成功时返回句柄值(大于0),该值需保存作为其他函数的入参。

3.1.2、断开连接

函数原型:long HDAPI IC_Read_Close(long ReaderHandle);

参数:ReaderHandle:[IN] IC_Read_Open函数的返回值

返回值:无 

3.1.3、蜂鸣器

函数原型:long HDAPI ICC_PosBeep(long ReaderHandle, unsigned char time);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

Time:[IN] 蜂鸣时间,0~10

返回值:成功返回0。


3.2、接触类

3.2.1、CPU卡

3.2.1.1、CPU卡上电复位

函数原型:

long HDAPI IC_Read_pre_PowerOn(long ReaderHandle,unsigned char ICC_Slot_No,unsigned char* Response);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

ICC_Slot_No:[IN]卡座号(如下)

0x01:大卡座

0x11~0x14:SAM1~SAM4卡座

Response:[OUT]上电返回的ATR


返回值:成功返回ATR的长度,<= 0表示失败。


3.2.1.2、CPU卡执行APDU命令

函数原型:long HDAPI IC_Read_Application(long ReaderHandle,unsigned char ICC_Slot_No, long Lenth_of_Command_APDU,unsigned char* Command_APDU, unsigned char* Response_APDU);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

ICC_Slot_No:[IN]卡座号,同上电复位

Lenth_of_Command_APDU:[IN]APDU命令长度

Command_APDU:[IN]APDU命令

Response_APDU:[OUT]响应数据

返回值:

成功返回响应数据的长度,<= 0表示失败

3.3、非接类

3.3.1、非接卡前置步骤(必须)

3.3.1.1、设置为TypeA/B

函数原型:long HDAPI PIC_Read_SetTypeA(long ReaderHandle);

long HDAPI PIC_Read_SetTypeB(long ReaderHandle);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

返回值:成功返回0

3.3.1.2、请求卡片

函数原型:long HDAPI PIC_Read_Request(long ReaderHandle);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

返回值:成功返回0

3.3.1.3、防碰撞

函数原型:long HDAPI PIC_Read_anticoll(long ReaderHandle,unsigned char *uid);

参数:

    ReaderHandle:[IN] IC_Read_Open函数的返回值

Uid:[OUT] 卡片物理卡号,4字节

返回值:成功返回0

3.3.1.4、选择卡片

函数原型:long HDAPI PIC_Read_Select(long ReaderHandle,unsigned char cardtype);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

Cardtype:[IN]0x41表示TypeA/M1,0x42表示TypeB

返回值:成功返回0

3.3.2、非接CPU卡(TypeA)

3.3.2.1、TypeA卡上电复位

函数原型:long HDAPI PIC_Read_PowerOnTypeA(long ReaderHandle,unsigned char* Response);

参数:

    ReaderHandle:[IN] IC_Read_Open函数的返回值

Response:[OUT]上电返回数据(ATS)

返回值:成功返回ATS长度,<= 0表示失败。

3.3.2.2、TypeA卡执行APDU命令

函数原型:long HDAPI PIC_Read_Application(long ReaderHandle, long Lenth_of_Command_APDU,unsigned char* Command_APDU, unsigned char* Response_APDU);

参数: 

    ReaderHandle:[IN] IC_Read_Open函数的返回值

Lenth_of_Command_APDU:[IN]APDU命令长度

Command_APDU:[IN]APDU命令

Response_APDU:[OUT]响应数据

返回值:

成功返回响应数据的长度,<= 0表示失败

3.3.3、Mifare One(M1卡) 系列

3.3.3.1、认证秘钥

函数原型:long HDAPI PIC_Read_Authentication_Pass(long ReaderHandle,unsigned char Mode, unsigned char SecNr,unsigned char *PassWord);

参数:

    ReaderHandle:[IN] IC_Read_Open函数的返回值

Mode:[IN]要认证的Key类型,0x60表示KeyA,0x61表示KeyB。

Secnr:[IN]扇区号,S50卡范围:0~15、S70卡范围0~63

Key:[IN]秘钥,6字节

返回值:返回0表示成功,其他值失败。

3.3.3.2、读卡

函数原型:long HDAPI PIC_Read_Read(long ReaderHandle,unsigned char Addr,unsigned char *Data);

参数:

    ReaderHandle:[IN] IC_Read_Open函数的返回值

Addr:[IN]块地址S50卡:0~63、S70卡:0~255

Response:[OUT]读出的卡数据,16字节

返回值:成功返回0,其它值失败。

3.3.3.3、写卡

函数原型:long HDAPI PIC_Read_Write(long ReaderHandle,unsigned char Addr,unsigned char *Data);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

Addr:[IN]块地址S50卡:0~63、S70卡:0~255

Data:[IN]待写入的卡数据,16字节

返回值:成功返回0,其它值失败。


3.4、身份证

3.4.1、读身份证信息(文字+照片)

函数原型:

long HDAPI PIC_Read_ReadIDMsg(long ReaderHandle, 

const char* pBmpFile, 

char *pName, 

char *pSex, 

char *pNation, 

char *pBirth, 

char *pAddress, 

char *pCertNo, 

char *pDepartment , 

char *pEffectData, 

char *pExpire,

char * pErrMsg);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

pBmpFile:[IN]要生成照片的路径,例:”D:\\zp.bmp”

pName:[OUT]姓名,50字节

pSex:[OUT]性别,10字节

pNation:[OU]民族,10字节

pBirth:[OUT]出生日期,30字节

pAddress:[OUT]家庭住址,100字节

pIDNo:[OUT]身份号,50字节

pDepartment:[OUT]签发机关,50

pEffectDate:[OUT]有效起始日期,30字节

pExpireDate:[OUT]有效截止日期,30字节

pErrMsg:[OUT]错误提示,50字节


返回值:读卡成功返回0

3.4.2、读身份证信息(文字+照片+指纹)

函数原型:

long HDAPI PIC_Read_ReadIDCard(long ReaderHandle, char * pErrMsg);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

pErrMsg:[OUT]错误提示,50字节


返回值:读卡成功返回0,读卡成功后可调用下文get函数获取信息

3.4.3、读身份证物理ID号

函数原型:long HDAPI PIC_Read_ID_ReadUID(long ReaderHandle,unsigned char* UID);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

Response:[OUT]身份物理ID号,8字节

返回值:成功返回0,其它值失败。

3.4.4、查询天线区域有无身份证

函数原型:long HDAPI PIC_Read_ID_Request(long ReaderHandle);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

返回值:成功返回0,其它值失败。

3.4.5 get函数

函数获取信息功能包含证件类型

int  HDAPI GetCardType();获取证件类型

0:居民身份证

1:外国人永久居留证

2:港澳台居民居住证

char* HDAPI GetName();姓名(类型为1时表示:外国人中文姓名)0、1、2

char* HDAPI GetSex();性别0、1、2

char* HDAPI GetNation();民族0

char* HDAPI GetBirth();出生日期0、1、2

char* HDAPI GetAddress();住址0、2

char* HDAPI GetCertNo();公民身份证号码(类型为1时表示:外国人居留证号码)0、1、2

char* HDAPI GetDepartemt();签发机关0、2

char* HDAPI GetEffectDate();有效起始日期0、1、2

char* HDAPI GetExpireDate();有效截止日期0、1、2

char* HDAPI GetBmpFileData();bmp格式照片数据0、1、2

int HDAPI GetBmpFile(char* pBmpfilepath);生成照片,入参参考文中3.4.10、1、2

int  HDAPI IsFingerExist();是否含存在指纹信息:

存在时返回512或者1024

不存在时返回00、2

int HDAPI GetFingerprint(unsigned char* fpInfo);获取指纹数据:

成功时返回获取到的字节长度0、2

char* HDAPI GetEnName();外国人英文姓名1

char* HDAPI GetNationalityCode();外国人国籍代码,符合GB/T2659-2000规定1

char* HDAPI GetTXZHM();港澳台通行证号码2

char* HDAPI GetTXZQFCS();港澳台通行证签发次数2

注: 以上函数须在 “PIC_Read_ReadIDCard” 函数执行成功之后调用,否则获取不到有效信息。


3.5、磁条

函数原型:long HDAPI Rcard(long ReaderHandle,unsigned char ctime,int track,unsigned char *rlen,unsigned char *getdata);

参数:

ReaderHandle:[IN] IC_Read_Open函数的返回值

ctime:[IN]超时时间,单位:秒

track:[IN]磁道(1~3)磁道1~~磁道3 ,track=4时表示全轨一次性刷出,返回数据为TLV格式,例如:010101020201020303010203

rlen:[OUT]返回数据的长度

data:[OUT]返回的数据

返回值:0表示成功,其它表示失败。

3.6、辅助函数

3.6.1、十六进制数组转hexstr字符串,例如:0x11,0x22   “1122”

函数原型:long HDAPI HexToStr(unsigned char *Src,int len,unsigned char *Des );

参数:

Src:[IN]十六进制数组

Len:[IN]数据长度

Des:[OUT] 转换好的hexstr格式字符串。

返回值:返回0

3.6.1、hexstr字符串转十六进制数组,例如:“1122”    0x11,0x22

函数原型:long HDAPI StrToHex(unsigned char *Src, int len,unsigned char *Des);

参数:

Src:[IN]hexstr格式字符串

Len:[IN]字节长度

Des:[OUT]转换好的数据

返回值:返回转换好的十六进制数据。

3.7、卡片操作要点

3.7.1typeACPU 卡操作顺序

1 设置为TypeA卡片

2 请求卡片

3 防碰撞

4 选择卡片

5 上电

6  APDU 命令

3.7.2typeB 卡操作顺序

1 设置为TypeB卡片

2 上电

3 选卡

4  APDU 命令

3.7.3M1卡操作顺序

1 请求卡片

2 防碰撞

3 选择卡片

4 认证密钥

5  读或写

3.7.4接触CPU卡操作顺序

1  上电复位

2  APDU 命令

3.8、状态码

0操作成功

-2身份证寻卡/选卡失败

-4身份读卡失败

-11读卡器连接错

-12未建立连接(没有执行打开设备函数)

-13(动态库)不支持该命令

-14发给动态库的)命令参数错

相关资讯
华大HD-S1多合一扫码墩
华大HD-S1多合一扫码墩

华大HD-S1多合一扫码墩融合了一二维码扫描墩、磁条卡技术、接触式、非接触式智能卡技术

2022-12-17
神思SS728M认证聚合支付终端
神思SS728M认证聚合支付终端

神思SS728M认证聚合支付终端集二代居民身份证阅读验证、社保卡、医保卡、就诊卡、IC 卡

2022-12-17
神思SS728M05诊间支付终端
神思SS728M05诊间支付终端

神思SS728M05诊间支付终端集二代身份证阅读验证、社保卡、医保卡、就诊卡、IC 卡、磁条

2022-12-17
华旭金卡HX-MYY-3身份证社保卡读卡器
华旭金卡HX-MYY-3身份证社保卡读卡器

华旭金卡HX-MYY-3身份证社保卡读卡器(尊贵版)支持读取第三代身份证读取;支持3.0社会

2022-12-16
©2024 广东身份证社保卡读卡器中心 粤ICP备17018077号-3