EST-100/EST-100GS/EST-J13X系列Android开发包(含身份证、社保卡、CPU、M1、磁条卡、银行卡等卡)
广东东信智能科技有限公司DONSEE EST-100系列Android开发包(含身份证、社保卡、CPU、M1、磁条卡、银行卡等卡),支持EST-100、EST-100G、EST-J13X、EST-100GS等机型,仅供开发人员和测试人员使用,包括armeabi/armeabi-v7a/armeabi-v8a/x86/x64等安卓处理器使用。
开发包分为Android Studio编译和Eclipse两种编译环境、以及Uni-app方式,请根据实际需要选择对应的版本下载。
Android平台开发包下载地址:
【新】安卓原生SDK V1.0.47-20240830下载↓
以下为更早版本:
【新】安卓原生SDK V1.0.46-20240716下载↓
【新】安卓原生SDK V1.0.46-20240712下载↓
【新】安卓原生SDK V1.0.46-20240625下载↓
【新】安卓原生SDK V1.0.46-20240506下载↓
【新】安卓原生SDK V1.0.45-20240417下载↓
【新】安卓原生SDK V1.0.45-20240305下载↓
【新】安卓原生SDK V1.0.45-20240301下载↓
【新】安卓原生SDK V1.0.44-20240122下载↓
DONSEE系列多功能读写器Android API接口规范V1.0.44
DonseeDevice.aar
广东东信智能科技有限公司
www.eastcoms.com
2023.09.18
DONSEE系列多功能读写器1
Android API接口规范V1.0.441
DonseeDevice.aar1
1、智能读写器(SDK)简介5
2、函数说明5
2.1通用函数5
2.1.1 Donsee_Open打开设备5
2.1.2 Donsee_Close关闭设备6
2.1.3 Donsee_Beep蜂鸣器函数6
2.1.4 Donsee_Version读取设备版本6
2.1.5 Donsee_SwitchRF设备天线开关6
2.2身份证7
2.2.1 Donsee_ReadIDCard读取身份证信息7
2.2.2 Donsee_ReadSAMID 读取模块SAM码8
2.2.3 Donsee_ReadIDCardUid 读取身份证UID8
2.3社保卡8
2.3.1 Donsee_ReadSSCard读取社保卡信息8
2.4非接触类卡片前置函数9
2.4.1 Donsee_ICRequest请求卡片9
2.4.2 Donsee_ICAnticoll防碰撞9
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卡上电复位10
2.5.4 Donsee_PowerOnTypeB TypeB卡上电复位11
2.5.5 Donsee_APDU执行APDU命令11
2.6 M1卡11
2.6.1 Donsee_M1VerifyPass M1卡认证秘钥11
2.6.2 Donsee_M1VerifyPassHEX M1卡认证秘钥12
2.6.3 Donsee_M1Read M1卡读卡12
2.6.4 Donsee_M1Write M1卡写卡12
2.6.5 Donsee_M1Initval M1卡初始化13
2.6.6 Donsee_M1Increment M1卡增值13
2.6.7 Donsee_M1Decrement M1卡减值13
2.6.8 Donsee_M1Readval M1卡读值13
2.6.9 Donsee_M1LoadKey M1卡装载密钥14
2.6.10 Donsee_ReadICUid读取M1和CPU卡的Uid卡号14
2.7接触CPU卡14
2.7.1 Donsee_PowerOn CPU卡上电复位14
2.7.2 Donsee_ColdPowerOn 冷复位15
2.7.3 Donsee_HotPowerOn 热复位15
2.7.4 Donsee_PowerOn_APDU CPU卡执行APDU命令15
2.7.5 Donsee_PowerOn_LongAPDU CPU卡执行APDU命令16
2.7.6 Donsee_PowerOff下电16
2.7.7 Donsee_GetStatus获取卡座状态17
2.8 15693卡17
2.8.1 Donsee_15693_Find 15693寻卡17
2.8.2 Donsee_15693_Info 15693获取卡片详细信息17
2.8.3 Donsee_15693_Read 15693读卡18
2.8.4 Donsee_15693_Write 15693写卡18
2.8.5 Donsee_15693_WriteAFI 15693写AFI18
2.8.6 Donsee_15693_LockAFI 15693锁AFI19
2.8.7 Donsee_15693_WriteDSFID 15693写DSFID19
2.8.8 Donsee_15693_LockDSFID 15693锁DSFID19
2.8.9 Donsee_15693_LockDataBlock用于锁定块内容19
2.9 SLE4442卡20
2.9.1 Donsee_4442_PowerOn 4442卡上电20
2.9.2 Donsee_4442_PowerOff 4442卡下电20
2.9.3 Donsee_4442_Read 4442卡读数据20
2.9.4 Donsee_4442_Write 4442卡写数据21
2.9.5 Donsee_4442_Verify 4442卡认证密钥21
2.9.6 Donsee_4442_Change 4442卡修改密钥21
2.9.7 Donsee_4442_ReadProtect 4442卡读保护数据21
2.9.8 Donsee_4442_WriteProtect 4442卡写保护数据22
2.9.9 Donsee_4442_ReadCount 4442卡密钥剩余认证次数22
2.10磁条卡23
2.10.1 Donsee_ReadMagCard磁条卡读卡23
2.11北京通23
2.11.1 Donsee_ReadBJTIDCard读取北京通信息23
2.11.2 Donsee_ReadBJTIDCard_Photo读取北京通照片24
2.12加密机24
2.12.1 Donsee_iReadCardBas读基本信息24
2.12.2 Donsee_iReadCardBas_HSM_Step1加密机步骤124
2.12.3 Donsee_iReadCardBas_HSM_Step2加密机步骤225
2.13 4428卡25
2.13.1 Donsee_4428_PowerOn 4428卡上电25
2.13.2 Donsee_4428_PowerOff 4428卡下电26
2.13.3 Donsee_4428_Read 4428卡读数据26
2.13.4 Donsee_4428_Write 4428卡写数据26
2.13.5 Donsee_4428_Verify 4428卡认证密钥27
2.13.6 Donsee_4428_Change 4428卡修改密钥27
2.13.7 Donsee_4428_ReadCount 4428卡密钥剩余认证次数27
2.14辅助类函数27
2.14.1 Donsee_HexToStr 16进制数组转字符串27
2.14.2 Donsee_StrToHex 字符串转16进制数组28
3、状态码28
4、卡片调用顺序30
4.1 TypeA卡30
4.2 TypeB卡30
4.3 M1卡30
4.4 4442卡30
4.5 接触CPU卡30
1、智能读写器(SDK)简介
本文档描述了广东东信智能科技有限公司DONSEE系列读写器SDK的函数定义、调用方法、参数以及返回值说明,供开发人员进行二次开发时使用。
SDK会自动检查是否拥有USB设备权限,如没有权限,会自动进行申请,如果您的安卓设备是定制设备,遇到找不到设备时,请询问设备定制方是否开放了USB接口的系统层权限。
2、函数说明
2.1通用函数
2.1.1 Donsee_Open打开设备
定义:打开设备端口
原型:
long Donsee_Open(String dev_Name)
参数:
dev_Name[in]windows:USB设备传入”USB”;串口设备传入”COM1” “COM2”等
Android:USB设备传入”USB”;”/dev/ttyS0”,” /dev /ttyUSB0”,” /dev/ ttySAC0”等
返回值:
0:打开设备成功;
非0:打开设备失败,参考状态码
2.1.2 Donsee_Close关闭设备
定义:关闭设备端口
原型:
long Donsee_Close()
参数:无
返回值:
0:关闭设备成功;
非0:关闭设备失败,参考状态码
2.1.3 Donsee_Beep蜂鸣器函数
定义:调用设备蜂鸣器
原型:
long Donsee_Beep()
参数:无
返回值:
0:调用蜂鸣器成功;
非0:调用蜂鸣器失败,参考状态码
2.1.4 Donsee_Version读取设备版本
定义:读取设备版本号
原型:
long Donsee_Version (byte[] chVersion)
参数:
chVersion[out]设备版本号
返回值:
>0:获取设备版本成功并作为有效数据长度;
<=0:获取设备版本失败,参考状态码
2.1.5 Donsee_SwitchRF设备天线开关
定义:设备天线开关
原型:
long Donsee_SwitchRF (int nType)
参数:
nType1,打开设备天线;0,关闭设备天线
返回值:
0:天线开关操作成功;
非0:天线开关操作失败,参考状态码
2.2身份证
class IDCardInfo {
public String name;/*中文姓名*/
public String enFullName; /*英文姓名*/
public String sex;/*性别*/
public String nation;/*民族*/
public String address; /*地址*/
public String birthDate;/*出生日期(YYYYMMDD)*/
public String issueDate; /*发证日期(YYYYMMDD)*/
public String expireDate;/*有效日期(YYYYMMDD)*/
public String idNO; /*证件号码*/
public String organs; /*发证机关(或外国人永久居住正-当次申请受理机关)*/
public String nationality; /*国籍*/
public byte[] photo ; /*读取二代证电子信息时保存照片数据信息*/
public String other;
public String passNu;/*通行证号*/
public String signCount; /*签发数次*/
public String certVersion; /*证件版本*/
public String certType; /*卡片类型,”0”大陆身份证” ”,I”外国人,”J”港澳台,”Y”新版外国人*/
public String reserveName;/*英文姓名备用*/
public String previousVersionNO;/*既往版本永居证号码*/
public byte[] figData = new byte[1024] ;/*指纹信息*/
}
2.2.1 Donsee_ReadIDCard读取身份证信息
定义:读取身份证信息
原型:long Donsee_ReadIDCard (int nType, IDCardInfo idCardInfo);
参数:
nType [in]:设置身份证读卡类型:0,文本信息;1,文本+照片;2,文本+照片+指纹idCardInfo [out];获取的身份证信息
返回值:
0:读取身份证信息成功;
非0:读取身份证信息失败,参考状态码
2.2.2 Donsee_ReadSAMID 读取模块SAM码
定义:读取身份证模块SAM码
原型:long Donsee_ReadSAMID (byte[] chSAM);
参数:
chSAM [out] 身份证模块SAM码
返回值:
0:读取身份证模块SAM码成功;
非0:读取身份证模块SAM码失败,参考状态码
2.2.3 Donsee_ReadIDCardUid 读取身份证UID
定义:读取身份证UID
原型:long Donsee_ReadIDCardUid(byte[] chUID);
参数:
chUID [out] 身份证UID码
返回值:
0:读取身份证UID成功;
非0:读取身份证UID失败,参考状态码
2.3社保卡
public class SciCardInfo {
public String name; /*姓名*/
public String address; /*地址*/ //带地址的请调用Donsee_ReadSSCardWithAddress
public String sex; /*性别*/
public String idNO; /*社会保障号码(身份证号)*/
public String birthDate; /*出生日期(YYYYMMDD)*/
public String cardNO; /*卡号*/
public String issueDate; /*发证日期(YYYYMMDD)*/
public String expireDate; /*有效日期(YYYYMMDD)*/
public String fullVersion; /*社保卡版本*/
public String nation; /*民族*/
public String cityCode; /*城市代码*/
2.3.1 Donsee_ReadSSCard读取社保卡信息
定义:读取二代、三代社保卡
原型:
long Donsee_ReadSSCard (int nSlotPsam,
int nType ;
SciCardInfo cardInfo,
byte[] arrChMsg);
参数:
nSlotPsam [int] PSAM存放卡座,0x11 SAM1, 0x12 SAM2, 0x13 SAM3, 0x14 SAM4
nType[in]有无SAM卡(针对三代社保卡)
1,有SAM卡返回全部信息
2,无SAM卡返回卡号
cardInfo [out] 社保卡信息
arrChMsg [out] 错误信息
返回值:
0:读取社保卡成功;
非0:读取社保卡失败,参考状态码
备注:二代社保卡无需PSAM卡,只支持接触式读取。三代社保卡必须配备PSAM卡,支持接触、非接两种方式读取。三代社保卡无PSAM卡只返回卡号。
2.4非接触类卡片前置函数
2.4.1 Donsee_ICRequest请求卡片
定义:请求卡片
原型:
long Donsee_ICRequest ()
参数:
返回值:
0:请求卡片成功;
非0:请求卡片失败,参考状态码
2.4.2 Donsee_ICAnticoll防碰撞
定义:卡片防碰撞
原型:
long Donsee_ICAnticoll (byte[] chUID)
参数:
chUID[out]卡片序列号Uid
返回值:
>0:卡片防碰撞成功;
<=0:卡片防碰撞失败,参考状态码
2.4.3 Donsee_ICSelect选择卡片
定义:选择卡片
原型:
long Donsee_ICSelect (byte nCardType)
参数:
nCardType [in]0x41 表示 typeA 及M1 卡,0x43 表示 typeB卡
返回值:
0:选择卡片成功;
非0:选择卡片失败,参考状态码
2.5 TypeA、TypeB卡
2.5.1 Donsee_SetTypeA设置为TypeA
定义:设置为TypeA卡
原型:
long Donsee_SetTypeA ()
参数:
返回值:
0:设置为TypeA卡成功;
非0:设置为TypeA卡失败,参考状态码
2.5.2 Donsee_SetTypeB设置为TypeB
定义:设置为TypeB卡
原型:
long Donsee_SetTypeB ()
参数:
返回值:
0:设置为TypeB卡成功;
非0:设置为TypeB卡失败,参考状态码
2.5.3 Donsee_PowerOnTypeA TypeA卡上电复位
定义:TypeA上电
原型:
long Donsee_ PowerOnTypeA (byte[] Response)
参数:
Response [out]卡片复位信息(ATR)
返回值:
>0:TypeA上电成功并作为有效数据长度;
<=0:TypeA上电失败,参考状态码
2.5.4 Donsee_PowerOnTypeB TypeB卡上电复位
定义:TypeB上电
原型:
long Donsee_PowerOnTypeB(byte[] Response)
参数:
Response [out]卡片复位信息(ATR)
返回值:
>0:TypeB上电成功并作为有效数据长度;
<=0:TypeB上电失败,参考状态码
2.5.5 Donsee_APDU执行APDU命令
定义:TypeA|TypeB执行APDU命令
原型:
long 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卡认证秘钥
原型:
long Donsee_M1VerifyPass (byte nMode, byte nSecNr,byte[] PassWord);
参数:
nMode [in]认证模式, 0x60 认证KeyA|0x61 认证KeyB
nSecNr [in]扇区号 (0~15)
PassWord [in]密钥(如:”FFFFFFFFFFFF”)
返回值:
0:M1卡认证秘钥成功;
非0:M1卡认证秘钥失败,参考状态码
2.6.2 Donsee_M1VerifyPassHEX M1卡认证秘钥
定义:M1卡认证秘钥
原型:
long Donsee_M1VerifyPassHex (byte nMode, byte nSecNr,byte[] PassWord);
参数:
nMode [in]认证模式, 0x60 认证KeyA|0x61 认证KeyB
nSecNr [in]扇区号 (0~15)
PassWord [in]密钥(如:{0xff,0xff,0xff ,0xff ,0xff ,0xff })
返回值:
0:M1卡认证秘钥成功;
非0:M1卡认证秘钥失败,参考状态码
2.6.3 Donsee_M1Read M1卡读卡
定义:M1卡读卡
原型:
long 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卡写卡
原型:
long 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卡初始化
原型:
long 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卡增值
原型:
long 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卡减值
原型:
long 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卡读值
原型:
long 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卡密钥到设备
原型:
long 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
原型:
long Donsee_ReadICUid (byte[] chUID)
参数:
chUID[out]卡片序列号
返回值:
0:读取M1和CPU卡的Uid卡号成功;
非0:读取M1和CPU卡的Uid卡号失败,参考状态码
2.7接触CPU卡
2.7.1 Donsee_PowerOn CPU卡上电复位
定义:CPU卡上电复位
原型:
long 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卡冷复位
原型:
long 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卡热复位
原型:
long 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命令
原型:
long 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命令
原型:
long 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卡下电
原型:
long 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获取卡座状态
定义:获取卡座状态
原型:
long 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寻卡
原型:
long Donsee_15693_Find (byte[] chUID)
参数:
chUID [out]寻卡得到8字节卡片数据;
返回值:
0:15693寻卡成功;
非0:15693寻卡失败,参考状态码
2.8.2 Donsee_15693_Info 15693获取卡片详细信息
定义:获取15693卡详细信息
原型:
long Donsee_15693_Info (byte[] chCardInfo)
参数:
chCardInfo [out]14字节卡片数据;
返回值:
0:获取15693卡详细信息成功;
非0:获取15693卡详细信息失败,参考状态码
2.8.3 Donsee_15693_Read 15693读卡
定义:15693读卡
原型:
long Donsee_15693_Read (byte nBlkAdd, byte[] chResult)
参数:
nBlkAdd[in]块地址
chResult [out]14字节卡片数据;
返回值:
>0:15693读卡成功并作为有效数据长度;
<=0:15693读卡失败,参考状态码
2.8.4 Donsee_15693_Write 15693写卡
定义:15693写卡
原型:
long 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
原型:
long 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
原型:
long 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
原型:
long 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
原型:
long 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用于锁定块内容
定义:用于锁定块内容。注意:此过程不可逆(不能解锁)块锁定后内容不能在修改。
原型:
long 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卡上电
原型:
long Donsee_4442_PowerOn (byte[] chUID)
参数:
chUID [out]上电返回数据,4字节厂商代码
返回值:
>0:4442卡上电成功并作为有效数据长度;
<=0:4442卡上电失败,参考状态码
2.9.2 Donsee_4442_PowerOff 4442卡下电
定义:4442卡下电
原型:
long Donsee_4442_PowerOff ()
参数:
返回值:
0:4442卡下电成功;
非0:4442卡下电失败,参考状态码
2.9.3 Donsee_4442_Read 4442卡读数据
定义:4442卡读取数据
原型:
long 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卡写入数据
原型:
long 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卡认证秘钥
原型:
long 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卡修改秘钥
原型:
long 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卡读取保护数据
原型:
long 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卡写入保护数据,即固化数据,一旦写保护,数据将不能再修改
原型:
long 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卡密钥剩余认证次数
原型:
long Donsee_4442_ReadCount (int[] nCount)
参数:
nCount [0]4442卡密钥剩余认次数
返回值:
0:获取4442卡密钥剩余认证次数成功;
非0:获取4442卡密钥剩余认证次数失败,参考状态码
2.10磁条卡
2.10.1 Donsee_ReadMagCard磁条卡读卡
定义:磁条卡读卡
原型:
long 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 String name; /*姓名*/
public String sex; /*性别*/
public String cardNO; /*北京通号*/
public String cardType; /*卡片类型*/
public String cardName; /*证件名称*/
public String cardIssuer; /*发卡机构*/
}
2.11.1 Donsee_ReadBJTIDCard读取北京通信息
定义:读取北京通信息
原型:
long Donsee_ReadBJTIDCard (BJTCardInfo cardInfo);
参数:
cardInfo [out] 北京通信息
返回值:
0:读取北京通信息成功;
非0:读取北京通信息失败,参考状态码
2.11.2 Donsee_ReadBJTIDCard_Photo读取北京通照片
定义:读取北京通信息
原型:
long Donsee_ReadBJTIDCard_Photo (byte[] cardInfoPhoto);
参数:
cardInfoPhoto[out] 北京通照片信息
返回值:
>0:读取北京通照片信息成功并作为有效数据长度;
<=0:读取北京通照片信息失败,参考状态码
2.12加密机
2.12.1 Donsee_iReadCardBas读基本信息
定义:读基本信息
原型:
long Donsee_iReadCardBas (int nType, byte[] info)
参数:
nType [in]卡片类型 1接触、2非接、3接触+非接,非接优先
info [out]返回的数据
返回值:
0:读卡成功;
非0:读卡失败,参考状态码
//返回格式:发卡地区行政区划代码(卡识别码前6位)|社会保障号码|卡号|卡识别码|姓名|卡复位信息(仅取历史字节)|规范版本|发卡日期|卡有效期|终端机编号|终端设备号|
//返回举例:
360700|360700199907151372|890642628|360700D156003335690999604657ED2D|张无忌|0081544B44869B160818107861|2.00|20180701|20280701|310000309109|65884835323437175132|
说明:此函数读三代社保卡需要psam卡,否则返回-2201,二代社保卡可以直接读取
2.12.2 Donsee_iReadCardBas_HSM_Step1加密机步骤1
定义:加密机步骤1
原型:
long Donsee_iReadCardBas_HSM_Step1(int nType, byte[] info)
参数:
nType [in]卡片类型 1接触、2非接、3接触+非接,非接优先
info [out]返回的数据
返回值:
0:读卡成功;
非0:读卡失败,参考状态码
//返回格式:发卡地行政区划代码|卡复位信息|算法标识|卡识别码|内部认证过程因子|内部认证鉴别所需的原始信息|外部认证过程因子|外部认证鉴别所需的原始信息|
//返回举例:
440100|00814A66678660440100AC8FE3|03|440100D15600880600AC8FE3257118AC|7EFCD0C331DA50AC|0102030405060708|DB25A7E8ABD59B1B|0102030405060708|
2.12.3 Donsee_iReadCardBas_HSM_Step2加密机步骤2
定义:加密机步骤2
原型:
long Donsee_iReadCardBas_HSM_Step2 (String key, byte[] info)
参数:
key [in] 密钥,即加密机返回的信息
info [out]返回的数据
返回值:
0:读卡成功;
非0:读卡失败,参考状态码
key为加密机返回的内部认证和外部认证结果数据,依次为:内部认证结果数据(即内部认证鉴别数据(16 位)和内部认证鉴别所需的原始信息(16 位)拼接组成)、外部认证结果数据(即外部认证鉴别数据(16 位)和外部认证鉴别所需的原始信息(16 位)拼接组成)。各数据项之间以“|”分割,且最后一个数据项以“|”结尾。
例如:96BBD0687A1667AD0102030405060708|A52BFF7396EEE45F0102030405060708|
//返回格式(和Donsee_iReadCardBas一样):发卡地区行政区划代码(卡识别码前6位)|社会保障号码|卡号|卡识别码|姓名|卡复位信息(仅取历史字节)|规范版本|发卡日期|卡有效期|终端机编号|终端设备号|
//返回举例:
360700|360700199907151372|890642628|360700D156003335690999604657ED2D|张无忌|0081544B44869B160818107861|2.00|20180701|20280701|310000309109|65884835323437175132|
2.13 4428卡
2.13.1 Donsee_4428_PowerOn 4428卡上电
定义:4428卡上电
原型:
long Donsee_4428_PowerOn (byte[] chUID)
参数:
chUID [out]上电返回数据,4字节厂商代码
返回值:
>0:4428卡上电成功并作为有效数据长度;
<=0:4428卡上电失败,参考状态码
2.13.2 Donsee_4428_PowerOff 4428卡下电
定义:4428卡下电
原型:
long Donsee_4428_PowerOff ()
参数:
返回值:
0:4428卡下电成功;
非0:4428卡下电失败,参考状态码
2.13.3 Donsee_4428_Read 4428卡读数据
定义:4428卡读取数据
原型:
long Donsee_4428_Read (int nOffset, int nLen, byte[]chData)
参数:
nOffset[in]起始地址
nLen[in]读取数据长度
chData [iout]读取的数据内容
返回值:
>0:4428卡读取数据成功并作为有效数据长度;
<=0:4428卡读取数据失败,参考状态码
2.13.4 Donsee_4428_Write 4428卡写数据
定义:4428卡写入数据
原型:
long Donsee_4428_Read (int nOffset, int nLen, byte[]chData)
参数:
nOffset[in]起始地址
nLen[in]写入数据长度
chData [in]写入的数据内容
返回值:
0:4428卡写入数据成功;
非0:4428卡写入数据失败,参考状态码
2.13.5 Donsee_4428_Verify 4428卡认证密钥
定义:4428卡认证秘钥
原型:
long Donsee_4428_Verify(byte[]chKey)
参数:
chKey [in]秘钥数据,如unsigned byte[] chKey={0xff,0xff,0xff};
返回值:
0:4428卡认证秘钥成功;
非0:4428卡认证秘钥失败,参考状态码
2.13.6 Donsee_4428_Change 4428卡修改密钥
定义:4428卡修改秘钥
原型:
long Donsee_4428_Change (byte[]chNewKey)
参数:
chNewKey [in]秘钥数据,如unsigned byte[] chNewKey ={0xff,0xff,0xff};
返回值:
0:4428卡修改密钥成功;
非0:4428卡修改密钥失败,参考状态码
2.13.7 Donsee_4428_ReadCount 4428卡密钥剩余认证次数
定义:4428卡密钥剩余认证次数
原型:
long Donsee_4428_ReadCount (int[] nCount)
参数:
nCount [0]4428卡密钥剩余认次数
返回值:
0:获取4428卡密钥剩余认证次数成功;
非0:获取4428卡密钥剩余认证次数失败,参考状态码
2.14辅助类函数
2.14.1 Donsee_HexToStr 16进制数组转字符串
定义:16进制数组转字符串
原型:
StringbytesToHex (byte[]Src,int len);
参数:
Src[in]:十六进制数组
Len[in]:数据长度
返回值:
null:16进制数组转字符串成功;
null:16进制数组转字符串失败,参考状态码
2.14.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、-25539、-25540、-25541外部认证失败,剩余可尝试次数0~5次
(注意:这个返回值表示马上要锁卡了,请不要再尝试)
-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、寻卡:Donsee_ICRequest
2、防碰撞:Donsee_ICAnticoll
3、选卡:Donsee_ICSelect
4、TypeA上电:Donsee_PowerOnTypeA
5、APDU命令:Donsee_APDU
4.2 TypeB卡
1、设置为TypeB卡片:Donsee_SetTypeB
2、TypeB上电:Donsee_PowerOnTypeB
3、选卡:Donsee_ICSelect
4、APDU命令:Donsee_APDU
4.3 M1卡
USB接口方式:
1、寻卡:Donsee_ICRequest
2、防碰撞:Donsee_ICAnticoll
3、选卡:Donsee_ICSelect
4、认证秘钥:Donsee_M1VerifyPass //KeyA 0x60,KeyB 0x61
5、读/写:Donsee_M1Read/Donsee_M1Write
串口方式:
1、寻卡:Donsee_ReadICUid
2、认证秘钥:Donsee_M1VerifyPass ////KeyA 0x60,KeyB 0x61
3、读/写:Donsee_M1Read/Donsee_M1Write
4.4 4442卡
1 上电复位
2 认证
3 读或写
4.5 接触CPU卡
1、接触冷复位:Donsee_ColdPowerOn
2、接触APDU命令:Donsee_PowerOn_APDU
以下之所以没有删除,是留备用,请下载上面最新的。
USB接口最新版本(AS版本20211229-20230704New)↓
USB接口最新版本(AS版本20211229-20230713New)↓