DONSEE东信智能 - 身份证社保卡读卡智能终端应用服务商

eastcoms@qq.com
400-6722-705
首页 > 服务支持专区 > 产品支持 > SDK开发包和软件下载

EST-100/EST-100GS/EST-J13X系列Android开发包(含身份证、社保卡、CPU、M1、磁条卡、银行卡等卡)

来源:www.eastcoms.com   标签:开发包 安卓 Android EST-100 东信   发布时间: 2019-8-10 16:03:25

广东东信智能科技有限公司EST免驱系列产品

广东东信智能科技有限公司DONSEE EST-100系列Android开发包(含身份证、社保卡、CPU、M1、磁条卡、银行卡等卡),支持EST-100、EST-100G、EST-J13X、EST-100GS等机型,仅供开发人员和测试人员使用,包括armeabi/armeabi-v7a/armeabi-v8a/x86/x64等安卓处理器使用。

开发包分为Android Studio编译和Eclipse两种编译环境,请根据实际需要选择对应的版本下载。

Android平台开发包下载地址:


【新】安卓SDK V1.0.38下载↓

【新】安卓Web网页版本V1.0.8 SDK下载↓

【新】安卓SDK V1.0.36下载↓

【新】安卓SDK V1.0.37下载↓


安卓SDK V1.0.36下载

DONSEE系列多功能读写器

API接口规范V1.5

广东东信智能科技有限公司

www.eastcoms.com

2022.07.18

1、东信智能读写器(SDK)简介5

2、函数说明5

2.1通用函数5

2.1.1 Donsee_Open打开设备5

2.1.2 Donsee_Close关闭设备5

2.1.3 Donsee_Beep蜂鸣器函数5

2.1.4 Donsee_Version读取设备版本6

2.1.5 Donsee_WRSN 读写序列号(SN)6

2.1.6 Donsee_SwitchRF设备天线开关6

2.2身份证7

2.2.1 Donsee_ReadIDCard读取身份证信息7

2.2.2 Donsee_ReadSAMID 读取模块SAM码7

2.2.3 Donsee_ReadIDCardUid 读取身份证UID8

2.3社保卡8

2.3.1 Donsee_ReadSSCard读取社保卡信息8

2.3.2 Donsee_ReadSSCard_NoPsam 无PSAM卡读取社保卡信息9

2.4非接触类卡片前置函数9

2.4.1 Donsee_ICRequest请求卡片9

2.4.2 Donsee_ICAnticoll防碰撞10

2.4.3 Donsee_ICSelect选择卡片10

2.5 TypeA、TypeB卡10

2.5.1 Donsee_SetTypeA设置为TypeA10

2.5.2 Donsee_SetTypeB设置为TypeB10

2.5.3 Donsee_PowerOnTypeA TypeA卡上电复位11

2.5.4 Donsee_PowerOnTypeB TypeB卡上电复位11

2.5.5 Donsee_APDU执行APDU命令11

2.6 M1卡12

2.6.1 Donsee_M1VerifyPass M1卡认证秘钥12

2.6.2 Donsee_M1VerifyPassHEX M1卡认证秘钥12

2.6.3 Donsee_M1Read M1卡读卡12

2.6.4 Donsee_M1Write M1卡写卡13

2.6.5 Donsee_M1Initval M1卡初始化13

2.6.6 Donsee_M1Increment M1卡增值13

2.6.7 Donsee_M1Decrement M1卡减值14

2.6.8 Donsee_M1Readval M1卡读值14

2.6.9 Donsee_M1LoadKey M1卡装载密钥14

2.6.10 Donsee_ReadICUid读取M1和CPU卡的Uid卡号15

2.7接触CPU卡15

2.7.1 Donsee_PowerOn CPU卡上电复位15

2.7.2 Donsee_ColdPowerOn 冷复位15

2.7.3 Donsee_HotPowerOn 热复位16

2.7.4 Donsee_PowerOn_APDU CPU卡执行APDU命令16

2.7.5 Donsee_PowerOn_LongAPDU CPU卡执行APDU命令17

2.7.6 Donsee_PowerOff下电17

2.7.7 Donsee_GetStatus获取卡座状态17

2.8 15693卡18

2.8.1 Donsee_15693_Find 15693寻卡18

2.8.2 Donsee_15693_Info 15693获取卡片详细信息18

2.8.3 Donsee_15693_Read 15693读卡18

2.8.4 Donsee_15693_Write 15693写卡19

2.8.5 Donsee_15693_WriteAFI 15693写AFI19

2.8.6 Donsee_15693_LockAFI 15693锁AFI19

2.8.7 Donsee_15693_WriteDSFID 15693写DSFID19

2.8.8 Donsee_15693_LockDSFID 15693锁DSFID20

2.8.9 Donsee_15693_LockDataBlock用于锁定块内容20

2.9 SLE4442卡20

2.9.1 Donsee_4442_PowerOn 4442卡上电20

2.9.2 Donsee_4442_PowerOff 4442卡下电21

2.9.3 Donsee_4442_Read 4442卡读数据21

2.9.4 Donsee_4442_Write 4442卡写数据21

2.9.5 Donsee_4442_Verify 4442卡认证密钥22

2.9.6 Donsee_4442_Change 4442卡修改密钥22

2.9.7 Donsee_4442_ReadProtect 4442卡读保护数据22

2.9.8 Donsee_4442_WriteProtect 4442卡写保护数据22

2.9.9 Donsee_4442_ReadCount 4442卡密钥剩余认证次数23

2.10磁条卡23

2.10.1 Donsee_ReadMagCard磁条卡读卡23

2.10.2 Donsee_ReadMagType设置输出模式24

2.11北京通24

2.11.1 Donsee_ReadBJTIDCard读取北京通信息24

2.11.2 Donsee_ReadBJTIDCard_Photo读取北京通照片25

2.12辅助类函数25

2.12.1 Donsee_HexToStr 16进制数组转字符串25

2.12.2 Donsee_StrToHex 字符串转16进制数组25

3、状态码26

4、卡片调用顺序27

4.1 TypeA卡27

4.2 TypeB卡27

4.3 M1卡28

4.4 4442卡28

4.5 接触CPU卡28

1、智能读写器(SDK)简介

本文档描述了广东东信智能科技有限公司DONSEE系列读写器SDK的函数定义、调用方法、参数以及返回值说明,供开发人员进行二次开发时使用。

2、函数说明

2.1通用函数

2.1.1 Donsee_Open打开设备

定义:打开设备端口

原型:

int Donsee_Open(String dev_Name)

参数:

dev_Name[in]windows:USB设备传入”USB”;串口设备传入”COM1” “COM2”等

返回值:

0:打开设备成功;

非0:打开设备失败,参考状态码

2.1.2 Donsee_Close关闭设备

定义:关闭设备端口

原型:

int Donsee_Close()

参数:无

返回值:

0:关闭设备成功;

非0:关闭设备失败,参考状态码

2.1.3 Donsee_Beep蜂鸣器函数

定义:调用设备蜂鸣器

原型:

int Donsee_Beep()

参数:无

返回值:

0:调用蜂鸣器成功;

非0:调用蜂鸣器失败,参考状态码

2.1.4 Donsee_Version读取设备版本

定义:读取设备版本号

原型:

int Donsee_Version (byte[] chVersion)

参数:

chVersion[out]设备版本号

返回值:

>0:获取设备版本成功并作为有效数据长度;

<=0:获取设备版本失败,参考状态码

2.1.5 Donsee_SwitchRF设备天线开关

定义:设备天线开关

原型:

int Donsee_SwitchRF (int nType)

参数:

nType0,打开设备天线;1,关闭设备天线

返回值:

0:天线开关操作成功;

非0:天线开关操作失败,参考状态码

2.2身份证

public class IDINFO extends Structure{

public byte[]  name  = new byte[40];              /*中文姓名*/

public byte[] ENfullname = new byte[40];              /*英文姓名*/

public byte[] sex = new byte[10];                /*性别*/

public byte[] people = new byte[20];            /*民族*/

public byte[] address = new byte[200];                /*地址*/

public byte[] birthday = new byte[50];   /*出生日期(YYYYMMDD)*/

public byte[] signdate = new byte[50];   /*发证日期(YYYYMMDD)*/

public byte[] validterm = new byte[50];       /*有效日期(YYYYMMDD)*/

public byte[] number = new byte[40];            /*证件号码*/

public byte[] organs = new byte[50];/*发证机关(或外国人永久居住正-当次申请受理机关)*/

public byte[] Nationality = new byte[200];                /*国籍*/

public byte[] Photo = new byte[1024];    /*读取二代证电子信息时保存照片数据信息*/

public byte[] Other = new byte[200];        /*其他*/

public byte[] passNu = new byte[24];            /*通行证号*/

public byte[] signCount = new byte[8];            /*签发数次*/

public byte[] certVersion = new byte[8];            /*证件版本*/

public  byte certType;/*卡片类型,”0”大陆身份证” ”,I”外国人,”J”港澳台*/

public byte[] figData = new byte[1024];/*指纹信息*/

}

2.2.1 Donsee_ReadIDCard读取身份证信息

定义:读取身份证信息

原型: int Donsee_ReadIDCard (int nType, String szPath,IDINFO idInfo,byte[] pszMsg);

参数:

nType [in]:设置身份证读卡类型:0,文本信息;1,文本+照片;2,文本+照片+指纹

szPath[in]:获取二代证头像路径

idinfo [out];获取的身份证信息

pszMsg [out];错误信息

返回值:

0:读取身份证信息成功;

非0:读取身份证信息失败,参考状态码

2.2.2 Donsee_ReadSAMID 读取模块SAM码

定义:读取身份证模块SAM码

原型:int Donsee_ReadSAMID (byte[] chSAM);

参数:

chSAM [out] 身份证模块SAM码

返回值:

0:读取身份证模块SAM码成功;

非0:读取身份证模块SAM码失败,参考状态码

2.2.3 Donsee_ReadIDCardUid 读取身份证UID

定义:读取身份证UID

原型:int Donsee_ReadIDCardUid(byte[] chUID);

参数:

chUID [out] 身份证UID码

返回值:

0:读取身份证UID成功;

非0:读取身份证UID失败,参考状态码

2.3社保卡

class SSCardIDINFO extends Structure {

public byte[] name  = new byte[40];        /*姓名*/

public byte[] sex  = new byte[10];/*性别*/

public byte[] nation  = new byte[20];/*民族*/

public byte[] birthday  = new byte[50];/*出生日期(YYYYMMDD)*/

public byte[] signdate  = new byte[50];/*发证日期(YYYYMMDD)*/

public byte[] validterm  = new byte[50];/*有效日期(YYYYMMDD)*/

public byte[] cardnumber  = new byte[40];/*卡号*/

public byte[] idnumber  = new byte[40];/*社会保障号码(身份证号)*/

public byte[] city  = new byte[64] ;/*城市代码*/

public byte[] cardveVrsion  = new byte[8] ;/*社保卡版本*/

public byte[] Other  = new byte[200];/*其他*/

}

2.3.1 Donsee_ReadSSCard读取社保卡信息

定义:读取二代、三代社保卡

原型:int Donsee_ReadSSCard (int nSlotPsam,SSCardIDINFO sciCardInfo,byte[] errInfor);

参数:

nSlotPsam [int] PSAM存放卡座,0x11 SAM1, 0x12 SAM2, 0x13 SAM3, 0x14 SAM4

cardInfo [out] 社保卡信息

arrChMsg [out] 错误信息

返回值:

0:读取社保卡成功;

非0:读取社保卡失败,参考状态码

备注:二代社保卡无需PSAM卡,只支持接触式读取。三代社保卡必须配备PSAM卡,支持接触、非接两种方式读取。

2.4非接触类卡片前置函数

2.4.1 Donsee_ICRequest请求卡片

定义:请求卡片

原型:

int Donsee_ICRequest ()

参数:

返回值:

0:请求卡片成功;

非0:请求卡片失败,参考状态码

2.4.2 Donsee_ICAnticoll防碰撞

定义:卡片防碰撞

原型:

int Donsee_ICAnticoll (byte[] chUID)

参数:

chUID[out]卡片序列号Uid

返回值:

>0:卡片防碰撞成功;

<=0:卡片防碰撞失败,参考状态码

2.4.3 Donsee_ICSelect选择卡片

定义:选择卡片

原型:

int Donsee_ICSelect (byte nCardType)

参数:

nCardType [in]0x41 表示 typeA 及M1 卡,0x42 表示 typeB卡

返回值:

0:选择卡片成功;

非0:选择卡片失败,参考状态码

2.5 TypeA、TypeB卡

2.5.1 Donsee_SetTypeA设置为TypeA

定义:设置为TypeA卡

原型:

int Donsee_SetTypeA ()

参数:

返回值:

0:设置为TypeA卡成功;

非0:设置为TypeA卡失败,参考状态码

2.5.2 Donsee_SetTypeB设置为TypeB

定义:设置为TypeB卡

原型:

int Donsee_SetTypeB ()

参数:

返回值:

0:设置为TypeB卡成功;

非0:设置为TypeB卡失败,参考状态码

2.5.3 Donsee_PowerOnTypeA TypeA卡上电复位

定义:TypeA上电

原型:

int Donsee_ PowerOnTypeA (byte[] Response)

参数:

Response [out]卡片复位信息(ATR)

返回值:

>0:TypeA上电成功并作为有效数据长度;

<=0:TypeA上电失败,参考状态码

2.5.4 Donsee_PowerOnTypeB TypeB卡上电复位

定义:TypeB上电

原型:

int Donsee_PowerOnTypeB(byte[] Response)

参数:

Response [out]卡片复位信息(ATR)

返回值:

>0:TypeB上电成功并作为有效数据长度;

<=0:TypeB上电失败,参考状态码

2.5.5 Donsee_APDU执行APDU命令

定义:TypeA|TypeB执行APDU命令

原型:

int Donsee_APDU (byte[] Command_APDU, byte[] Response_APDU);

参数:

Command_APDU [in]下发APDU命令(字符串”0084000008”)

Response_APDU[out]执行APDU相应数据(字符串如”9000”)

返回值:

>0:执行APDU命令成功并作为有效数据长度;

<=0:执行APDU命令失败,参考状态码

2.6 M1卡

2.6.1 Donsee_M1VerifyPass M1卡认证秘钥

定义:M1卡认证秘钥

原型:

int Donsee_M1VerifyPass (byte nMode, byte nSecNr,byte[] PassWord);

参数:

nMode [in]认证模式, 0x00 认证KeyA|0x04  认证KeyB

nSecNr [in]扇区号 (0~15)

PassWord [in]密钥(如:”FFFFFFFFFFFF”)

返回值:

0:M1卡认证秘钥成功;

非0:M1卡认证秘钥失败,参考状态码

2.6.2 Donsee_M1VerifyPassHEX M1卡认证秘钥

定义:M1卡认证秘钥

原型:

int Donsee_M1VerifyPassHex (byte nMode, byte nSecNr,byte[] PassWord);

参数:

nMode [in]认证模式, 0x00 认证KeyA|0x04  认证KeyB

nSecNr [in]扇区号 (0~15)

PassWord [in]密钥(如:{0xff,0xff,0xff ,0xff ,0xff ,0xff })

返回值:

0:M1卡认证秘钥成功;

非0:M1卡认证秘钥失败,参考状态码

2.6.3 Donsee_M1Read M1卡读卡

定义:M1卡读卡

原型:

int Donsee_M1Read(byte Addr, byte[]chData)

参数:

Addr [in]块号(S50该值范围0~63| S70该值范围0~255)

chData [out]读取数据

返回值:

>0:M1卡读卡成功并作为有效数据长度;

<=0:M1卡读卡失败,参考状态码

2.6.4 Donsee_M1Write M1卡写卡

定义:M1卡写卡

原型:

int Donsee_M1Write(byte Addr,byte[]chData)

参数:

Addr [in]块号(S50该值范围0~63| S70该值范围0~255)

chData [in]读取数据

块地址计算公式:块地址=扇区号*4+当前块号

返回值:

0:M1卡写卡成功;

非0:M1卡写卡失败,参考状态码

2.6.5 Donsee_M1Initval M1卡初始化

定义:M1卡初始化

原型:

int Donsee_M1Initval (byte nAddr, long nValue)

参数:

nAddr[in]块号(S50该值范围0~63| S70该值范围0~255)

nValue [int]数值

返回值:

0:M1卡初始化成功;

非0:M1卡初始化失败,参考状态码

2.6.6 Donsee_M1Increment M1卡增值

定义:M1卡增值

原型:

int Donsee_M1Increment (byte nAddr, long nValue)

参数:

nAddr[in]块号(S50该值范围0~63| S70该值范围0~255)

nValue [int]数值

返回值:

0:M1卡增值成功;

非0:M1卡增值失败,参考状态码

2.6.7 Donsee_M1Decrement M1卡减值

定义:M1卡减值

原型:

int Donsee_M1Decrement (byte nAddr, long nValue)

参数:

nAddr[in]块号(S50该值范围0~63| S70该值范围0~255)

nValue [int]数值

返回值:

0:M1卡减值成功;

非0:M1卡减值失败,参考状态码

2.6.8 Donsee_M1Readval M1卡读值

定义:M1卡读值

原型:

int Donsee_M1Readval (byte nAddr, long[] nValue)

参数:

nAddr[in]块号(S50该值范围0~63| S70该值范围0~255)

nValue [out]数值

返回值:

0:M1卡读值成功;

非0:M1卡读值失败,参考状态码

2.6.9 Donsee_M1LoadKey M1卡装载密钥

定义:装载M1卡密钥到设备

原型:

int Donsee_M1LoadKey (byte nMode, byte nSecNr, byte[]PassWord);

参数:

nMode [in]认证模式, 0x00 认证KeyA|0x04  认证KeyB

nSecNr [in]扇区号 (0~15)

PassWord [int]待下载到设备的密钥

例子:

byte key[10]={0xff,0xff,0xff,0xff,0xff,0xff};

int nRe = Donsee_M1LoadKey (0,0,key);//下载扇区0的KeyA密钥至设备里

返回值:

0:M1卡装载密钥成功;

非0:M1卡装载密钥失败,参考状态码

2.6.10 Donsee_ReadICUid读取M1和CPU卡的Uid卡号

定义:读取M1和CPU卡UID

原型:

int Donsee_ReadICUid (byte[] chUID)

参数:

chUID[out]卡片序列号

返回值:

0:读取M1和CPU卡的Uid卡号成功;

非0:读取M1和CPU卡的Uid卡号失败,参考状态码

2.7接触CPU卡

2.7.1 Donsee_PowerOn CPU卡上电复位

定义:CPU卡上电复位

原型:

int Donsee_PowerOn (byte nSlotNo, byte[] chResponse)

参数:

nSlotNo[in]卡座选择:0x01 大卡座, 0x02:副卡座 ;

0x11:SAM1卡座;0x12:SAM2卡座;

0x13:SAM3卡座;0x14:SAM4卡座

chResponse [out]卡片返回复位信息数据

返回值:

>0:卡片复位成功并作为有效数据长度;

<=0:卡片复位失败,参考状态码

2.7.2 Donsee_ColdPowerOn 冷复位

定义:接触CPU卡冷复位

原型:

int Donsee_ColdPowerOn (byte nSlotNo, byte[] chResponse)

参数:

nSlotNo[in]卡座选择:0x01 大卡座, 0x02:副卡座 ;

0x11:SAM1卡座;0x12:SAM2卡座;

0x13:SAM3卡座;0x14:SAM4卡座

chResponse [out]卡片返回复位信息数据

返回值:

>0:卡片复位成功并作为有效数据长度;

<=0:卡片复位失败,参考状态码

2.7.3 Donsee_HotPowerOn 热复位

定义:接触CPU卡热复位

原型:

int Donsee_HotPowerOn (byte nSlotNo, byte[] chResponse)

参数:

nSlotNo[in]卡座选择:0x01 大卡座, 0x02:副卡座 ;

0x11:SAM1卡座;0x12:SAM2卡座;

0x13:SAM3卡座;0x14:SAM4卡座

chResponse [out]卡片返回复位信息数据

返回值:

>0:卡片复位成功并作为有效数据长度;

<=0:卡片复位失败,参考状态码

2.7.4 Donsee_PowerOn_APDU CPU卡执行APDU命令

定义:执行APDU命令

原型:

int Donsee_PowerOn_APDU(byte nSlotNo,

byte[] Command_APDU,

byte[] Response_APDU);

)

参数:

nSlotNo[in]卡座选择:0x01 大卡座, 0x02:副卡座 ;

0x11:SAM1卡座;0x12:SAM2卡座;

0x13:SAM3卡座;0x14:SAM4卡座

Command_APDU [in]下发APDU命令(字符串”0084000008”)

Response_APDU[out]执行APDU相应数据(字符串如”9000”)

返回值:

>0:执行APDU命令成功并作为有效数据长度;

<=0:执行APDU命令失败,参考状态码

2.7.5 Donsee_PowerOn_LongAPDU CPU卡执行APDU命令

定义:执行APDU命令

原型:

int Donsee_PowerOn_LongAPDU (byte nSlotNo,

byte[] Command_APDU,

byte[] Response_APDU);

)

参数:

nSlotNo[in]卡座选择:0x01 大卡座, 0x02:副卡座 ;

0x11:SAM1卡座;0x12:SAM2卡座;

0x13:SAM3卡座;0x14:SAM4卡座

Command_APDU [in]下发APDU命令(字符串”0084000008”)

Response_APDU[out]执行APDU相应数据(字符串如”9000”)

返回值:

>0:执行APDU命令成功并作为有效数据长度;

<=0:执行APDU命令失败,参考状态码

2.7.6 Donsee_PowerOff下电

定义:CPU卡下电

原型:

int Donsee_PowerOff (byte nSlotNo)

参数:

nSlotNo[in]卡座选择:0x01 大卡座, 0x02:副卡座 ;

0x11:SAM1卡座;0x12:SAM2卡座;

0x13:SAM3卡座;0x14:SAM4卡座

返回值:

0:CPU卡下电成功;

非0:CPU卡下电失败,参考状态码

2.7.7 Donsee_GetStatus获取卡座状态

定义:获取卡座状态

原型:

int Donsee_GetStatus(byte nSlotNo,int* nStatus)

参数:

nSlotNo[in]卡座选择:0x01 大卡座, 0x02:副卡座 ;

0x11:SAM1卡座;0x12:SAM2卡座;

0x13:SAM3卡座;0x14:SAM4卡座

nStatus[out]卡座状态:为 0 表示有卡上电,1表示有卡未上,2表示无卡

返回值:

0:获取卡座状态成功;

非0:获取卡座状态失败,参考状态码

2.8 15693卡

2.8.1 Donsee_15693_Find 15693寻卡

定义:15693寻卡

原型:

int Donsee_15693_Find (byte[] chUID)

参数:

chUID [out]寻卡得到8字节卡片数据;

返回值:

0:15693寻卡成功;

非0:15693寻卡失败,参考状态码

2.8.2 Donsee_15693_Info 15693获取卡片详细信息

定义:获取15693卡详细信息

原型:

int Donsee_15693_Info (byte[] chCardInfo)

参数:

chCardInfo [out]14字节卡片数据;

返回值:

0:获取15693卡详细信息成功;

非0:获取15693卡详细信息失败,参考状态码


2.8.3 Donsee_15693_Read 15693读卡

定义:15693读卡

原型:

int Donsee_15693_Read (byte nBlkAdd, byte[] chResult)

参数:

nBlkAdd[in]块地址

chResult [out]14字节卡片数据;

返回值:

>0:15693读卡成功并作为有效数据长度;

<=0:15693读卡失败,参考状态码

2.8.4 Donsee_15693_Write 15693写卡

定义:15693写卡

原型:

int Donsee_15693_Write (byte nBlkAdd, byte[] chData)

参数:

nBlkAdd[in]块地址

chData [in]要写入的4字节卡片数据;

返回值:

0:15693写卡成功;

非0:15693写卡失败,参考状态码

2.8.5 Donsee_15693_WriteAFI 15693写AFI

定义:15693写AFI

原型:

int Donsee_15693_WriteAFI (byte[] data, byte[] Response)

参数:

data [in]data[0] 为0表示写AFI,为1则表示锁AFI

Response [in]null

返回值:

0:15693写AFI成功;

非0:15693写AFI失败,参考状态码

2.8.6 Donsee_15693_LockAFI 15693锁AFI

定义:15693写AFI

原型:

int Donsee_15693_LookAFI (byte[] data, byte[] Response)

参数:

data [in]data[0] 为0表示写AFI,为1则表示锁AFI

Response [in]null

返回值:

0:15693锁AFI成功;

非0:15693锁AFI失败,参考状态码

2.8.7 Donsee_15693_WriteDSFID 15693写DSFID

定义:15693写DSFID

原型:

int Donsee_15693_WriteDSFID (byte[] data, byte[] Response)

参数:

data [in]data[0] 为0表示写DSFID,为1则表示锁DSFID

Response [in]null

返回值:

0:15693写DSFID成功;

非0:15693写DSFID 失败,参考状态码

2.8.8 Donsee_15693_LockDSFID 15693锁DSFID

定义:15693锁DSFID

原型:

int Donsee_15693_LockDSFID (byte[] data, byte[] Response a)

参数:

data [in]data[0] 为0表示写AFI,为1则表示锁AFI

Response [out]null;

返回值:

0:15693锁DSFID成功;

非0:15693锁DSFID失败,参考状态码

2.8.9 Donsee_15693_LockDataBlock用于锁定块内容

定义:用于锁定块内容。注意:此过程不可逆(不能解锁)块锁定后内容不能在修改。

原型:

int Donsee_15693_LockDataBlock(byte blk_add, byte[] chResult)

参数:

blk_add [in]块地址

chResult [out]返回数据

返回值:

0:15693锁块内容成功;

非0:15693锁块内容失败,参考状态码

2.9 SLE4442卡

2.9.1 Donsee_4442_PowerOn 4442卡上电

定义:4442卡上电

原型:

int Donsee_4442_PowerOn (byte[] chUID)

参数:

chUID [out]上电返回数据,4字节厂商代码

返回值:

>0:4442卡上电成功并作为有效数据长度;

<=0:4442卡上电失败,参考状态码

2.9.2 Donsee_4442_PowerOff 4442卡下电

定义:4442卡下电

原型:

int Donsee_4442_PowerOff ()

参数:

返回值:

0:4442卡下电成功;

非0:4442卡下电失败,参考状态码

2.9.3 Donsee_4442_Read 4442卡读数据

定义:4442卡读取数据

原型:

int Donsee_4442_Read (int nOffset, int nLen, byte[]chData)

参数:

nOffset[in]起始地址

nLen[in]读取数据长度

chData [iout]读取的数据内容

返回值:

>0:4442卡读取数据成功并作为有效数据长度;

<=0:4442卡读取数据失败,参考状态码

2.9.4 Donsee_4442_Write 4442卡写数据

定义:4442卡写入数据

原型:

int Donsee_4442_Read (int nOffset, int nLen, byte[]chData)

参数:

nOffset[in]起始地址

nLen[in]写入数据长度

chData [in]写入的数据内容

返回值:

0:4442卡写入数据成功;

非0:4442卡写入数据失败,参考状态码

2.9.5 Donsee_4442_Verify 4442卡认证密钥

定义:4442卡认证秘钥

原型:

int Donsee_4442_Verify(byte[]chKey)

参数:

chKey [in]秘钥数据,如unsigned  byte[] chKey={0xff,0xff,0xff};

返回值:

0:4442卡认证秘钥成功;

非0:4442卡认证秘钥失败,参考状态码

2.9.6 Donsee_4442_Change 4442卡修改密钥

定义:4442卡修改秘钥

原型:

int Donsee_4442_Change (byte[]chNewKey)

参数:

chNewKey [in]秘钥数据,如unsigned  byte[] chNewKey ={0xff,0xff,0xff};

返回值:

0:4442卡修改密钥成功;

非0:4442卡修改密钥失败,参考状态码

2.9.7 Donsee_4442_ReadProtect 4442卡读保护数据

定义:4442卡读取保护数据

原型:

int Donsee_4442_ReadProtect (int nOffset, int nLen, byte[]chData)

参数:

nOffset[in]起始地址,起始地址 需小于32

nLen[in]读取数据长度,数据长度 需小于32

chData [iout]读取的数据内容,返回值为一串00或01的数据串,如果为00代表已写保护,如果为01代表未写保护

返回值:

>0:4442卡读保护数据成功并作为有效数据长度;

<=0:4442卡读保护数据失败,参考状态码

2.9.8 Donsee_4442_WriteProtect 4442卡写保护数据

定义:4442卡写入保护数据,即固化数据,一旦写保护,数据将不能再修改

原型:

int Donsee_4442_WriteProtect (int nOffset, int nLen, byte[]chData)

参数:

nOffset[in]起始地址,起始地址 需小于32

nLen[in]读取数据长度,数据长度 需小于32

chData [in]读取的数据内容,返回值为一串00或01的数据串,如果为00代表已写保护,如果为01代表未写保护

返回值:

0:4442卡写保护数据成功;

非0:4442卡写保护数据失败,参考状态码

2.9.9 Donsee_4442_ReadCount 4442卡密钥剩余认证次数

定义:4442卡密钥剩余认证次数

原型:

int Donsee_4442_ReadCount (int[] nCount)

参数:

nCount [0]4442卡密钥剩余认次数

返回值:

0:获取4442卡密钥剩余认证次数成功;

非0:获取4442卡密钥剩余认证次数失败,参考状态码

2.10磁条卡

2.10.1 Donsee_ReadMagCard磁条卡读卡

定义:磁条卡读卡

原型:

int Donsee_ReadMagCard (byte ctime,int track, byte[]rlen, byte[]getdata)

参数:

ctime[in]超时时间,单位:秒

track [in]磁道(1~3)磁道1~~磁道3,track=4时表示全轨一次性刷出

为TLV格式,例如:010101020201020303010203

rlen [in]返回数据的长度

getdata [out]返回的数据

返回值:

0:磁条卡读卡成功;

非0:磁条卡读卡失败,参考状态码

2.11北京通

class BJTCardInfo {

public byte[] name= new byte[40];    /*姓名*/

public byte[] sex= new byte[10];/*性别*/

public byte[] cardnumber= new byte[40];/*北京通号*/

public byte[] nType= new byte[32] ;/*卡片类型*/

public byte[] cardName= new byte[40];/*证件名称*/

public byte[] organs= new byte[50];/*发卡机构*/

}

2.11.1 Donsee_ReadBJTIDCard读取北京通信息

定义:读取北京通信息

原型:

int Donsee_ReadBJTIDCard(BJTCardInfo bjtCardInfo,byte[] arrChMsg);

参数:

cardInfo [out] 北京通信息

arrChMsg [out] 错误信息

返回值:

0:读取北京通信息成功;

非0:读取北京通信息失败,参考状态码

2.11.2 Donsee_ReadBJTIDCard_Photo读取北京通照片

定义:读取北京通信息

原型:

int Donsee_ReadBJTIDCard_Photo (byte[] cardInfoPhoto);

参数:

cardInfoPhoto[out] 北京通照片信息

返回值:

>0:读取北京通照片信息成功并作为有效数据长度;

<=0:读取北京通照片信息失败,参考状态码

2.12辅助类函数

2.12.1 Donsee_HexToStr 16进制数组转字符串

定义:16进制数组转字符串

原型:

StringbytesToHex (byte[]Src,int len);

参数:

Src[in]:十六进制数组

Len[in]:数据长度

返回值:

!null:16进制数组转字符串成功;

null:16进制数组转字符串失败,参考状态码

2.12.2 Donsee_StrToHex 字符串转16进制数组

定义:字符串转16进制数组

原型:byte[] hexToBytes (String Src);

参数:

Src[in]:hexstr格式字符串

返回值:

!null:字符串转16进制数组成功;

null:字符串转16进制数组失败,参考状态码

3、状态码

IFD_OK0执行成功

IFD_ICC_TypeError-1卡片类型不对

IFD_ICC_NoExist-2无卡

IFD_ICC_NoPower-3有卡未上电

IFD_ICC_NoResponse-4卡片无应答

IFD_ConnectError-11读卡器连接错

IFD_UnConnected-12未建立连接(没有执行打开设备函数)

IFD_BadCommand-13(动态库)不支持该命令

IFD_ParameterError-14(发给动态库的)命令参数错

IFD_CheckSumError-15信息校验和出错

社保卡状态码

返回值错误信息描述

-1卡类型不对

-2无卡

-3有卡未上电

-4卡无应答

-5加载动态库错

-11读卡器连接错

-12未建立连接

-13(动态库)不支持该命令

-14(发给动态库的)命令参数错

-15信息校验和出错

-18操作超时

-19发送数据失败

-20卡识别码格式错

-21内部认证失败(用户卡不合法)

-22传入数据与卡内不符

-23传入数据不合法

-24PSAM卡密钥级别不够

-25接收数据失败

-31用户取消密码输入

-32密码输入操作超时

-33输入密码长度错

-34两次输入密码不一致

-35(预留)初始密码不能交易

-36(预留)不能改为初始密码

-41运算数据含非法字符

-42运算数据长度错

-51PIN校验失败,剩余次数N次(根据卡返回信息)

-52PIN锁定

-2201无PSAM卡

-2202PSAM卡算法不支持(即PSAM卡内没有SSF33算法或SM4算法)

-2203PSAM卡内没有RKSSSE密钥(3.0卡读个人基本信息需要RKSSSE密钥外部认证)

-2204不需要加密机认证

-25536、-25537、-25538外部认证失败,剩余可尝试次数2、1、0次

-26368Lc/Le不正确

-26881命令不接受(无效状态)

-27009命令与文件结构不相符、当前文件非所需文件

-27010不满足安全条件

-27011密钥锁定(算法锁定)鉴别方法锁定

-27012引用数据无效、随机数无效

-27013不满足使用条件、应用被锁定、应用未选择、余额上溢

-27016安全报文数据项不正确、MAC不正确

-27264数据域参数不正确

-27265不支持该功能、卡中无MF、卡被锁定、应用锁定

-27266未找到文件、文件标识相重、SFI不正确

-27267未找到记录

-27272未找到引用数据、未找到密钥

-37634MAC无效

-37635应用已被永久锁定、卡片锁定

-37891PSAM卡不支持消费交易

-37894所需MAC(或/和TAC)不可用

其他未知错误

4、卡片调用顺序

4.1 TypeA卡

1 设置为TypeA卡片

2 请求卡片

3 防碰撞

4 选择卡片

5 上电

6  APDU 命令

4.2 TypeB卡

1 设置为TypeB卡片

2 上电

3 选卡

4  APDU 命令

4.3 M1卡

1 请求卡片

2 防碰撞

3 选择卡片

4 认证密钥

5 读或写

4.4 4442卡

1 上电复位

2 认证

3 读或写

4.5 接触CPU卡

1 上电

2  APDU 命令


以下之所以没有删除,是留备用,请下载上面最新的。

USB接口最新版本(20211229)↓

USB接口新版本(AS编译)↓

USB接口老版本(EC编译)↓

COM串口最新版本(20220223)↓

COM串口新版本(AS编译)↓

COM串口老版本(EC编译)↓

X86_X64安卓USB接口新版本(AS编译)↓

 

 
QQ在线咨询