EST-100/EST-100GS/EST-J13X系列Android開(kāi)發(fā)包(含身份證、社???、CPU、M1、磁條卡、銀行卡等卡)
廣東東信智能科技有限公司DONSEE EST-100系列Android開(kāi)發(fā)包(含身份證、社???、CPU、M1、磁條卡、銀行卡等卡),支持EST-100、EST-100G、EST-J13X、EST-100GS等機型,僅供開(kāi)發(fā)人員和測試人員使用,包括armeabi/armeabi-v7a/armeabi-v8a/x86/x64等安卓處理器使用。
開(kāi)發(fā)包分為Android Studio編譯和Eclipse兩種編譯環(huán)境、以及Uni-app方式,請根據實(shí)際需要選擇對應的版本下載。
Android平臺開(kāi)發(fā)包下載地址:
【新】安卓原生SDK V1.0.46-20240506下載↓
【新】安卓Web網(wǎng)頁(yè)版本V1.0.8 SDK下載↓
以下為更早版本:
【新】安卓原生SDK V1.0.45-20240417下載↓
【新】安卓原生SDK V1.0.45-20240305下載↓
【新】安卓原生SDK V1.0.45-20240301下載↓
【新】安卓原生SDK V1.0.44-20240122下載↓
DONSEE系列多功能讀寫(xiě)器Android API接口規范V1.0.44
DonseeDevice.aar
廣東東信智能科技有限公司
www.wzshe.cn
2023.09.18
DONSEE系列多功能讀寫(xiě)器1
Android API接口規范V1.0.441
DonseeDevice.aar1
1、智能讀寫(xiě)器(SDK)簡(jiǎn)介5
2、函數說(shuō)明5
2.1通用函數5
2.1.1 Donsee_Open打開(kāi)設備5
2.1.2 Donsee_Close關(guān)閉設備6
2.1.3 Donsee_Beep蜂鳴器函數6
2.1.4 Donsee_Version讀取設備版本6
2.1.5 Donsee_SwitchRF設備天線(xiàn)開(kāi)關(guān)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社???span style="white-space:pre">8
2.3.1 Donsee_ReadSSCard讀取社??ㄐ畔?span style="white-space:pre">8
2.4非接觸類(lèi)卡片前置函數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設置為T(mén)ypeA10
2.5.2 Donsee_SetTypeB設置為T(mén)ypeB10
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卡寫(xiě)卡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獲取卡座狀態(tài)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寫(xiě)卡18
2.8.5 Donsee_15693_WriteAFI 15693寫(xiě)AFI18
2.8.6 Donsee_15693_LockAFI 15693鎖AFI19
2.8.7 Donsee_15693_WriteDSFID 15693寫(xiě)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卡寫(xiě)數據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卡寫(xiě)保護數據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卡寫(xiě)數據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輔助類(lèi)函數27
2.14.1 Donsee_HexToStr 16進(jìn)制數組轉字符串27
2.14.2 Donsee_StrToHex 字符串轉16進(jìn)制數組28
3、狀態(tài)碼28
4、卡片調用順序30
4.1 TypeA卡30
4.2 TypeB卡30
4.3 M1卡30
4.4 4442卡30
4.5 接觸CPU卡30
1、智能讀寫(xiě)器(SDK)簡(jiǎn)介
本文檔描述了廣東東信智能科技有限公司DONSEE系列讀寫(xiě)器SDK的函數定義、調用方法、參數以及返回值說(shuō)明,供開(kāi)發(fā)人員進(jìn)行二次開(kāi)發(fā)時(shí)使用。
SDK會(huì )自動(dòng)檢查是否擁有USB設備權限,如沒(méi)有權限,會(huì )自動(dòng)進(jìn)行申請,如果您的安卓設備是定制設備,遇到找不到設備時(shí),請詢(xún)問(wèn)設備定制方是否開(kāi)放了USB接口的系統層權限。
2、函數說(shuō)明
2.1通用函數
2.1.1 Donsee_Open打開(kāi)設備
定義:打開(kāi)設備端口
原型:
long Donsee_Open(String dev_Name)
參數:
dev_Name[in]windows:USB設備傳入”USB”;串口設備傳入”COM1” “COM2”等
Android:USB設備傳入”USB”;”/dev/ttyS0”,” /dev /ttyUSB0”,” /dev/ ttySAC0”等
返回值:
0:打開(kāi)設備成功;
非0:打開(kāi)設備失敗,參考狀態(tài)碼
2.1.2 Donsee_Close關(guān)閉設備
定義:關(guān)閉設備端口
原型:
long Donsee_Close()
參數:無(wú)
返回值:
0:關(guān)閉設備成功;
非0:關(guān)閉設備失敗,參考狀態(tài)碼
2.1.3 Donsee_Beep蜂鳴器函數
定義:調用設備蜂鳴器
原型:
long Donsee_Beep()
參數:無(wú)
返回值:
0:調用蜂鳴器成功;
非0:調用蜂鳴器失敗,參考狀態(tài)碼
2.1.4 Donsee_Version讀取設備版本
定義:讀取設備版本號
原型:
long Donsee_Version (byte[] chVersion)
參數:
chVersion[out]設備版本號
返回值:
>0:獲取設備版本成功并作為有效數據長(cháng)度;
<=0:獲取設備版本失敗,參考狀態(tài)碼
2.1.5 Donsee_SwitchRF設備天線(xiàn)開(kāi)關(guān)
定義:設備天線(xiàn)開(kāi)關(guān)
原型:
long Donsee_SwitchRF (int nType)
參數:
nType1,打開(kāi)設備天線(xiàn);0,關(guān)閉設備天線(xiàn)
返回值:
0:天線(xiàn)開(kāi)關(guān)操作成功;
非0:天線(xiàn)開(kāi)關(guān)操作失敗,參考狀態(tài)碼
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; /*發(fā)證日期(YYYYMMDD)*/
public String expireDate;/*有效日期(YYYYMMDD)*/
public String idNO; /*證件號碼*/
public String organs; /*發(fā)證機關(guān)(或外國人永久居住正-當次申請受理機關(guān))*/
public String nationality; /*國籍*/
public byte[] photo ; /*讀取二代證電子信息時(shí)保存照片數據信息*/
public String other;
public String passNu;/*通行證號*/
public String signCount; /*簽發(fā)數次*/
public String certVersion; /*證件版本*/
public String certType; /*卡片類(lèi)型,”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]:設置身份證讀卡類(lèi)型:0,文本信息;1,文本+照片;2,文本+照片+指紋idCardInfo [out];獲取的身份證信息
返回值:
0:讀取身份證信息成功;
非0:讀取身份證信息失敗,參考狀態(tài)碼
2.2.2 Donsee_ReadSAMID 讀取模塊SAM碼
定義:讀取身份證模塊SAM碼
原型:long Donsee_ReadSAMID (byte[] chSAM);
參數:
chSAM [out] 身份證模塊SAM碼
返回值:
0:讀取身份證模塊SAM碼成功;
非0:讀取身份證模塊SAM碼失敗,參考狀態(tài)碼
2.2.3 Donsee_ReadIDCardUid 讀取身份證UID
定義:讀取身份證UID
原型:long Donsee_ReadIDCardUid(byte[] chUID);
參數:
chUID [out] 身份證UID碼
返回值:
0:讀取身份證UID成功;
非0:讀取身份證UID失敗,參考狀態(tài)碼
2.3社???/p>
public class SciCardInfo {
public String name; /*姓名*/
public String address; /*地址*/ //帶地址的請調用Donsee_ReadSSCardWithAddress
public String sex; /*性別*/
public String idNO; /*社會(huì )保障號碼(身份證號)*/
public String birthDate; /*出生日期(YYYYMMDD)*/
public String cardNO; /*卡號*/
public String issueDate; /*發(fā)證日期(YYYYMMDD)*/
public String expireDate; /*有效日期(YYYYMMDD)*/
public String fullVersion; /*社??ò姹?/
public String nation; /*民族*/
public String cityCode; /*城市代碼*/
2.3.1 Donsee_ReadSSCard讀取社??ㄐ畔?/p>
定義:讀取二代、三代社???/p>
原型:
long Donsee_ReadSSCard (int nSlotPsam,
int nType ;
SciCardInfo cardInfo,
byte[] arrChMsg);
參數:
nSlotPsam [int] PSAM存放卡座,0x11 SAM1, 0x12 SAM2, 0x13 SAM3, 0x14 SAM4
nType[in]有無(wú)SAM卡(針對三代社???
1,有SAM卡返回全部信息
2,無(wú)SAM卡返回卡號
cardInfo [out] 社??ㄐ畔?/p>
arrChMsg [out] 錯誤信息
返回值:
0:讀取社??ǔ晒?;
非0:讀取社??ㄊ?,參考狀態(tài)碼
備注:二代社??o(wú)需PSAM卡,只支持接觸式讀取。三代社??ū仨毰鋫銹SAM卡,支持接觸、非接兩種方式讀取。三代社??o(wú)PSAM卡只返回卡號。
2.4非接觸類(lèi)卡片前置函數
2.4.1 Donsee_ICRequest請求卡片
定義:請求卡片
原型:
long Donsee_ICRequest ()
參數:
返回值:
0:請求卡片成功;
非0:請求卡片失敗,參考狀態(tài)碼
2.4.2 Donsee_ICAnticoll防碰撞
定義:卡片防碰撞
原型:
long Donsee_ICAnticoll (byte[] chUID)
參數:
chUID[out]卡片序列號Uid
返回值:
>0:卡片防碰撞成功;
<=0:卡片防碰撞失敗,參考狀態(tài)碼
2.4.3 Donsee_ICSelect選擇卡片
定義:選擇卡片
原型:
long Donsee_ICSelect (byte nCardType)
參數:
nCardType [in]0x41 表示 typeA 及M1 卡,0x43 表示 typeB卡
返回值:
0:選擇卡片成功;
非0:選擇卡片失敗,參考狀態(tài)碼
2.5 TypeA、TypeB卡
2.5.1 Donsee_SetTypeA設置為T(mén)ypeA
定義:設置為T(mén)ypeA卡
原型:
long Donsee_SetTypeA ()
參數:
返回值:
0:設置為T(mén)ypeA卡成功;
非0:設置為T(mén)ypeA卡失敗,參考狀態(tài)碼
2.5.2 Donsee_SetTypeB設置為T(mén)ypeB
定義:設置為T(mén)ypeB卡
原型:
long Donsee_SetTypeB ()
參數:
返回值:
0:設置為T(mén)ypeB卡成功;
非0:設置為T(mén)ypeB卡失敗,參考狀態(tài)碼
2.5.3 Donsee_PowerOnTypeA TypeA卡上電復位
定義:TypeA上電
原型:
long Donsee_ PowerOnTypeA (byte[] Response)
參數:
Response [out]卡片復位信息(ATR)
返回值:
>0:TypeA上電成功并作為有效數據長(cháng)度;
<=0:TypeA上電失敗,參考狀態(tài)碼
2.5.4 Donsee_PowerOnTypeB TypeB卡上電復位
定義:TypeB上電
原型:
long Donsee_PowerOnTypeB(byte[] Response)
參數:
Response [out]卡片復位信息(ATR)
返回值:
>0:TypeB上電成功并作為有效數據長(cháng)度;
<=0:TypeB上電失敗,參考狀態(tài)碼
2.5.5 Donsee_APDU執行APDU命令
定義:TypeA|TypeB執行APDU命令
原型:
long Donsee_APDU (byte[] Command_APDU, byte[] Response_APDU);
參數:
Command_APDU [in]下發(fā)APDU命令(字符串”0084000008”)
Response_APDU[out]執行APDU相應數據(字符串如”9000”)
返回值:
>0:執行APDU命令成功并作為有效數據長(cháng)度;
<=0:執行APDU命令失敗,參考狀態(tài)碼
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卡認證秘鑰失敗,參考狀態(tài)碼
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卡認證秘鑰失敗,參考狀態(tài)碼
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卡讀卡成功并作為有效數據長(cháng)度;
<=0:M1卡讀卡失敗,參考狀態(tài)碼
2.6.4 Donsee_M1Write M1卡寫(xiě)卡
定義:M1卡寫(xiě)卡
原型:
long Donsee_M1Write(byte Addr,byte[]chData)
參數:
Addr [in]塊號(S50該值范圍0~63| S70該值范圍0~255)
chData [in]讀取數據
塊地址計算公式:塊地址=扇區號*4+當前塊號
返回值:
0:M1卡寫(xiě)卡成功;
非0:M1卡寫(xiě)卡失敗,參考狀態(tài)碼
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卡初始化失敗,參考狀態(tài)碼
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卡增值失敗,參考狀態(tài)碼
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卡減值失敗,參考狀態(tài)碼
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卡讀值失敗,參考狀態(tài)碼
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卡裝載密鑰失敗,參考狀態(tài)碼
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卡號失敗,參考狀態(tài)碼
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:卡片復位成功并作為有效數據長(cháng)度;
<=0:卡片復位失敗,參考狀態(tài)碼
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:卡片復位成功并作為有效數據長(cháng)度;
<=0:卡片復位失敗,參考狀態(tài)碼
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:卡片復位成功并作為有效數據長(cháng)度;
<=0:卡片復位失敗,參考狀態(tài)碼
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]下發(fā)APDU命令(字符串”0084000008”)
Response_APDU[out]執行APDU相應數據(字符串如”9000”)
返回值:
>0:執行APDU命令成功并作為有效數據長(cháng)度;
<=0:執行APDU命令失敗,參考狀態(tài)碼
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]下發(fā)APDU命令(字符串”0084000008”)
Response_APDU[out]執行APDU相應數據(字符串如”9000”)
返回值:
>0:執行APDU命令成功并作為有效數據長(cháng)度;
<=0:執行APDU命令失敗,參考狀態(tài)碼
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卡下電失敗,參考狀態(tài)碼
2.7.7 Donsee_GetStatus獲取卡座狀態(tài)
定義:獲取卡座狀態(tài)
原型:
long Donsee_GetStatus(byte nSlotNo,int* nStatus)
參數:
nSlotNo[in]卡座選擇:0x01 大卡座, 0x02:副卡座 ;
0x11:SAM1卡座;0x12:SAM2卡座;
0x13:SAM3卡座;0x14:SAM4卡座
nStatus[out]卡座狀態(tài):為 0 表示有卡上電,1表示有卡未上,2表示無(wú)卡
返回值:
0:獲取卡座狀態(tài)成功;
非0:獲取卡座狀態(tài)失敗,參考狀態(tài)碼
2.8 15693卡
2.8.1 Donsee_15693_Find 15693尋卡
定義:15693尋卡
原型:
long Donsee_15693_Find (byte[] chUID)
參數:
chUID [out]尋卡得到8字節卡片數據;
返回值:
0:15693尋卡成功;
非0:15693尋卡失敗,參考狀態(tài)碼
2.8.2 Donsee_15693_Info 15693獲取卡片詳細信息
定義:獲取15693卡詳細信息
原型:
long Donsee_15693_Info (byte[] chCardInfo)
參數:
chCardInfo [out]14字節卡片數據;
返回值:
0:獲取15693卡詳細信息成功;
非0:獲取15693卡詳細信息失敗,參考狀態(tài)碼
2.8.3 Donsee_15693_Read 15693讀卡
定義:15693讀卡
原型:
long Donsee_15693_Read (byte nBlkAdd, byte[] chResult)
參數:
nBlkAdd[in]塊地址
chResult [out]14字節卡片數據;
返回值:
>0:15693讀卡成功并作為有效數據長(cháng)度;
<=0:15693讀卡失敗,參考狀態(tài)碼
2.8.4 Donsee_15693_Write 15693寫(xiě)卡
定義:15693寫(xiě)卡
原型:
long Donsee_15693_Write (byte nBlkAdd, byte[] chData)
參數:
nBlkAdd[in]塊地址
chData [in]要寫(xiě)入的4字節卡片數據;
返回值:
0:15693寫(xiě)卡成功;
非0:15693寫(xiě)卡失敗,參考狀態(tài)碼
2.8.5 Donsee_15693_WriteAFI 15693寫(xiě)AFI
定義:15693寫(xiě)AFI
原型:
long Donsee_15693_WriteAFI (byte[] data, byte[] Response)
參數:
data [in]data[0] 為0表示寫(xiě)AFI,為1則表示鎖AFI
Response [in]null
返回值:
0:15693寫(xiě)AFI成功;
非0:15693寫(xiě)AFI失敗,參考狀態(tài)碼
2.8.6 Donsee_15693_LockAFI 15693鎖AFI
定義:15693寫(xiě)AFI
原型:
long Donsee_15693_LookAFI (byte[] data, byte[] Response)
參數:
data [in]data[0] 為0表示寫(xiě)AFI,為1則表示鎖AFI
Response [in]null
返回值:
0:15693鎖AFI成功;
非0:15693鎖AFI失敗,參考狀態(tài)碼
2.8.7 Donsee_15693_WriteDSFID 15693寫(xiě)DSFID
定義:15693寫(xiě)DSFID
原型:
long Donsee_15693_WriteDSFID (byte[] data, byte[] Response)
參數:
data [in]data[0] 為0表示寫(xiě)DSFID,為1則表示鎖DSFID
Response [in]null
返回值:
0:15693寫(xiě)DSFID成功;
非0:15693寫(xiě)DSFID 失敗,參考狀態(tài)碼
2.8.8 Donsee_15693_LockDSFID 15693鎖DSFID
定義:15693鎖DSFID
原型:
long Donsee_15693_LockDSFID (byte[] data, byte[] Response a)
參數:
data [in]data[0] 為0表示寫(xiě)AFI,為1則表示鎖AFI
Response [out]null;
返回值:
0:15693鎖DSFID成功;
非0:15693鎖DSFID失敗,參考狀態(tài)碼
2.8.9 Donsee_15693_LockDataBlock用于鎖定塊內容
定義:用于鎖定塊內容。注意:此過(guò)程不可逆(不能解鎖)塊鎖定后內容不能在修改。
原型:
long Donsee_15693_LockDataBlock(byte blk_add, byte[] chResult)
參數:
blk_add [in]塊地址
chResult [out]返回數據
返回值:
0:15693鎖塊內容成功;
非0:15693鎖塊內容失敗,參考狀態(tài)碼
2.9 SLE4442卡
2.9.1 Donsee_4442_PowerOn 4442卡上電
定義:4442卡上電
原型:
long Donsee_4442_PowerOn (byte[] chUID)
參數:
chUID [out]上電返回數據,4字節廠(chǎng)商代碼
返回值:
>0:4442卡上電成功并作為有效數據長(cháng)度;
<=0:4442卡上電失敗,參考狀態(tài)碼
2.9.2 Donsee_4442_PowerOff 4442卡下電
定義:4442卡下電
原型:
long Donsee_4442_PowerOff ()
參數:
返回值:
0:4442卡下電成功;
非0:4442卡下電失敗,參考狀態(tài)碼
2.9.3 Donsee_4442_Read 4442卡讀數據
定義:4442卡讀取數據
原型:
long Donsee_4442_Read (int nOffset, int nLen, byte[]chData)
參數:
nOffset[in]起始地址
nLen[in]讀取數據長(cháng)度
chData [iout]讀取的數據內容
返回值:
>0:4442卡讀取數據成功并作為有效數據長(cháng)度;
<=0:4442卡讀取數據失敗,參考狀態(tài)碼
2.9.4 Donsee_4442_Write 4442卡寫(xiě)數據
定義:4442卡寫(xiě)入數據
原型:
long Donsee_4442_Read (int nOffset, int nLen, byte[]chData)
參數:
nOffset[in]起始地址
nLen[in]寫(xiě)入數據長(cháng)度
chData [in]寫(xiě)入的數據內容
返回值:
0:4442卡寫(xiě)入數據成功;
非0:4442卡寫(xiě)入數據失敗,參考狀態(tài)碼
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卡認證秘鑰失敗,參考狀態(tài)碼
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卡修改密鑰失敗,參考狀態(tài)碼
2.9.7 Donsee_4442_ReadProtect 4442卡讀保護數據
定義:4442卡讀取保護數據
原型:
long Donsee_4442_ReadProtect (int nOffset, int nLen, byte[]chData)
參數:
nOffset[in]起始地址,起始地址 需小于32
nLen[in]讀取數據長(cháng)度,數據長(cháng)度 需小于32
chData [iout]讀取的數據內容,返回值為一串00或01的數據串,如果為00代表已寫(xiě)保護,如果為01代表未寫(xiě)保護
返回值:
>0:4442卡讀保護數據成功并作為有效數據長(cháng)度;
<=0:4442卡讀保護數據失敗,參考狀態(tài)碼
2.9.8 Donsee_4442_WriteProtect 4442卡寫(xiě)保護數據
定義:4442卡寫(xiě)入保護數據,即固化數據,一旦寫(xiě)保護,數據將不能再修改
原型:
long Donsee_4442_WriteProtect (int nOffset, int nLen, byte[]chData)
參數:
nOffset[in]起始地址,起始地址 需小于32
nLen[in]讀取數據長(cháng)度,數據長(cháng)度 需小于32
chData [in]讀取的數據內容,返回值為一串00或01的數據串,如果為00代表已寫(xiě)保護,如果為01代表未寫(xiě)保護
返回值:
0:4442卡寫(xiě)保護數據成功;
非0:4442卡寫(xiě)保護數據失敗,參考狀態(tài)碼
2.9.9 Donsee_4442_ReadCount 4442卡密鑰剩余認證次數
定義:4442卡密鑰剩余認證次數
原型:
long Donsee_4442_ReadCount (int[] nCount)
參數:
nCount [0]4442卡密鑰剩余認次數
返回值:
0:獲取4442卡密鑰剩余認證次數成功;
非0:獲取4442卡密鑰剩余認證次數失敗,參考狀態(tài)碼
2.10磁條卡
2.10.1 Donsee_ReadMagCard磁條卡讀卡
定義:磁條卡讀卡
原型:
long Donsee_ReadMagCard (byte ctime,int track, byte[]rlen, byte[]getdata)
參數:
ctime[in]超時(shí)時(shí)間,單位:秒
track [in]磁道(1~3)磁道1~~磁道3,track=4時(shí)表示全軌一次性刷出
為T(mén)LV格式,例如:010101020201020303010203
rlen [in]返回數據的長(cháng)度
getdata [out]返回的數據
返回值:
0:磁條卡讀卡成功;
非0:磁條卡讀卡失敗,參考狀態(tài)碼
2.11北京通
class BJTCardInfo {
public String name; /*姓名*/
public String sex; /*性別*/
public String cardNO; /*北京通號*/
public String cardType; /*卡片類(lèi)型*/
public String cardName; /*證件名稱(chēng)*/
public String cardIssuer; /*發(fā)卡機構*/
}
2.11.1 Donsee_ReadBJTIDCard讀取北京通信息
定義:讀取北京通信息
原型:
long Donsee_ReadBJTIDCard (BJTCardInfo cardInfo);
參數:
cardInfo [out] 北京通信息
返回值:
0:讀取北京通信息成功;
非0:讀取北京通信息失敗,參考狀態(tài)碼
2.11.2 Donsee_ReadBJTIDCard_Photo讀取北京通照片
定義:讀取北京通信息
原型:
long Donsee_ReadBJTIDCard_Photo (byte[] cardInfoPhoto);
參數:
cardInfoPhoto[out] 北京通照片信息
返回值:
>0:讀取北京通照片信息成功并作為有效數據長(cháng)度;
<=0:讀取北京通照片信息失敗,參考狀態(tài)碼
2.12加密機
2.12.1 Donsee_iReadCardBas讀基本信息
定義:讀基本信息
原型:
long Donsee_iReadCardBas (int nType, byte[] info)
參數:
nType [in]卡片類(lèi)型 1接觸、2非接、3接觸+非接,非接優(yōu)先
info [out]返回的數據
返回值:
0:讀卡成功;
非0:讀卡失敗,參考狀態(tài)碼
//返回格式:發(fā)卡地區行政區劃代碼(卡識別碼前6位)|社會(huì )保障號碼|卡號|卡識別碼|姓名|卡復位信息(僅取歷史字節)|規范版本|發(fā)卡日期|卡有效期|終端機編號|終端設備號|
//返回舉例:
360700|360700199907151372|890642628|360700D156003335690999604657ED2D|張無(wú)忌|0081544B44869B160818107861|2.00|20180701|20280701|310000309109|65884835323437175132|
說(shuō)明:此函數讀三代社??ㄐ枰猵sam卡,否則返回-2201,二代社??梢灾苯幼x取
2.12.2 Donsee_iReadCardBas_HSM_Step1加密機步驟1
定義:加密機步驟1
原型:
long Donsee_iReadCardBas_HSM_Step1(int nType, byte[] info)
參數:
nType [in]卡片類(lèi)型 1接觸、2非接、3接觸+非接,非接優(yōu)先
info [out]返回的數據
返回值:
0:讀卡成功;
非0:讀卡失敗,參考狀態(tài)碼
//返回格式:發(fā)卡地行政區劃代碼|卡復位信息|算法標識|卡識別碼|內部認證過(guò)程因子|內部認證鑒別所需的原始信息|外部認證過(guò)程因子|外部認證鑒別所需的原始信息|
//返回舉例:
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:讀卡失敗,參考狀態(tài)碼
key為加密機返回的內部認證和外部認證結果數據,依次為:內部認證結果數據(即內部認證鑒別數據(16 位)和內部認證鑒別所需的原始信息(16 位)拼接組成)、外部認證結果數據(即外部認證鑒別數據(16 位)和外部認證鑒別所需的原始信息(16 位)拼接組成)。各數據項之間以“|”分割,且最后一個(gè)數據項以“|”結尾。
例如:96BBD0687A1667AD0102030405060708|A52BFF7396EEE45F0102030405060708|
//返回格式(和Donsee_iReadCardBas一樣):發(fā)卡地區行政區劃代碼(卡識別碼前6位)|社會(huì )保障號碼|卡號|卡識別碼|姓名|卡復位信息(僅取歷史字節)|規范版本|發(fā)卡日期|卡有效期|終端機編號|終端設備號|
//返回舉例:
360700|360700199907151372|890642628|360700D156003335690999604657ED2D|張無(wú)忌|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字節廠(chǎng)商代碼
返回值:
>0:4428卡上電成功并作為有效數據長(cháng)度;
<=0:4428卡上電失敗,參考狀態(tài)碼
2.13.2 Donsee_4428_PowerOff 4428卡下電
定義:4428卡下電
原型:
long Donsee_4428_PowerOff ()
參數:
返回值:
0:4428卡下電成功;
非0:4428卡下電失敗,參考狀態(tài)碼
2.13.3 Donsee_4428_Read 4428卡讀數據
定義:4428卡讀取數據
原型:
long Donsee_4428_Read (int nOffset, int nLen, byte[]chData)
參數:
nOffset[in]起始地址
nLen[in]讀取數據長(cháng)度
chData [iout]讀取的數據內容
返回值:
>0:4428卡讀取數據成功并作為有效數據長(cháng)度;
<=0:4428卡讀取數據失敗,參考狀態(tài)碼
2.13.4 Donsee_4428_Write 4428卡寫(xiě)數據
定義:4428卡寫(xiě)入數據
原型:
long Donsee_4428_Read (int nOffset, int nLen, byte[]chData)
參數:
nOffset[in]起始地址
nLen[in]寫(xiě)入數據長(cháng)度
chData [in]寫(xiě)入的數據內容
返回值:
0:4428卡寫(xiě)入數據成功;
非0:4428卡寫(xiě)入數據失敗,參考狀態(tài)碼
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卡認證秘鑰失敗,參考狀態(tài)碼
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卡修改密鑰失敗,參考狀態(tài)碼
2.13.7 Donsee_4428_ReadCount 4428卡密鑰剩余認證次數
定義:4428卡密鑰剩余認證次數
原型:
long Donsee_4428_ReadCount (int[] nCount)
參數:
nCount [0]4428卡密鑰剩余認次數
返回值:
0:獲取4428卡密鑰剩余認證次數成功;
非0:獲取4428卡密鑰剩余認證次數失敗,參考狀態(tài)碼
2.14輔助類(lèi)函數
2.14.1 Donsee_HexToStr 16進(jìn)制數組轉字符串
定義:16進(jìn)制數組轉字符串
原型:
StringbytesToHex (byte[]Src,int len);
參數:
Src[in]:十六進(jìn)制數組
Len[in]:數據長(cháng)度
返回值:
null:16進(jìn)制數組轉字符串成功;
null:16進(jìn)制數組轉字符串失敗,參考狀態(tài)碼
2.14.2 Donsee_StrToHex 字符串轉16進(jìn)制數組
定義:字符串轉16進(jìn)制數組
原型:byte[] hexToBytes (String Src);
參數:
Src[in]:hexstr格式字符串
返回值:
!null:字符串轉16進(jìn)制數組成功;
null:字符串轉16進(jìn)制數組失敗,參考狀態(tài)碼
3、狀態(tài)碼
IFD_OK0執行成功
IFD_ICC_TypeError-1卡片類(lèi)型不對
IFD_ICC_NoExist-2無(wú)卡
IFD_ICC_NoPower-3有卡未上電
IFD_ICC_NoResponse-4卡片無(wú)應答
IFD_ConnectError-11讀卡器連接錯
IFD_UnConnected-12未建立連接(沒(méi)有執行打開(kāi)設備函數)
IFD_BadCommand-13(動(dòng)態(tài)庫)不支持該命令
IFD_ParameterError-14(發(fā)給動(dòng)態(tài)庫的)命令參數錯
IFD_CheckSumError-15信息校驗和出錯
社??顟B(tài)碼
返回值錯誤信息描述
-1卡類(lèi)型不對
-2無(wú)卡
-3有卡未上電
-4卡無(wú)應答
-5加載動(dòng)態(tài)庫錯
-11讀卡器連接錯
-12未建立連接
-13(動(dòng)態(tài)庫)不支持該命令
-14(發(fā)給動(dòng)態(tài)庫的)命令參數錯
-15信息校驗和出錯
-18操作超時(shí)
-19發(fā)送數據失敗
-20卡識別碼格式錯
-21內部認證失?。ㄓ脩?hù)卡不合法)
-22傳入數據與卡內不符
-23傳入數據不合法
-24PSAM卡密鑰級別不夠
-25接收數據失敗
-31用戶(hù)取消密碼輸入
-32密碼輸入操作超時(shí)
-33輸入密碼長(cháng)度錯
-34兩次輸入密碼不一致
-35(預留)初始密碼不能交易
-36(預留)不能改為初始密碼
-41運算數據含非法字符
-42運算數據長(cháng)度錯
-51PIN校驗失敗,剩余次數N次(根據卡返回信息)
-52PIN鎖定
-2201無(wú)PSAM卡
-2202PSAM卡算法不支持(即PSAM卡內沒(méi)有SSF33算法或SM4算法)
-2203PSAM卡內沒(méi)有RKSSSE密鑰(3.0卡讀個(gè)人基本信息需要RKSSSE密鑰外部認證)
-2204不需要加密機認證
-25536、-25537、-25538、-25539、-25540、-25541外部認證失敗,剩余可嘗試次數0~5次
(注意:這個(gè)返回值表示馬上要鎖卡了,請不要再?lài)L試)
-26368Lc/Le不正確
-26881命令不接受(無(wú)效狀態(tài))
-27009命令與文件結構不相符、當前文件非所需文件
-27010不滿(mǎn)足安全條件
-27011密鑰鎖定(算法鎖定)鑒別方法鎖定
-27012引用數據無(wú)效、隨機數無(wú)效
-27013不滿(mǎn)足使用條件、應用被鎖定、應用未選擇、余額上溢
-27016安全報文數據項不正確、MAC不正確
-27264數據域參數不正確
-27265不支持該功能、卡中無(wú)MF、卡被鎖定、應用鎖定
-27266未找到文件、文件標識相重、SFI不正確
-27267未找到記錄
-27272未找到引用數據、未找到密鑰
-37634MAC無(wú)效
-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、設置為T(mén)ypeB卡片: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、讀/寫(xiě):Donsee_M1Read/Donsee_M1Write
串口方式:
1、尋卡:Donsee_ReadICUid
2、認證秘鑰:Donsee_M1VerifyPass ////KeyA 0x60,KeyB 0x61
3、讀/寫(xiě):Donsee_M1Read/Donsee_M1Write
4.4 4442卡
1 上電復位
2 認證
3 讀或寫(xiě)
4.5 接觸CPU卡
1、接觸冷復位:Donsee_ColdPowerOn
2、接觸APDU命令:Donsee_PowerOn_APDU
以下之所以沒(méi)有刪除,是留備用,請下載上面最新的。
USB接口最新版本(AS版本20211229-20230704New)↓
USB接口最新版本(AS版本20211229-20230713New)↓