非接模块声明

1 模块说明

用于操作设备的非接设备—–M卡。

2 包路径

com.histonepos.npsdk.picccard

3 AIDL文件名

IPiccCardService.aidl

4 接口清单

4.1 非接初始化(piccOpen)

接口原型 int piccOpen();
接口功能 非接初始化
参数说明 入参:无
出参:无
返回值 成功 0
失败 负值
补充说明 注意!!! 初始化与piccClose是对应的,用完之后需要piccClose

4.2 非接释放(piccClose)

接口原型 void piccClose();
接口功能 磁卡释放
参数说明 入参:无
出参:无
返回值

4.3 设置超时(setTimeout)

接口原型 void setTimeout (int t);
接口功能 设置超时,单位秒
参数说明 入参:t 秒
出参:无
返回值

4.4 设置事件监听(setPiccListener)

接口原型 void setPiccListener (IPiccEventListener listener);
接口功能 设置事件监听,并开始检卡
参数说明 入参:listener
出参:无
返回值

4.5 停止检卡(stopCheck)

接口原型 void stopCheck ();
接口功能 停止检卡
参数说明 入参:无
出参:无
返回值

4.6 M卡认证(piccMfAuthBlock)

接口原型 int piccMfAuthBlock(byte type, byte blockaddr,in byte[] keydata, in byte[] serialInfo1);
接口功能 认证
参数说明 入参:type 认证类型,使用 KEYA,KEYB 取值定义:0x00:KEYA 0x01:KEYB
blockaddr 要认证的块号
keydata 值(明文传入) 6bytes
serialInfo1 复位信息(设备卡号,不包含长度信息)
出参:无
返回值 成功 0
失败 其他

4.7 M卡读数据(piccMfReadBlock)

接口原型 int piccMfReadBlock(byte blockaddr, inout BytesArray blockdata);
接口功能 读数据
参数说明 入参:blockaddr 块号
出参: blockdata 成功时返回的数据 共16字节数据
返回值 成功 0
失败 其他

4.8 M卡写数据(piccMfWriteBlock)

接口原型 int piccMfWriteBlock(byte blockaddr, in byte[] data);
接口功能 写数据
参数说明 入参: blockaddr 块号
data 待写入数据, 必须是16个字节的数据,若不足内部补零0x00
出参:无
返回值 成功 0
失败 其他

4.9 M卡初值(piccMfInitValue)

接口原型 int piccMfInitValue (byte blockaddr, int value);
接口功能 初值
参数说明 入参:blockaddr 块号
value
出参: 无
返回值 成功 0
失败 其他
补充说明 998FPM_V30读卡器不支持

4.10 M卡加值(piccMfAddValue)

接口原型 int piccMfAddValue(byte blockaddr, int value);
接口功能 加值
参数说明 入参:blockaddr 块号
value
出参: 无
返回值 成功 0
失败 其他
补充说明 998FPM_V30读卡器不支持

4.11 M卡减值(piccMfReduceValue)

接口原型 int piccMfReduceValue(byte blockaddr, int value);
接口功能 减值
参数说明 入参:blockaddr 块号
value
出参: 无
返回值 成功 0
失败 其他
补充说明 998FPM_V30读卡器不支持

4.12 非接检卡(piccDetect)

接口原型 int piccDetect(byte mode,
out byte []cardType,
out byte []serialInfo,
out byte []cid,
out byte []other);
接口功能 非接检卡
参数说明 入参:* @param Mode
* 0x00-搜寻A型卡和B型卡一次, 此模式适用于需要增强多卡检测功能的场合
* 0x01-搜寻A型卡和B型卡一次;此模式为EMV寻卡模式,通常使用该模式
* ‘a’或‘A’-只搜寻A型卡一次
* ‘b’或’B’-只搜寻B型卡一次
* ‘m’或‘M’只搜寻M1卡一次

出参: * @param CardType 存放卡片类型,目前均返回一字节的类型值
0x01:TYPE A
0x02:TYPE B
0x04:ISO15693 暂不支持
0x08:ICODE1 暂不支持
0x10:MIFARE1
0x20:Mifare S50
0x40:Mifare One S70
* @param SerialInfo 存放卡片序列号的缓冲区
* L+V;L:一字节的序列号长度,V:长度为L的序列号信息。一般序列号为4字节、7字节或10字节
* @param CID 存放卡片逻辑通道号的缓冲区指针,该通道号由驱动内部分配和指定,取值范围为0~14
目前仅允许感应区内存在一张卡,故CID[0]总是返回0x00
* @param Other 存放详细错误代码、卡片响应信息等内容的缓冲区指针,可为NULL
* Other:错误号(2字节)+卡片相关信息(L+V)
卡片相关信息具体为:
对于A型卡,返回卡片的ATS(Answer To Select)信息,其长度不超过62字节
对于B型卡,返回卡片的ATQB(Answer To Request B)信息,其长度为12字节
对于M1卡,返回卡片的ATQA(Answer To Request A)信息,其长度为2字节
有关ATS、ATQB、ATQA的详细信息请查阅ISO14443-3、ISO14443-4的相关部分。
Other[…299]:Other指向的缓冲区大小至少应为300字节
返回值 成功 0
失败 负值
补充说明 与setPiccListener不可同时使用

4.13 发送APDU命令(isoCommand)

接口原型 byte[] isoCommand(byte[] data)
接口功能 磁卡
参数说明 入参:data apdu指令
出参: apduRecv 从PICC卡返回的数据结构,含SWA SWB等
返回值 返回值里的第一,第二个字节,分别是返回的SWA和SWB。

4.14 获取非接卡片类型(piccGetCardType)

接口原型 Byte piccGetCardType ();
接口功能 获取非接卡片类型
参数说明 入参:0x01:TYPE A
0x02:TYPE B
0x04:ISO15693 暂不支持
0x08:ICODE1 暂不支持
0x10:MIFARE1
0x20:Mifare S50
0x40:Mifare One S70
未执行piccDetec时,返回0x00
出参: 无
返回值 成功 0
失败 其他
补充说明 此函数应在piccDetect函数调用后使用且返回的piccDetect的参数返回类型一致

5 磁条事件监听器

interface IPiccEventListener {
   /**
    * 非接卡激活成功
    */
   void onCardActivate(byte[] serialInfo);

   /**
     * 检卡超时
    */
    void onTimeout();
}
作者:admin  创建时间:2024-06-17 18:01
最后编辑:admin  更新时间:2024-06-18 09:46