银安 - 二代证系统终端API使用手册(验证API)

更新时间:2024-01-11 20:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

二代证系统终端API使用手册

内蒙古银安科技开发有限公司

二代证系统终端API使用手册

1.前言 ........................................................................................................................................... 2 2.系统要求 .............................................................................................................................. 2 3.API列表 ............................................................................................................................... 2 4.API详细说明 ................................................................................................................... 3

4.1 端口类API ............................................................................................................................... 3

4.1.1 SDT_SetMaxRFByte .......................................................................................................................... 3 4.1.2 SDT_GetCOMBaud .............................................................................................................................. 3 4.1.3 SDT_SetCOMBaud .............................................................................................................................. 4 4.1.4 SDT_OpenPort .................................................................................................................................. 4 4.1.5 SDT_ClosePort ................................................................................................................................ 5

4.2 SAM类API ................................................................................................................................ 5

4.2.1 SDT_ResetSAM .................................................................................................................................. 5 4.2.2 SDT_GetSAMStatus .......................................................................................................................... 6 4.2.3 SDT_GetSAMID .................................................................................................................................. 6 4.3.4 SDT_GetSAMIDToStr ........................................................................................................................ 7

4.3 身份证卡类API........................................................................................................................ 7

4.3.1 SDT_StartFindIDCard .................................................................................................................... 7 4.3.2 SDT_SelectIDCard .......................................................................................................................... 8 4.3.3 SDT_ReadBaseMsg ............................................................................................................................ 8 4.3.4 SDT_ReadIINSNDN ............................................................................................................................ 9 4.3.5 SDT_ReadBaseMsgToFile .............................................................................................................. 10 4.3.6 SDT_ReadIINSNDNToASCII ............................................................................................................ 10

5.API调用说明 ................................................................................................................. 11

5.1 调用顺序 ................................................................................................................................. 11 5.2 例子程序(以delphi语言为例) ......................................................................................... 11

6.函数返回码列表 ......................................................................................................... 13

二代证系统终端API使用手册

1.前言

本应用程序接口(API)用于二代证验证系统的验证终端应用系统的开发。

2.系统要求

使用本API的PC机,必须满足下列条件:

? Windows 98,Windows 2000 Pro,Windows 2000 Server,WinXP ? 至少32兆内存(32M RAM or Larger)

? 至少10兆空闲硬盘空间(10M Free Hard Disk Space or Larger) ? 至少一个空闲普通串口或USB口(视用户需求而定)。

3.API列表

加密API分为下列几类,在下面各表中列出。

序号 函数名 1. 2. 3. 4. 5. SDT_SetMaxRFByte SDT_GetCOMBaud SDT_SetCOMBaud SDT_OpenPort SDT_ClosePort 端口API 功能描述 设置射频适配器最大通信字节数 查看串口当前波特率 设置串口上SAM的波特率 打开串口/USB口 关闭串口/USB口 序号 函数名 6. 7. 8. 9. SDT_ResetSAM SDT_GetSAMStatus SDT_GetSAMID SDT_GetSAMIDToStr SAM类API 功能描述 对SAM复位 对SAM进行状态检测 读取SAM的编号(十六进制) 读取SAM的编号(字符串格式) 序号 函数名 10. 11. 12. 13. 14. SDT_StartFindIDCard SDT_SelectIDCard SDT_ReadBaseMsg SDT_ReadIINSNDN SDT_ReadBaseMsgToFile 身份证卡类API 功能描述 开始找卡 选卡 读取ID卡内基本信息区域信息 读取ID卡内IIN,SN, DN 读取ID卡内基本信息区域信息,并把信息写入指定的文件中 读取ID卡内IIN,SN, DN,并转换成ASCII形式 15. SDT_ReadIINSNDNToASCII

二代证系统终端API使用手册

4.API详细说明

4.1 端口类API

4.1.1 SDT_SetMaxRFByte

设置射频适配器最大通信字节数。 int SDT_SetMaxRFByte (

int iPort, unsigned char ucByte, int iIfOpen );

参数说明:

iPort [in] 整数,表示端口号。参见SDT_ResetSAM。

ucByte [in] 无符号字符,24-255,表示射频适配器最大通信字节数。

iIfOpen [in] 整数,参见SDT_ResetSAM。

返回值:

0x90 其他

成功

失败(具体含义参见返回码表)

4.1.2 SDT_GetCOMBaud

查看串口当前波特率(该函数只用于SAM采用RS232串口的情形,如果采用USB接口则不支持该API)。

int SDT_GetCOMBaud (

int iPort,

unsigned int * puiBaudRate );

参数说明:

iPort [in] 整数,表示端口号。此处端口号必须为1-16,表示串口,参见SDT_Login。

puiBaudRate [out] 无符号整数指针,指向普通串口当前波特率, 默认情况下为115200。

二代证系统终端API使用手册

返回值:

0x90 0x1 0x5

成功

端口打开失败/端口号不合法

无法获得该SAM的波特率,该SAM串口不可用。

4.1.3 SDT_SetCOMBaud

设置SAM的串口的波特率(该函数只用于SAM采用RS232串口的情形,如果采用USB接口则不支持该API),设置成功后,在该SAM和主机注册表中都记录设置后的波特率,保证在SAM重新启动和该套API被重新调用时采用设置后的波特率。该函数调用成功后,需要延时5毫秒,然后才能继续与SAM通信。

int SDT_SetCOMBaud (

int iPort,

unsigned int uiCurrBaud,

unsigned int uiSetBaud );

参数说明:

iPort [in] 整数,表示端口号。此处端口号必须为1-16,表示串口。

uiCurrBaud [in] 无符号整数,调用该API前已设置的业务终端与SAM通信的波特率(SAM出厂时默认,业务终端与SAM通信的波特率为115200).业务终端以该波特率与SAM通信,发出设置SAM新波特率的命令.。uiCurrBaud只能为下列数值之一:115200,57600,38400,19200,9600.如果uiCurrBaud数值不是这些值之一,函数返回0x21;如果已设置的波特率与uiCurrBaud不一致, 则函数返回0x02,表示不能设置,调用API不成功。

uiSetBaud

[in] 无符号整数,将要设置的SAM与业务终端通信波特率。uiSetBaud只能取下列值之一::115200,57600,38400,19200,9600,如果输入uiSetBaud参数不是这些数值之一,,函数返回0x21,设置不成功,保持原来的波特率不变。

返回值:

0x90 成功

0x1 端口打开失败/端口号不合法。 0x2 超时,设置不成功。

0x21 uiCurrBaud 、uiSetBaud输入参数数值错误.。

4.1.4 SDT_OpenPort

二代证系统终端API使用手册

打开串口。

int SDT_OpenPort(

int );

参数说明:

iPort

iPort [in] 整数,表示端口号。1-16(十进制)为串口,1001-1016(十进制)为USB口。

返回值:

0x90 1

打开端口成功

打开端口失败/端口号不合法

4.1.5 SDT_ClosePort

关闭串口。

int SDT_ClosePort (

int );

参数说明:

iPort

iPort [in] 整数,表示端口号。

返回值:

0x90 关闭端口成功。 0x01 端口号不合法

4.2 SAM类API

4.2.1 SDT_ResetSAM

对SAM复位。

int SDT_ResetSAM (

int iPort, int iIfOpen );

参数说明:

iPort [in] 整数,表示端口号。根据SAM使用的接口不同(分为普通串口SAM和USB

二代证系统终端API使用手册

口SAM),分别使用不同的端口号(目前串口和USB都只支持16个,即串口0001-0016和USB1001-1016): 普通串口0001 – 0016(十进制) 例如: SAM 0001:串口1(COM1) 0002:串口2(COM2) USB口SAM 1001 – 1016(十进制) 例如: 1001:USB1 1002:USB2

iIfOpen [in] 整数,0表示不在该函数内部打开和关闭串口,此时确保之前调用了SDT_OpenPort来打开端口,并且在不需要与端口通信时,调用SDT_ClosePort关闭端口;非0表示在API函数内部包含了打开端口和关闭端口函数,之前不需要调用SDT_OpenPort,也不用再调用SDT_ClosePort。

返回值:

0x90 其他

成功

失败(具体含义参见返回码表)

4.2.2 SDT_GetSAMStatus

对SAM进行状态检测。 int SDT_GetSAMStatus (

int iPort, int iIfOpen );

参数说明:

iPort [in] 整数,表示端口号。参见SDT_ResetSAM。

iIfOpen [in] 整数,参见SDT_ResetSAM。

返回值:

0x90 SAM正常

0x60 自检失败,不能接收命令

其他 命令失败(具体含义参见返回码表)

4.2.3 SDT_GetSAMID

读取SAM的编号。 int SDT_GetSAMID (

int iPort, unsigned char * pucSAMID,

二代证系统终端API使用手册

int

iIfOpen

);

参数说明:

iPort [in] 整数,表示端口号。参见SDT_ResetSAM。

pucSAMID [out] 无符号字符串指针,指向读到的SAM编号,

返回值:

0x90 成功

其他 失败(具体含义参见返回码表)

4.3.4 SDT_GetSAMIDToStr

读取SAM的编号。

int SDT_GetSAMIDToStr (

int iPort, char * pcSAMID, int iIfOpen );

参数说明:

iPort [in] 整数,表示端口号。参见SDT_ResetSAM。

pcSAMID [out] 字符串指针,指向读到的SAM编号。

iIfOpen [in] 整数,参见SDT_ResetSAM。

返回值:

0x90 成功

其他

失败(具体含义参见返回码表)

4.3 身份证卡类API

4.3.1 SDT_StartFindIDCard

开始找卡。

字节。 16 二代证系统终端API使用手册

int SDT_StartFindIDCard (

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

参数说明:

iPort [in] 整数,表示端口号。参见SDT_ResetSAM。

pucIIN [out] 无符号字符指针,指向读到的IIN。

iIfOpen [in] 整数,参见SDT_ResetSAM。

返回值:

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

4.3.2 SDT_SelectIDCard

选卡。

int SDT_ SelectIDCard (

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

参数说明:

iPort [in] 整数,表示端口号。参见SDT_ResetSAM。

pucSN [out] 无符号字符指针,指向读到的SN。

iIfOpen [in] 整数,参见SDT_ResetSAM。

返回值:

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

4.3.3 SDT_ReadBaseMsg

读取ID卡内基本信息区域信息。 int SDT_ReadBaseMsg (

二代证系统终端API使用手册

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

参数说明:

iPort [in] 整数,表示端口号。参见SDT_ResetSAM。

pucCHMsg [out] 无符号字符指针,指向读到的文字信息。

puiCHMsgLen [out] 无符号整型数指针,指向读到的文字信息长度。

pucPHMsg [out] 无符号字符指针,指向读到的照片信息。

puiPHMsgLen [out] 无符号整型数指针,指向读到的照片信息长度。

iIfOpen [in] 整数,参见SDT_ResetSAM。

返回值:

0x90 读基本信息成功

其他 读基本信息失败(具体含义参见返回码表)

4.3.4 SDT_ReadIINSNDN

读取ID卡内IIN,SN和DN。 int SDT_ReadIINSNDN (

int iPort, unsigned char * pucIINSNDN, int iIfOpen );

参数说明:

iPort [in] 整数,表示端口号。参见SDT_ResetSAM。

pucIINSNDN [out] 无符号字符指针,指向读到的IIN,SN和DN,长度为固定28字节。

iIfOpen [in] 整数,参见SDT_ResetSAM。

二代证系统终端API使用手册

返回值:

0x90 其他

读IIN,SN和DN成功

读IIN,SN和DN失败(具体含义参见返回码表)

4.3.5 SDT_ReadBaseMsgToFile

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

int SDT_ ReadBaseMsgToFile (

int iPortID,

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

参数说明:

iPort [in] 整数,表示端口号。参见SDT_ResetSAM。

pcCHMsgFileName [in] 读取到的ID卡内文字信息,需要写入文件,此为由用户指定的文件名。

puiCHMsgFileLen [out] 存储文字信息的文件的长度。

pcCHMsgFileName [in] 读取到的ID卡内照片信息,需要写入文件,此为由用户指定的文件名。

puiCHMsgFileLen [out] 存储照片信息的文件的长度。

iIfOpen [in] 整数,参见SDT_ResetSAM。

返回值:

0x90 读基本信息成功

其他 读基本信息失败(具体含义参见返回码表)

4.3.6 SDT_ReadIINSNDNToASCII

读取ID卡内IIN,SN和DN,并把16进制转化成ASCII形式。 int SDT_ReadSNDN (

int iPort, unsigned char * pucIINSNDN, int iIfOpen );

二代证系统终端API使用手册

参数说明:

iPort [in] 整数,表示端口号。参见SDT_ResetSAM。

pucIINSNDN [out] 无符号字符指针,指向读到的IIN,SN和DN,长度为固定56字节。

iIfOpen [in] 整数,参见SDT_ResetSAM。

返回值:

0x90 读SN和DN成功

其他 读SN和DN失败(具体含义参见返回码表)

举例说明:

如读取到的IIN,SN和DN十六进制是{0x12, 0x9a…},把每个字节拆分成两个ASCII形式的数,转化成后则为{0x31,0x32,0x39,0x61…}。

5.API调用说明

5.1 调用顺序

有些API的调用有一定先后顺序。我们把这些有先后顺序关系的API按不同层次列表如下。(2)级函数执行前必须执行其上的(1),即(1)级函数最先执行,然后可以执行(2)级函数,然后可以执行(3)级函数,然后依次为(4)级、(5)级函数。同一级函数没有先后顺序。其他未列出的函数全是(1)级函数,调用没有先后顺序。

SDT_StartFindIDCard(1)

SDT_SelectIDCard(2)

SDT_ReadBaseMsg(3)

5.2 例子程序(以delphi语言为例)

var

iRet:integer;

pucIIN: array[0..3] of char; pucSN: array[0..7] of char; pucCHMsg:array[0..1023] of uchar; //文字信息 pucPHMsg:array[0..1023] of uchar; //照片信息 uiCHMsgLen,uiPHMsgLen:integer;

----------------------------------------------------------------------------

二代证系统终端API使用手册

//打开串口

iRet := SDT_OpenPort(Com); if (iRet <> $90) then begin

ScreenErrorinfo('打开串口错误!',iRet); SDT_ClosePort(Com); exit; end; //找卡 iRet := SDT_StartFindIDCard(Com, pucIIN, 0); if (iRet <> $9f) then begin

ScreenErrorinfo('请重新放置身份证.',iRet); SDT_ClosePort(Com); exit; end; //选卡

iRet := SDT_SelectIDCard(Com,pucSN, 0); if (iRet <> $90) then begin

ScreenErrorinfo('此卡不是标准身份证!',iRet); SDT_ClosePort(Com); exit; end; //读卡 iRet := SDT_ReadBaseMsg(Com,

pucCHMsg, uiCHMsgLen, pucPHMsg, uiPHMsgLen, 0); if (iRet<> $90) then begin

ScreenErrorinfo('读卡时发生错误!请不要移动身份证.',iRet); SDT_ClosePort(Com); exit; end;

//读卡代码略

//关闭串口

iRet := SDT_ClosePort(Com); if (iRet<> $90) then begin

ScreenErrorinfo('关闭串口发生错误!',iRet);

二代证系统终端API使用手册

exit; end;

6.函数返回码列表 API返回值列表: 类 别 返回值 (16进制) 成功信息 90 91 9F SAM通信 01 02 03 04 05 06 10 11 SAM命令错 21 23 80 81 31 32 33 34 40 41 50 61 60 66 意 义 操作成功 没有该项内容 返回找卡成功信息 端口打开失败/端口尚未打开/端口号不合法 PC接收超时,在规定的时间内未接收到规定长度的数据。 PC判断校验和错 USB设备未配置 该SAM串口不可用,只在SDT_GetCOMBaud时才有可能返回 USB设备被禁用 SAM判断校验和错 SAM接收超时,在规定的时间内未接收到规定长度的数据。 接收业务终端的命令错误,包括命令中的各种数值或逻辑搭配错误 越权的操作申请 找卡不成功 选卡不成功 卡认证机具失败 机具认证卡失败 信息验证错误 尚未找卡,不能进行对卡的操作 无法识别的卡类型 读卡操作失败 写卡操作失败 用户登录失败 自检失败,不能接收命令 KDC没有下载正式密钥 与ID卡相关 SAM状态

二代证系统终端API使用手册

相片解码函数使用说明

内蒙古银安科技开发有限责任公司

一、概述

本手册是相片解码函数的定义格式、调用方法和返回值的说明。

二代证系统终端API使用手册(验证API)

二、定义

应用函数开发包含下列文件:

WltRS.h API函数原型定义 WltRS.lib API函数的VC开发包 WltRS.dll API函数的动态联接库 sdtapi.dll 关联的动态联接库 适用操作系统:

Windows: 需要 Windows 98、Windows 2000或以后版本 适用开发语言:

Visual C++ 5.0 及以后版本 Visual Basic 5.0 及以后版本 DEPHI 3.0 及以后版本 PowerBuilder 6.0 及以后版本

三、函数列表

GetBmp(char * Wlt_File,int intf) wlt文件解码成bmp文件;

四、函数说明

原 型:int GetBmp(char * Wlt_File,int intf); 说 明:本函数用于将wlt文件解码成bmp文件。 参 数:Wlt_File ----- wlt文件名

intf ----- 阅读设备通讯接口类型(1—RS-232C,2—USB) 返 回 值:生成*.bmp文件和以下返回信息 值 意义 1 相片解码解码正确 0 调用sdtapi.dll错误 -1 相片解码错误 -2 wlt文件后缀错误 -3 wlt文件打开错误 -4 wlt文件格式错误 -5 软件未授权 -6 设备连接错误 例(以Delphi为例)

var

I, j, iRet,Com : integer;//Com端口号 i := 256; j := 1024;

iRet := SDT_ReadBaseMsgToFile(Com, 'tmpinfo',i, 'tmpinfo.wlt',j,0); if (iRet<> $90) then begin

ScreenErrorinfo('读相片时发生错误!请不要移动身份证.',iRet);

二代证系统终端API使用手册(验证API)

SDT_ClosePort(Com); exit; end;

iRet := GetBmp('tmpinfo.wlt',1); if (iRet<> 1) then begin

ScreenErrorinfo('解析相片时发生错误!',iRet); SDT_ClosePort(Com); exit; end;

五、注意事项

1、 wlt文件的后缀要固定为”.wlt”,如:xp.wlt,相片解码成xp.bmp; 2、 本函数要与sdtapi.dll关联使用,并确认通讯端口处于关闭状态;

3、 在使用前,请确认授权文件termb.lic是否在你的PC机C:\\根目录下。

本文来源:https://www.bwwdw.com/article/t4no.html

Top