高级应用编程接口是提供给终端上的应用程序用来与接口设备进行交互操作的函数集。
注:在以下的描述中,使用C语言风格来说明高级应用编程接口中的函数。
1. "打开设备"函数
函数:
int ICC_Reader_Open(void);
功能:
该函数通知终端操作系统打开与接口设备所对应的终端设备端口,以便两者建立通信的逻辑关系。
参数说明:
该函数无参数。
返回值:
如果函数执行成功,则返回值为不小于0的设备句柄;否则,表示函数执行失败,其含义由操作系统确定。
2. "关闭设备"函数
函数:
int ICC_Reader_Close(int ReaderHandle);
功能:
该函数通知操作系统关闭所指定的设备。
参数说明:
ReaderHandle:接口设备句柄。
返回值:
如果函数执行成功,则返回值为0;否则,表示函数执行失败,其含义由操作系统确定。
3."复位"函数
函数:
int ICC_Reader_Rest(int ReaderHandle, int ICC_Slot_No,char * Response,int*RespLen);
功能:
该函数要求接口设备等待一个非接触卡进场或者ICC插入并对其进行冷复位或者热复位。
参数说明:
(1)ReaderHandle:接口设备句柄;
(2)ICC_Slot_No:卡槽号,非接触卡槽:0,SAM1:1…;
(3)Response:指向存放响应数据的存储区的指针。
(4)RespLen返回值长度。
返回值:
如果函数执行成功,则返回值为0;否则,表示函数执行失败,其含义由操作系统确定。存储区中返回ICC的复位应答字节和存储区中的字节数;如果对ICC复位不成功,则存储区不返回任何数据.
4. "卡下电"函数
函数:
int ICC_Reader_PowerOff (int ReaderHandle, int ICC_Slot_No,);
功能:
该函数要求接口设备撤消与ICC之间的电气连接。。
参数说明:
(1)ReaderHandle:接口设备句柄;
(2)ICC_Slot_No:卡槽号,非接触卡槽:0,SAM1:1…;
返回值:
如果该函数成功执行,则返回值为0;否则,返回出错代码值。
5. 应用命令函数
函数:
int ICC_Reader_Application( intReaderHandle,
int ICC_Slot_No,
intLength_of_Command_APDU,
char *Command_APDU,
char *Response_APDU,
int *RespLen);
功能:
该函数用于将符合GB/T16649.3 中所规定的基本和特殊功能的行业间交换用命令发送给指定的卡槽上的卡,并获取对应的响应。
参数说明:
(1)ReaderHandle:接口设备句柄;
(2)ICC_Slot_No:卡槽号,非接触卡槽:0,SAM1:1…;
(3)Length_of_Command_APDU:其值为Command_APDU所指向缓冲区中的字节数;
(4)Command_APDU:指向存放命令的缓冲区的指针;
(5)Response:指向存放响应数据的存储区的指针。
(6)RespLen返回值长度。
返回值:
如果函数执行成功,则返回值为0;否则,表示函数执行失败,其含义由操作系统确定。
6. 函数返回值
表A-1定义了高级应用编程接口函数的返回值。
表A-1 高级编程接口函数的返回值