Files
idcard/01SDK/身份证接口文档提取.txt
2026-03-31 08:51:18 +08:00

202 lines
9.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
2.3.1 基本接口
2.3.1.1 打开设备
函数名称 打开设备
函数声明 long OpenDevice(char *PortType, char *PortPara, char *ExtendPara);
功能描述 与设备建立通讯连接,返回设备句柄。
参数说明 序号 参数 输入/输出 类型 含义
1 PortType IN 字符串 端口类型(详见参数补充说明)
2 PortPara IN 字符串 端口参数(详见参数补充说明)
3 ExtendPara IN 字符串 扩展参数(详见参数补充说明)
返回值 大于0表示成功数值为设备句柄其他为失败。
参数补充说明:
PortType PortPara ExtendPara
串口 COMn 或 1~1000 波特率9600、115200 串口扩展盒参数1B2541
USB USBn 或 1001~2000 VID_PID261A0011、261A0012 中断传输为MI 控制传输为MC
网口 SKT IP:端口192.168.0.1:8080
蓝牙 BTH 蓝牙名称SS728M801
自动 AUTO
注意事项:
1、COMn和USBn中n∈1~1000即COM1~COM1000(1~1000)和USB1~USB1000(1001~2000)
2、Linux/Android下串口传参为COM+串口文件路径例如COM/dev/ttyS4
3、端口类型为AUTO时是指各参数通过CommonInterface.ini配置文件获取用法详见附录C方案二。
神思USB读卡器的VID_PID对照表请参见附录B
2.3.1.2 关闭设备
函数名称 关闭设备
函数声明 long CloseDevice();
功能描述 断开与设备的通讯连接。
参数说明 序号 参数 输入/输出 类型 含义
返回值 0表示成功非0表示失败。
2.3.1.3 设置当前设备(多设备操作)
函数名称 设置当前设备
函数声明 long SetCurrentDevice(long DevHandle);
功能描述 一台PC连接多台读卡器时通过设备句柄设置接下来要操作的设备。
参数说明 序号 参数 输入/输出 类型 含义
1 PortHandle IN 长整型 设备句柄
返回值 0表示成功非0表示失败。
2.3.1.4 获取当前设备(多设备操作)
函数名称 获取当前设备
函数声明 long GetCurrentDevice();
功能描述 一台PC连接多台读卡器时获取当前操作的设备句柄。
参数说明 序号 参数 输入/输出 类型 含义
返回值 返回当前设备的句柄。
2.3.1.5 获取接口库信息
函数名称 获取接口库信息
函数声明 long GetLibraryInfo(char *Version, char * Description);
功能描述 获取当前已加载的接口库详细信息。
参数说明 序号 参数 输入/输出 类型 含义
1 Version OUT 字符串 接口库版本
2 Description OUT 字符串 接口库描述
返回值 0表示成功非0表示失败。
2.3.1.6 获取设备型号
函数名称 获取设备型号
函数声明 long TerminalGetModel(char *TerminalModel);
功能描述 获取读卡器的型号。
参数说明 序号 参数 输入/输出 类型 含义
1 TerminalModel OUT 字符串 设备型号
返回值 0表示成功非0表示失败。
2.3.1.7 设备轮询心跳
函数名称 设备轮询心跳
函数声明 long TerminalHeartBeat();
功能描述 与设备进行握手通讯,用于检测与读卡器是否已建立连接并且通讯正常。
参数说明 序号 参数 输入/输出 类型 含义
返回值 0表示成功非0表示失败。
2.3.1.8 获取接收数据
函数名称 获取接收数据
函数声明 long GetLastRecvData(unsigned char *LastRecvData);
功能描述 获取最后一次通讯收到的数据,一般用于获取读卡器协议层错误信息。
参数说明 序号 参数 输入/输出 类型 含义
1 LastRecvData OUT 字节数组 返回最后一次通讯收到的数据
返回值 返回收到的数据长度。
2.3.1.9 获取固件版本
函数名称 获取设备固件版本
函数声明 long TerminalGetFirmVersion(char *FirmVersion, char *HardwareVersion);
功能描述 获取读卡器的固件版本号。
参数说明 序号 参数 输入/输出 类型 含义
1 FirmVersion OUT 字符串 设备固件版本号
2 HardwareVersion OUT 字符串 设备硬件版本号
返回值 0表示成功非0表示失败。
2.3.1.10 获取设备序列号
函数名称 获取设备序列号
函数声明 long TerminalGetSn(char *TerminalSn);
功能描述 获取读卡器的固件版本号。
参数说明 序号 参数 输入/输出 类型 含义
1 TerminalSn OUT 字符串 设备序列号
返回值 0表示成功非0表示失败。
2.3.2 二代证接口(二代证/外国人/港澳台)
2.3.2.1 读取二代证
函数名称 读取二代证
函数声明 long IdReadCard(unsigned char CardType, unsigned char InfoEncoding, char *IdCardInfo,
long TimeOutMs);
long SdtReadCard(unsigned char CardType, unsigned char InfoEncoding, char *IdCardInfo,
long TimeOutMs);GA467协议
功能描述 读取第二代居民身份证或外国人永久居留证或港澳台居民居住证
参数说明 序号 参数 输入/输出 类型 含义
1 CardType IN 字节 读取卡类型
0x00 :读取二代证或外国人或港澳台
0x01 :只读二代证
0x02 :只读外国人
0x03 :只读港澳台
以上参数不含指纹信息
以下参数包含指纹信息
0x10 :读取二代证或外国人或港澳台 (含指纹)
0x11 :只读二代证(含指纹)
0x12 :只读外国人(含指纹)
0x13 :只读港澳台(含指纹)
2 InfoEncoding IN 字节 返回信息的编码方式
0x01 GB18030编码GBK
0x02 UTF16-LE编码
0x03 UTF-8编码
3 IdCardInfo OUT 字符串 读取到的二代证/外国人/港澳台信息
至少分配10240字节的内存
4 TimeOutMs IN 长整型 读卡超时时间,单位为毫秒
= 0 :不等待,无卡立即返回
> 0 :等待放卡,指定时间内等待放卡
返回值 0表示成功非0表示失败。
读卡返回信息IdCardInfo格式为以英文冒号分割的信息项具体如下
证件类型:中文姓名:英文姓名:性别:性别代码:民族:民族代码:出生日期:住址:身份证号码:签发机关:发卡日期:卡有效期:证件版本号:头像JPG照片base64编码:指纹特征值base64编码
以上信息为二代证、外国人、港澳台信息项的并集,如果当前类型的证件中不存在该项信息,则该项为空,具体证件中包含的信息项如下:
序号 信息项 二代证 外国人 港澳台 自动解析函数
0 证件类型 A I或Y J IdCardGetTypeFlag
1 中文姓名 姓名 中文姓名 姓名 IdCardGetName
2 英文姓名 英文姓名 IdCardGetNameEn
3 性别 性别 性别 性别 IdCardGetGender
4 性别代码 性别代码 性别代码 性别代码 IdCardGetGenderId
5 民族 民族 国籍或所在地区 IdCardGetNation
6 民族代码 民族代码 国籍或所在地区代码 通行证号码 IdCardGetNationId
7 出生日期 出生日期 出生日期 出生日期 IdCardGetBirthDate
8 住址 住址 /永久居留证号码关联项 住址 IdCardGetAddress
9 身份证号码 公民身份号码 永久居留证号码/证件号码 公民身份号码 IdCardGetIdNumber
10 签发机关 签发机关 当次申请受理机关代码 签发机关 IdCardGetSignOrgan
11 发卡日期 有效期
起始日期 证件签发日期 有效期
起始日期 IdCardGetBeginTerm
12 卡有效期 有效期
截止日期 证件终止日期 有效期
截止日期 IdCardGetValidTerm
13 证件版本号 证件版本号/换证次数 签发次数 IdCardGetVersion
14 头像JPG照片base64编码 头像照片base64编码 头像照片base64编码 头像照片base64编码
15 指纹特征值base64编码 指纹特征值base64编码 指纹特征值base64编码
各信息项建议通过拆分IdCardInfo字符串得到不建议使用以下函数获取
long IdCardGetName(char *Name);
long IdCardGetNameEn(char *NameEn);
long IdCardGetGender(char *Gender);
long IdCardGetGenderId(char *GenderId);
long IdCardGetNation(char *Nation);
long IdCardGetNationId(char *NationId);
long IdCardGetBirthDate(char *BirthDate);
long IdCardGetAddress(char *Address);
long IdCardGetIdNumber(char *IdNumber);
long IdCardGetSignOrgan(char *SignOrgan);
long IdCardGetBeginTerm(char *BeginTerm);
long IdCardGetValidTerm(char *ValidTerm);
long IdCardGetTypeFlag(char *TypeFlag);
long IdCardGetVersion(char *Version);
long IdCardGetFPBuffer(unsigned char *FPBuffer, long *FPBufferLen);//返回1024字节指纹信息两个手指
long IdCardGetPhotoFile(char *PhotoFile);//入参PhotoFile为生成头像文件的全路径支持扩展名wlt/bmp/jpg
long IdCardGetPhotoBuffer(unsigned char WltBmpJpg, unsigned char *PhotoBuffer, long *PhotoBufferLen);
WltBmpJpg入参0x01 wlt格式 0x02 bmp格式 0x03 jpg格式
//获取二代证原始信息
long IdCardGetRawInfo(unsigned char *CHMsg, long *CHMsgLen, //文字信息
unsigned char *PHMsg, long *PHMsgLen, //照片信息
unsigned char *FPMsg, long *FPMsgLen); //指纹信息
2.3.2.2 读取追加住址
函数名称 读取追加住址
函数声明 long IdReadNewAddress(char *NewAddress);
long SdtReadNewAddress(char *NewAddress); GA467协议
功能描述 读取二代证的追加住址信息
参数说明 序号 参数 输入/输出 类型 含义
1 NewAddress OUT 字符串 返回读取到的追加住址信息
返回值 0表示成功非0表示失败。
2.3.2.3 获取SAM模块状态
函数名称 获取SAM模块状态
函数声明 long SamGetStatus();
long SdtSamGetStatus();GA467协议
功能描述 获取公安部SAM安全模块状态。
参数说明 序号 参数 输入/输出 类型 含义
返回值 0表示成功非0表示失败。
2.3.2.4 获取SAM模块编号字符串
函数名称 获取SAM模块编号字符串
函数声明 long SamGetIdStr(char *SamIdStr);
long SdtSamGetIdStr(char *SamIdStr); GA467协议
功能描述 获取公安部SAM安全模块编号字符串。内部将编号转换为字符串
参数说明 序号 参数 输入/输出 类型 含义
1 SamIdStr OUT 字符串 SAM模块编号字符串
返回值 0表示成功非0表示失败。