中软高科Windows端C#身份证解码SDK集成说明

196 阅读6分钟

注意:测试使用的 appid 不可以用于商用(否则后果自负)。 商用的 appid 请务必联系我司商务进行分配。

一、支持的读卡器类型

本开发包支持USB免驱型、串口型这2种类型的读卡器,支持读取二代居民身份证、M1和CPU卡等。 提供动态连接库dll,提供C++(MFC)和C#下的演示程序执行文件和示例源码。

二、动态库文件说明

sdtapi.dll: 公安部二代证模块通信标准函数。实现USB读二代证和M1卡等功能。 hidapi.dll: HID动态库,sdtapi.dll需要用到此动态库。 conf.yaml: 配置文件设置。 license.dat: 二代证照片解码库的授权文件。 WltRS.dll: 二代证照片解码库,需配合license.dat文件使用。 DLL_File.dll: 二代证照片解码库,需配合license.dat文件使用。

本开发包适用于直接调用dll的本地应用开发。

三、SDK函数说明

1.Syn_StartFindIDCard

开始找卡。

int Syn_StartFindIDCard(
    int           iPort,
    unsigned char * pucIIN,
    int           iIfOpen
);

参数说明:

iPort
    [in] 整数,表示端口号。
pucIIN
    [out] 无符号字符指针,指向读到的IIN。
iIfOpen
    [in] 整数。

返回值:

0x9f  找卡成功
0x80  找卡失败

2.Syn_SelectIDCard

选卡。

int Syn_SelectIDCard(
    int           iPort,
    unsigned char * pucSN,
    int           iIfOpen
);

参数说明:

iPort
    [in] 整数,表示端口号。
pucSN
    [out] 无符号字符指针,指向读到的SN。
iIfOpen
    [in] 整数。

返回值:

0x90 选卡成功
0x81 选卡失败

3.Syn_ReadBaseMsg

读取身份证内基本信息区域信息。

int Syn_ReadBaseMsg(
    int           iPort,
    unsigned char * pucCHMsg,
    unsigned int  * puiCHMsgLen,
    unsigned char * pucPHMsg,
    unsigned int  * puiPHMsgLen,
    int           iIfOpen
);

参数说明:

iPort
        [in] 整数,表示端口号。
pucCHMsg
        [out] 无符号字符指针,指向读到的文字信息。
puiCHMsgLen
        [out] 无符号整型数指针,指向读到的文字信息长度。
pucPHMsg
        [out] 无符号字符指针,指向读到的照片信息。
puiPHMsgLen
        [out] 无符号整型数指针,指向读到的照片信息长度。
iIfOpen
        [in] 整数。

返回值:

0x90 读基本信息成功
0x41 读基本信息失败

4.Syn_ReadBaseMsgToFileSyn_ReadBaseMsg函数

类似读取ID卡内基本信息区域信息,并将读到的基本信息写进输入参数所指定的文件中。

int Syn_ReadBaseMsgToFile(
    int            iPortID,
    char *         pcCHMsgFileName,
    unsigned int * puiCHMsgFileLen,
    char *         pcPHMsgFileName,
    unsigned int * puiPHMsgFileLen,
    int            iIfOpen
);

参数说明:

iPort
        [in] 整数,表示端口号。
pcCHMsgFileName
        [in] 读取到的ID卡内文字信息,需要写入文件,此为由用户指定的文件名。
puiCHMsgFileLen
        [out] 存储文字信息的文件的长度。
pcCHMsgFileName
        [in] 读取到的ID卡内照片信息,需要写入文件,此为由用户指定的文件名。
puiCHMsgFileLen
        [out] 存储照片信息的文件的长度。
iIfOpen
        [in] 整数

返回值:

0x90 读基本信息成功
0x41 读基本信息失败

5.Syn_ReadBaseFPMsg

读取身份证内机读文字信息、相片信息和指纹信息。

int Syn_ReadBaseFPMsg(
    int             iPort,
    unsigned char * pucCHMsg,
    unsigned int  * puiCHMsgLen,
    unsigned char * pucPHMsg,
    unsigned int  * puiPHMsgLen,
    unsigned char * pucFPMsg,
    unsigned int  * puiFPMsgLen,
    int             iIfOpen
);

参数说明:

iPort
       [in] 整数,表示端口号。
pucCHMsg
       [out] 无符号字符指针,指向读到的文字信息。
puiCHMsgLen
       [out] 无符号整型数指针,指向读到的文字信息长度。
pucPHMsg
       [out] 无符号字符指针,指向读到的照片信息。
puiPHMsgLen
       [out] 无符号整型数指针,指向读到的照片信息长度。
pucFPMsg
       [out] 无符号字符型指针,指向读到的指纹信息,其长度由puiFPMsgLen参数输出。
             该指针指向的存储空间由调用者分配,不得小于1024字节。
puiFPMsgLen
       [out] 无符号整型数指针,指向读到的指纹信息长度,最长1024字节。
iIfOpen
       [in] 整数。

返回值:

0x90 读基本信息成功
0x41 读基本信息失败

6.Syn_ReadBaseFPMsgToFileSyn_ReadBaseFPMsg函数

类似,读取身份证内基本信息、照片信息和指纹信息,并将读到的信息写进输入参数所指定的文件中。

int Syn_ReadBaseMsgToFile(
    int          iPortID,
    char         * pcCHMsgFileName,
    unsigned int * puiCHMsgFileLen,
    char         * pcPHMsgFileName,
    unsigned int * puiPHMsgFileLen,
    char         * pcFPMsgFileName,
    unsigned int * puiFPMsgFileLen,
    int          iIfOpen
);

参数说明:

iPort
    [in] 整数,表示端口号。
pcCHMsgFileName
    [in] 读取到的ID卡内文字信息,需要写入文件,此为由用户指定的文件名。
puiCHMsgFileLen
    [out] 存储文字信息的文件的长度。
pcCHMsgFileName
    [in] 读取到的ID卡内照片信息,需要写入文件,此为由用户指定的文件名。
puiCHMsgFileLen
    [out] 存储照片信息的文件的长度。
puiFPMsgFileName
    [in] 由用户指定的文件名,将读取到的居民身份证指纹信息写入该文件。
puiFPMsgFileLen
    [out] 无符号整型数指针,文件的长度。
iIfOpen
    [in] 整数。

返回值:

0x90 读基本信息成功
0x41 读基本信息失败

7.Syn_ReadFPMsg

本函数用于读取身份证中的基本信息和照片信息,并按设置转化信息和照片。

int Syn_ReadFPMsg(
    int           iPortID,
    unsigned char * pucFPMsg,
    unsigned int  * puiFPMsgLen,
    int           iIfOpen
);

8.readCardLog

是否开启本地日志记录,模拟关闭日志记录。

void readCardLog(
    int iRecord
);

参数说明:

iRecord
    [in] 整数。0:关闭日志,1:开启日志

返回值:

9.readCardBeep

是否开启蜂鸣器,默认开启蜂鸣器。

void readCardBeep(
    int iBeep
);

参数说明:

iBeep
    [in]整数。0:关闭蜂鸣器,1:打开蜂鸣器(如果使用的读卡器没有蜂鸣器,则设置无效)

返回值:

10.readCardGetCardType

获取卡片类型。

int readCardGetCardType(
);

参数说明:

返回值:

0x04 ID卡
0x10 身份证
其他 未知错误

11.readCardGetUID

获取UID。

char * readCardGetUID(
    int iMode
);

参数说明:

iMode
    [in] 整数。0:未知,1:身份证,2:IC卡,3:自动寻卡模式,在找到卡之后获取UID。

返回值:

char * UID

12.readCardGetVersionCode

获取读卡器的版本号。

char * readCardGetVersionCode(
);

参数说明:

返回值:

char * VersionCode

13.readCardGetAuthorizeCode

获取读卡器的授权码。

char * readCardGetAuthorizeCode(
);

参数说明:

返回值:

char * AuthorizeCode

14.readCardGetHostDeviceCode

获取设备码。

char * readCardGetHostDeviceCode(
);

参数说明:

返回值:

char * HostDeviceCode

15.readCardGetSdkVersion

获取SDK的版本号。

char * readCardGetSdkVersion(
);

参数说明:

返回值:

char * SdkVersion

16.readCardGetLastError

获取最后一次错误信息。

char * readCardGetLastError(
);

参数说明:

返回值:

char * LastError

四、返回值列表

返回值意义
0x90操作成功
0x91居民身份证中无此项内容
0x9F寻找居民身份证成功
0x80寻找居民身份证失败
0x81选取居民身份证失败
0x41读居民身份证操作失败
0x04ID卡类型
0x10身份证卡类型