Donsee Harmony鴻蒙二次開發(fā)API文檔(DonseeDeviceLib.har)
DONSEE系列多功能讀寫器Harmony API接口規(guī)范V1.0.2
DonseeDeviceLib.har
廣東東信智能科技有限公司
gzwubang.com
2024.03.06
DONSEE系列多功能讀寫器 1
Harmory API接口規(guī)范V1.0.2 1
DonseeDevice.har 1
1、智能讀寫器(SDK)簡介 5
2、函數(shù)說明 5
2.1通用函數(shù) 5
2.1.1 Donsee_Open打開設(shè)備 5
2.1.2 Donsee_Close關(guān)閉設(shè)備 5
2.1.3 Donsee_Beep蜂鳴器函數(shù) 6
2.1.4 Donsee_Version讀取設(shè)備版本 6
2.1.5 Donsee_SwitchRF設(shè)備天線開關(guān) 6
2.2身份證 6
2.2.1 Donsee_ReadIDCard讀取身份證信息 7
2.2.2 Donsee_ReadSAMID 讀取模塊SAM碼 7
2.2.3 Donsee_ReadIDCardUid 讀取身份證UID 8
2.3社保卡 8
2.3.1 Donsee_ReadSSCard讀取社??ㄐ畔?8
2.4非接觸類卡片前置函數(shù) 9
2.4.1 Donsee_ICRequest請(qǐng)求卡片 9
2.4.2 Donsee_ICAnticoll防碰撞 9
2.4.3 Donsee_ICSelect選擇卡片 9
2.5 TypeA、TypeB卡 10
2.5.1 Donsee_SetTypeA設(shè)置為TypeA 10
2.5.2 Donsee_SetTypeB設(shè)置為TypeB 10
2.5.3 Donsee_PowerOnTypeA TypeA卡上電復(fù)位 10
2.5.4 Donsee_PowerOnTypeB TypeB卡上電復(fù)位 10
2.5.5 Donsee_APDU執(zhí)行APDU命令 11
2.6 M1卡 11
2.6.1 Donsee_M1VerifyPass M1卡認(rèn)證秘鑰 11
2.6.3 Donsee_M1Read M1卡讀卡 11
2.6.4 Donsee_M1Write M1卡寫卡 12
2.6.5 Donsee_M1Initval M1卡初始化 12
2.6.6 Donsee_M1Increment M1卡增值 12
2.6.7 Donsee_M1Decrement M1卡減值 13
2.6.8 Donsee_M1Readval M1卡讀值 13
2.6.9 Donsee_M1LoadKey M1卡裝載密鑰 13
2.6.10 Donsee_ReadICUid讀取M1和CPU卡的Uid卡號(hào) 13
2.7接觸CPU卡 14
2.7.1 Donsee_PowerOn CPU卡上電復(fù)位 14
2.7.2 Donsee_ColdPowerOn 冷復(fù)位 14
2.7.3 Donsee_HotPowerOn 熱復(fù)位 15
2.7.4 Donsee_PowerOn_APDU CPU卡執(zhí)行APDU命令 15
2.7.5 Donsee_PowerOn_LongAPDU CPU卡執(zhí)行APDU命令 15
2.7.6 Donsee_PowerOff下電 16
2.8 15693卡 16
2.8.1 Donsee_15693_Find 15693尋卡 16
2.8.2 Donsee_15693_Info 15693獲取卡片詳細(xì)信息 16
2.8.3 Donsee_15693_Read 15693讀卡 17
2.8.4 Donsee_15693_Write 15693寫卡 17
2.8.5 Donsee_15693_WriteAFI 15693寫AFI 17
2.8.6 Donsee_15693_LockAFI 15693鎖AFI 17
2.8.7 Donsee_15693_WriteDSFID 15693寫DSFID 18
2.8.8 Donsee_15693_LockDSFID 15693鎖DSFID 18
2.8.9 Donsee_15693_LockDataBlock用于鎖定塊內(nèi)容 18
2.9加密機(jī) 19
2.9.1 Donsee_iReadCardBas讀基本信息 19
2.9.2 Donsee_iReadCardBas_HSM_Step1加密機(jī)步驟1 19
2.9.3 Donsee_iReadCardBas_HSM_Step2加密機(jī)步驟2 20
2.10 銀行卡 20
2.10.1 Donsee_GetBankCardNo 讀取銀行卡信息 20
2.11輔助類函數(shù) 21
2.11.1 bytesToHex 16進(jìn)制數(shù)組轉(zhuǎn)字符串 21
2.11.2 hexToBytes 字符串轉(zhuǎn)16進(jìn)制數(shù)組 21
3、狀態(tài)碼 21
4、卡片調(diào)用順序 23
4.1 TypeA卡 23
4.2 TypeB卡 23
4.3 M1卡 23
4.4 4442卡 23
4.5 接觸CPU卡 24
1、東信智能讀寫器(SDK)簡介
本文檔描述了廣東東信智能科技有限公司DONSEE系列讀寫器Harmony鴻蒙SDK的函數(shù)定義、調(diào)用方法、參數(shù)以及返回值說明,供開發(fā)人員進(jìn)行二次開發(fā)時(shí)使用。Harmony鴻蒙SDK需要廠商提前預(yù)置USB設(shè)備讀寫權(quán)限,如果您的鴻蒙設(shè)備是定制設(shè)備,遇到找不到設(shè)備時(shí),請(qǐng)?jiān)儐栐O(shè)備定制方是否開放了USB接口的系統(tǒng)層權(quán)限。
2、函數(shù)說明
2.1通用函數(shù)
2.1.1 Donsee_Open打開設(shè)備
定義:打開設(shè)備端口
原型:
int Donsee_Open(string dev_Name)
參數(shù):
USB設(shè)備傳入”USB”;串口設(shè)備傳入”/dev/ttyS0”,” /dev /ttyUSB0”,” /dev/ ttySAC0”等
返回值:
0: 打開設(shè)備成功;
非0: 打開設(shè)備失敗,參考狀態(tài)碼
2.1.2 Donsee_Close關(guān)閉設(shè)備
定義:關(guān)閉設(shè)備端口
原型:
int Donsee_Close()
參數(shù):無
返回值:
0: 關(guān)閉設(shè)備成功;
非0: 關(guān)閉設(shè)備失敗,參考狀態(tài)碼
2.1.3 Donsee_Beep蜂鳴器函數(shù)
定義:調(diào)用設(shè)備蜂鳴器
原型:
int Donsee_Beep(int millisecond)
參數(shù):
Millisecond:蜂鳴時(shí)長
返回值:
0: 調(diào)用蜂鳴器成功;
非0: 調(diào)用蜂鳴器失敗,參考狀態(tài)碼
2.1.4 Donsee_Version讀取設(shè)備版本
定義:讀取設(shè)備版本號(hào)
原型:
[result,version] Donsee_Version ()
參數(shù):
無
返回值:
result =0: 獲取設(shè)備版本成功;
result <0: 獲取設(shè)備版本失敗,參考狀態(tài)碼
version: 設(shè)備版本號(hào)
2.1.5 Donsee_SwitchRF設(shè)備天線開關(guān)
定義:設(shè)備天線開關(guān)
原型:
int Donsee_SwitchRF (int nType)
參數(shù):
nType 1,打開設(shè)備天線;0,關(guān)閉設(shè)備天線
返回值:
0: 天線開關(guān)操作成功;
非0: 天線開關(guān)操作失敗,參考狀態(tài)碼
2.2身份證
class IDCardInfo {
public result: number /*返回值*/
public name: string /*中文姓名*/
public ENfullname: string /*英文姓名*/
public ENfullnameOther: string /*英文姓名備用*/
public changCount: string /*簽發(fā)數(shù)次*/
public sex: string /*性別*/
public people: string /*民族*/
public birthday: string /*出生日期(YYYYMMDD)*/
public address: string /*地址*/
public number: string /*證件號(hào)碼*/
public organs: string /*發(fā)證機(jī)關(guān)(或外國人永久居住正-當(dāng)次申請(qǐng)受理機(jī)關(guān))*/
public signdate: string/*發(fā)證日期(YYYYMMDD)*/
public validterm: string/*有效日期(YYYYMMDD)*/
public certType: string /*卡片類型,0:居民身份證,I:外國人,J:港澳臺(tái),Y:新版外國人*/
public certVersion: string /*證件版本*/
public oldNumber: string /*既往版本永居證號(hào)碼*/
public nationality: string /*國籍*/
public passNu: string /*通行證號(hào)*/
public signCount: string /*簽發(fā)數(shù)次*/
public imgBase64: string /*讀取二代證電子信息時(shí)保存照片數(shù)據(jù)信息Base64格式*/
public figData: string /*指紋信息*/
}
2.2.1 Donsee_ReadIDCard讀取身份證信息
定義:讀取身份證信息
原型:IDCardInfo Donsee_ReadIDCard (int nType);
參數(shù):
nType: 設(shè)置身份證讀卡類型:0,文本信息;1,文本+照片;2,文本+照片+指紋
返回值:IDCardInfo對(duì)象
IDCardInfo.result 0: 讀取身份證信息成功;
IDCardInfo.result 非0: 讀取身份證信息失敗,參考狀態(tài)碼
2.2.2 Donsee_ReadSAMID 讀取模塊SAM碼
定義:讀取身份證模塊SAM碼
原型:[result,data] Donsee_ReadSAMID ();
參數(shù):
無
返回值:
result 0: 讀取身份證模塊SAM碼成功;
result 非0: 讀取身份證模塊SAM碼失敗,參考狀態(tài)碼
data: 身份證模塊SAM碼
2.2.3 Donsee_ReadIDCardUid 讀取身份證UID
定義:讀取身份證UID
原型:[result,data] Donsee_ReadIDCardUid();
參數(shù):
無
返回值:
result 0: 讀取身份證UID成功;
result非0: 讀取身份證UID失敗,參考狀態(tài)碼
data: 身份證UID碼
2.3社???/p>
public class SciCardInfo {
public result: number /*返回值*/
public name: string /*姓名*/
public sex: string /*性別*/
public city: string /*城市代碼*/
public cardveVrsion: string /*社??ò姹?/
public cardnumber: string /*卡號(hào)*/
public signdate: string /*發(fā)證日期(YYYYMMDD)*/
public validterm: string /*有效日期(YYYYMMDD)*/
public idnumber: string /*社會(huì)保障號(hào)碼(身份證號(hào))*/
public birthday: string /*出生日期(YYYYMMDD)*/
public nation: string /*民族*/
public errMsg: string /*失敗詳情*/
}
2.3.1 Donsee_ReadSSCard讀取社??ㄐ畔?/p>
定義:讀取二代、三代社???/p>
原型:
SciCardInfo Donsee_ReadSSCard ( int nSlotPsam,
int nType)
參數(shù):
nSlotPsam PSAM存放卡座,1 SAM1, 2 SAM2, 3 SAM3, 4 SAM4
nType 有無SAM卡(針對(duì)三代社???
1,有SAM卡返回全部信息
2,無SAM卡返回卡號(hào)
返回值:SciCardInfo對(duì)象
SciCardInfo.result 0: 讀取社保卡成功;
SciCardInfo.result 非0: 讀取社保卡失敗,參考狀態(tài)碼
備注:二代社??o需PSAM卡,只支持接觸式讀取。三代社??ū仨毰鋫銹SAM卡,支持接觸、非接兩種方式讀取。三代社??oPSAM卡只返回卡號(hào)。
2.4非接觸類卡片前置函數(shù)
2.4.1 Donsee_ICRequest請(qǐng)求卡片
定義:請(qǐng)求卡片
原型:
int Donsee_ICRequest ()
參數(shù):
返回值:
0: 請(qǐng)求卡片成功;
非0: 請(qǐng)求卡片失敗,參考狀態(tài)碼
2.4.2 Donsee_ICAnticoll防碰撞
定義:卡片防碰撞
原型:
[result,data] Donsee_ICAnticoll ()
參數(shù):
無
返回值:
result 0: 卡片防碰撞成功;
result 非0: 卡片防碰撞失敗,參考狀態(tài)碼
data: 卡片序列號(hào)Uid
2.4.3 Donsee_ICSelect選擇卡片
定義:選擇卡片
原型:
int Donsee_ICSelect (int nCardType)
參數(shù):
nCardType 0x41 表示 typeA 及M1 卡,0x43 表示 typeB卡
返回值:
0: 選擇卡片成功;
非0: 選擇卡片失敗,參考狀態(tài)碼
2.5 TypeA、TypeB卡
2.5.1 Donsee_SetTypeA設(shè)置為TypeA
定義:設(shè)置為TypeA卡
原型:
int Donsee_SetTypeA ()
參數(shù):
返回值:
0: 設(shè)置為TypeA卡成功;
非0: 設(shè)置為TypeA卡失敗,參考狀態(tài)碼
2.5.2 Donsee_SetTypeB設(shè)置為TypeB
定義:設(shè)置為TypeB卡
原型:
int Donsee_SetTypeB ()
參數(shù):
返回值:
0: 設(shè)置為TypeB卡成功;
非0: 設(shè)置為TypeB卡失敗,參考狀態(tài)碼
2.5.3 Donsee_PowerOnTypeA TypeA卡上電復(fù)位
定義:TypeA上電
原型:
[result,data] Donsee_ PowerOnTypeA ()
參數(shù):
無
返回值:
result 0: TypeA上電成功;
result 非0: TypeA上電失敗,參考狀態(tài)碼
data: 卡片復(fù)位信息(ATR)
2.5.4 Donsee_PowerOnTypeB TypeB卡上電復(fù)位
定義:TypeB上電
原型:
[result,data] Donsee_PowerOnTypeB()
參數(shù):
無
返回值:
result 0: TypeB上電成功;
result 非0: TypeB上電失敗,參考狀態(tài)碼
data: 卡片復(fù)位信息(ATR)
2.5.5 Donsee_APDU執(zhí)行APDU命令
定義:TypeA|TypeB執(zhí)行APDU命令
原型:
[result,data] Donsee_APDU (string Command_APDU)
參數(shù):
Command_APDU 下發(fā)APDU命令(字符串”0084000008”)
返回值:
result 0: 執(zhí)行APDU命令成功;
result 非0: 執(zhí)行APDU命令失敗,參考狀態(tài)碼
data: 執(zhí)行APDU返回的相應(yīng)數(shù)據(jù)(字符串如”9000”)
2.6 M1卡
2.6.1 Donsee_M1VerifyPass M1卡認(rèn)證秘鑰
定義:M1卡認(rèn)證秘鑰
原型:
int Donsee_M1VerifyPass ( int nMode, int nSecNr,string PassWord);
參數(shù):
nMode 認(rèn)證模式, 0x60 認(rèn)證KeyA|0x61 認(rèn)證KeyB
nSecNr 扇區(qū)號(hào) (0~15)
PassWord 密鑰(如:”FFFFFFFFFFFF”)
返回值:
0: M1卡認(rèn)證秘鑰成功;
非0: M1卡認(rèn)證秘鑰失敗,參考狀態(tài)碼
2.6.3 Donsee_M1Read M1卡讀卡
定義:M1卡讀卡
原型:
[result,data] Donsee_M1Read(int Addr)
參數(shù):
Addr 塊號(hào)(S50該值范圍0~63| S70該值范圍0~255)
返回值:
result 0: M1卡讀卡成功;
result 非0: M1卡讀卡失敗,參考狀態(tài)碼
data: 讀取到的數(shù)據(jù)
2.6.4 Donsee_M1Write M1卡寫卡
定義:M1卡寫卡
原型:
int Donsee_M1Write(int Addr,string chData)
參數(shù):
Addr 塊號(hào)(S50該值范圍0~63| S70該值范圍0~255)
chData 待寫數(shù)據(jù)
塊地址計(jì)算公式:塊地址=扇區(qū)號(hào)*4+當(dāng)前塊號(hào)
返回值:
0: M1卡寫卡成功;
非0: M1卡寫卡失敗,參考狀態(tài)碼
2.6.5 Donsee_M1Initval M1卡初始化
定義:M1卡初始化
原型:
int Donsee_M1Initval (int nAddr, int nValue)
參數(shù):
nAddr 塊號(hào)(S50該值范圍0~63| S70該值范圍0~255)
nValue 數(shù)值
返回值:
0: M1卡初始化成功;
非0: M1卡初始化失敗,參考狀態(tài)碼
2.6.6 Donsee_M1Increment M1卡增值
定義:M1卡增值
原型:
int Donsee_M1Increment (int nAddr, int nValue)
參數(shù):
nAddr 塊號(hào)(S50該值范圍0~63| S70該值范圍0~255)
nValue 數(shù)值
返回值:
0: M1卡增值成功;
非0: M1卡增值失敗,參考狀態(tài)碼
2.6.7 Donsee_M1Decrement M1卡減值
定義:M1卡減值
原型:
int Donsee_M1Decrement (int nAddr, int nValue)
參數(shù):
nAddr 塊號(hào)(S50該值范圍0~63| S70該值范圍0~255)
nValue 數(shù)值
返回值:
0: M1卡減值成功;
非0: M1卡減值失敗,參考狀態(tài)碼
2.6.8 Donsee_M1Readval M1卡讀值
定義:M1卡讀值
原型:
int Donsee_M1Readval (int nAddr)
參數(shù):
nAddr 塊號(hào)(S50該值范圍0~63| S70該值范圍0~255)
返回值:
result 0: M1卡讀值成功返回值作為數(shù)值;
result 非0: M1卡讀值失敗,參考狀態(tài)碼
2.6.9 Donsee_M1LoadKey M1卡裝載密鑰
定義:裝載M1卡密鑰到設(shè)備
原型:
int Donsee_M1LoadKey (int nMode, int nSecNr, stringPassWord);
參數(shù):
nMode 認(rèn)證模式, 0x00 認(rèn)證KeyA|0x04 認(rèn)證KeyB
nSecNr 扇區(qū)號(hào) (0~15)
PassWord 待下載到設(shè)備的密鑰
返回值:
0: M1卡裝載密鑰成功;
非0: M1卡裝載密鑰失敗,參考狀態(tài)碼
2.6.10 Donsee_ReadICUid讀取M1和CPU卡的Uid卡號(hào)
定義:讀取M1和CPU卡UID
原型:
[result,data] Donsee_ReadICUid ()
參數(shù):
無
返回值:
result 0: 讀取M1和CPU卡的Uid卡號(hào)成功;
result 非0: 讀取M1和CPU卡的Uid卡號(hào)失敗,參考狀態(tài)碼
data 卡片序列號(hào)
2.7接觸CPU卡
2.7.1 Donsee_PowerOn CPU卡上電復(fù)位
定義:CPU卡上電復(fù)位
原型:
[result,data] Donsee_PowerOn (int nSlotNo)
參數(shù):
nSlotNo 卡座選擇: 0 大卡座, 5:副卡座 ;
1:SAM1卡座;2:SAM2卡座;
3:SAM3卡座;4:SAM4卡座
返回值:
result 0: 卡片復(fù)位成功;
result 非0: 卡片復(fù)位失敗,參考狀態(tài)碼
data 卡片返回復(fù)位信息數(shù)據(jù)
2.7.2 Donsee_ColdPowerOn 冷復(fù)位
定義:接觸CPU卡冷復(fù)位
原型:
[result,data] Donsee_ColdPowerOn (int nSlotNo)
參數(shù):
nSlotNo 卡座選擇: 0 大卡座, 5:副卡座 ;
1:SAM1卡座;2:SAM2卡座;
3:SAM3卡座;4:SAM4卡座
返回值:
result 0: 卡片復(fù)位成功;
result 非0: 卡片復(fù)位失敗,參考狀態(tài)碼
data 卡片返回復(fù)位信息數(shù)據(jù)
2.7.3 Donsee_HotPowerOn 熱復(fù)位
定義:接觸CPU卡熱復(fù)位
原型:
[result,data] Donsee_HotPowerOn (int nSlotNo)
參數(shù):
nSlotNo 卡座選擇: 0 大卡座, 5:副卡座 ;
1:SAM1卡座;2:SAM2卡座;
3:SAM3卡座;4:SAM4卡座
返回值:
result 0: 卡片復(fù)位成功;
result 非0: 卡片復(fù)位失敗,參考狀態(tài)碼
data 卡片返回復(fù)位信息數(shù)據(jù)
2.7.4 Donsee_PowerOn_APDU CPU卡執(zhí)行APDU命令
定義:執(zhí)行APDU命令
原型:
[result,data] Donsee_PowerOn_APDU( int nSlotNo, string Command_APDU)
參數(shù):
nSlotNo 卡座選擇: 0 大卡座, 5:副卡座 ;
1:SAM1卡座;2:SAM2卡座;
3:SAM3卡座;4:SAM4卡座
Command_APDU 下發(fā)APDU命令(字符串”0084000008”)
返回值:
result 0: 執(zhí)行APDU命令成功;
result 非0: 執(zhí)行APDU命令失敗,參考狀態(tài)碼
data 執(zhí)行APDU相應(yīng)數(shù)據(jù)(字符串如”9000”)
2.7.5 Donsee_PowerOn_LongAPDU CPU卡執(zhí)行APDU命令
定義:執(zhí)行APDU命令
原型:
[result,data] Donsee_PowerOn_LongAPDU ( int nSlotNo, string Command_APDU)
參數(shù):
nSlotNo 卡座選擇: 0 大卡座, 5:副卡座 ;
1:SAM1卡座;2:SAM2卡座;
3:SAM3卡座;4:SAM4卡座
Command_APDU 下發(fā)APDU命令(字符串”0084000008”)
返回值:
result 0: 執(zhí)行APDU命令成功;
result 非0: 執(zhí)行APDU命令失敗,參考狀態(tài)碼
data 執(zhí)行APDU相應(yīng)數(shù)據(jù)(字符串如”9000”)
2.7.6 Donsee_PowerOff下電
定義:CPU卡下電
原型:
int Donsee_PowerOff (int nSlotNo)
參數(shù):
nSlotNo 卡座選擇: 0 大卡座, 5:副卡座 ;
1:SAM1卡座;2:SAM2卡座;
3:SAM3卡座;4:SAM4卡座
返回值:
0: CPU卡下電成功;
非0: CPU卡下電失敗,參考狀態(tài)碼
2.8 15693卡
2.8.1 Donsee_15693_Find 15693尋卡
定義:15693尋卡
原型:
[result,data] Donsee_15693_Find ()
參數(shù):
無
返回值:
result 0: 15693尋卡成功;
result 非0: 15693尋卡失敗,參考狀態(tài)碼
data 尋卡得到8字節(jié)卡片數(shù)據(jù)
2.8.2 Donsee_15693_Info 15693獲取卡片詳細(xì)信息
定義:獲取15693卡詳細(xì)信息
原型:
[result,data] Donsee_15693_Info (string chCardInfo)
參數(shù):
chCardInfo [out] 14字節(jié)卡片數(shù)據(jù);
返回值:
result 0: 獲取15693卡詳細(xì)信息成功;
result 非0: 獲取15693卡詳細(xì)信息失敗,參考狀態(tài)碼
data 14字節(jié)卡片數(shù)據(jù)
2.8.3 Donsee_15693_Read 15693讀卡
定義:15693讀卡
原型:
[result,data] Donsee_15693_Read (int nBlkAdd)
參數(shù):
nBlkAdd 塊地址
返回值:
result 0: 15693讀卡成功并作為有效數(shù)據(jù)長度;
result 非0: 15693讀卡失敗,參考狀態(tài)碼
data 讀取到的數(shù)據(jù)
2.8.4 Donsee_15693_Write 15693寫卡
定義:15693寫卡
原型:
int Donsee_15693_Write (int nBlkAdd, string chData)
參數(shù):
nBlkAdd 塊地址
chData 要寫入的卡片數(shù)據(jù);
返回值:
0: 15693寫卡成功;
非0: 15693寫卡失敗,參考狀態(tài)碼
2.8.5 Donsee_15693_WriteAFI 15693寫AFI
定義:15693寫AFI
原型:
int Donsee_15693_WriteAFI (int data)
參數(shù):
data 為0表示寫AFI,為1則表示鎖AFI
返回值:
0: 15693寫AFI成功;
非0: 15693寫AFI失敗,參考狀態(tài)碼
2.8.6 Donsee_15693_LockAFI 15693鎖AFI
定義:15693寫AFI
原型:
int Donsee_15693_LookAFI (int data)
參數(shù):
data 為0表示寫AFI,為1則表示鎖AFI
返回值:
0: 15693鎖AFI成功;
非0: 15693鎖AFI失敗,參考狀態(tài)碼
2.8.7 Donsee_15693_WriteDSFID 15693寫DSFID
定義:15693寫DSFID
原型:
int Donsee_15693_WriteDSFID (int data)
參數(shù):
data 為0表示寫DSFID,為1則表示鎖DSFID
返回值:
0: 15693寫DSFID成功;
非0: 15693寫DSFID 失敗,參考狀態(tài)碼
2.8.8 Donsee_15693_LockDSFID 15693鎖DSFID
定義:15693鎖DSFID
原型:
int Donsee_15693_LockDSFID (string data)
參數(shù):
data 為0表示寫AFI,為1則表示鎖AFI
返回值:
0: 15693鎖DSFID成功;
非0: 15693鎖DSFID失敗,參考狀態(tài)碼
2.8.9 Donsee_15693_LockDataBlock用于鎖定塊內(nèi)容
定義:用于鎖定塊內(nèi)容。注意:此過程不可逆(不能解鎖)塊鎖定后內(nèi)容不能在修改。
原型:
int Donsee_15693_LockDataBlock(int blk_add)
參數(shù):
blk_add 塊地址
返回值:
0: 15693鎖塊內(nèi)容成功;
非0: 15693鎖塊內(nèi)容失敗,參考狀態(tài)碼
2.9加密機(jī)
2.9.1 Donsee_iReadCardBas讀基本信息
定義:讀基本信息
原型:
[result,data] Donsee_iReadCardBas (int nType)
參數(shù):
nType 卡片類型 1接觸、2非接、3接觸+非接,非接優(yōu)先
返回值:
result 0: 讀卡成功;
result 非0: 讀卡失敗,參考狀態(tài)碼
//返回格式:發(fā)卡地區(qū)行政區(qū)劃代碼(卡識(shí)別碼前6位)|社會(huì)保障號(hào)碼|卡號(hào)|卡識(shí)別碼|姓名|卡復(fù)位信息(僅取歷史字節(jié))|規(guī)范版本|發(fā)卡日期|卡有效期|終端機(jī)編號(hào)|終端設(shè)備號(hào)|
//返回舉例:
360700|360700199907151372|890642628|360700D156003335690999604657ED2D|張無忌|0081544B44869B160818107861|2.00|20180701|20280701|310000309109|65884835323437175132|
說明:此函數(shù)讀三代社??ㄐ枰猵sam卡,否則返回-2201,二代社??梢灾苯幼x取
2.9.2 Donsee_iReadCardBas_HSM_Step1加密機(jī)步驟1
定義:加密機(jī)步驟1
原型:
[result,data] Donsee_iReadCardBas_HSM_Step1(int nType)
參數(shù):
nType 卡片類型 1接觸、2非接、3接觸+非接,非接優(yōu)先
返回值:
result 0: 讀卡成功;
result 非0: 讀卡失敗,參考狀態(tài)碼
data 返回的數(shù)據(jù)
//返回格式:發(fā)卡地行政區(qū)劃代碼|卡復(fù)位信息|算法標(biāo)識(shí)|卡識(shí)別碼|內(nèi)部認(rèn)證過程因子|內(nèi)部認(rèn)證鑒別所需的原始信息|外部認(rèn)證過程因子|外部認(rèn)證鑒別所需的原始信息|
//返回舉例:
440100|00814A66678660440100AC8FE3|03|440100D15600880600AC8FE3257118AC|7EFCD0C331DA50AC|0102030405060708|DB25A7E8ABD59B1B|0102030405060708|
2.9.3 Donsee_iReadCardBas_HSM_Step2加密機(jī)步驟2
定義:加密機(jī)步驟2
原型:
[result,data] Donsee_iReadCardBas_HSM_Step2 (string key)
參數(shù):
key 密鑰,即加密機(jī)返回的信息
返回值:
result 0: 讀卡成功;
result 非0: 讀卡失敗,參考狀態(tài)碼
data 返回的數(shù)據(jù)
key為加密機(jī)返回的內(nèi)部認(rèn)證和外部認(rèn)證結(jié)果數(shù)據(jù),依次為:內(nèi)部認(rèn)證結(jié)果數(shù)據(jù)(即內(nèi)部認(rèn)證鑒別數(shù)據(jù)(16 位)和內(nèi)部認(rèn)證鑒別所需的原始信息(16 位)拼接組成)、外部認(rèn)證結(jié)果數(shù)據(jù)(即外部認(rèn)證鑒別數(shù)據(jù)(16 位)和外部認(rèn)證鑒別所需的原始信息(16 位)拼接組成)。各數(shù)據(jù)項(xiàng)之間以“|”分割,且最后一個(gè)數(shù)據(jù)項(xiàng)以“|”結(jié)尾。
例如:96BBD0687A1667AD0102030405060708|A52BFF7396EEE45F0102030405060708|
//返回格式(和Donsee_iReadCardBas一樣):發(fā)卡地區(qū)行政區(qū)劃代碼(卡識(shí)別碼前6位)|社會(huì)保障號(hào)碼|卡號(hào)|卡識(shí)別碼|姓名|卡復(fù)位信息(僅取歷史字節(jié))|規(guī)范版本|發(fā)卡日期|卡有效期|終端機(jī)編號(hào)|終端設(shè)備號(hào)|
//返回舉例:
360700|360700199907151372|890642628|360700D156003335690999604657ED2D|張無忌|0081544B44869B160818107861|2.00|20180701|20280701|310000309109|65884835323437175132|
2.10 銀行卡
2.10.1 Donsee_GetBankCardNo 讀取銀行卡信息
定義:讀取銀行卡信息
原型:
[result,data] Donsee_GetBankCardNo (string data)
參數(shù):
返回值:
result 0: 銀行卡有效數(shù)據(jù)長度;
result 非0: 讀取銀行卡數(shù)據(jù)失敗,參考狀態(tài)碼
data 返回銀行卡的卡號(hào)數(shù)據(jù);
2.11輔助類函數(shù)
2.11.1 bytesToHex 16進(jìn)制數(shù)組轉(zhuǎn)字符串
定義:16進(jìn)制數(shù)組轉(zhuǎn)字符串
原型:
bytesToHex (array Src);
參數(shù):
Src: 十六進(jìn)制數(shù)組
返回值:
null: 16進(jìn)制數(shù)組轉(zhuǎn)字符串成功;
null: 16進(jìn)制數(shù)組轉(zhuǎn)字符串失敗,參考狀態(tài)碼
2.11.2 hexToBytes 字符串轉(zhuǎn)16進(jìn)制數(shù)組
定義:字符串轉(zhuǎn)16進(jìn)制數(shù)組
原型:Array hexToBytes (string Src);
參數(shù):
Src: hexstr格式字符串
返回值:
!null: 字符串轉(zhuǎn)16進(jìn)制數(shù)組成功;
null: 字符串轉(zhuǎn)16進(jìn)制數(shù)組失敗,參考狀態(tài)碼
3、狀態(tài)碼
IFD_OK 0 執(zhí)行成功
IFD_ICC_TypeError -1 卡片類型不對(duì)
IFD_ICC_NoExist -2 無卡
IFD_ICC_NoPower -3 有卡未上電
IFD_ICC_NoResponse -4 卡片無應(yīng)答
IFD_ConnectError -11 讀卡器連接錯(cuò)
IFD_UnConnected -12 未建立連接(沒有執(zhí)行打開設(shè)備函數(shù))
IFD_BadCommand -13 (動(dòng)態(tài)庫)不支持該命令
IFD_ParameterError -14 (發(fā)給動(dòng)態(tài)庫的)命令參數(shù)錯(cuò)
IFD_CheckSumError -15 信息校驗(yàn)和出錯(cuò)
社??顟B(tài)碼
返回值 錯(cuò)誤信息描述
-1 卡類型不對(duì)
-2 無卡
-3 有卡未上電
-4 卡無應(yīng)答
-5 加載動(dòng)態(tài)庫錯(cuò)
-11 讀卡器連接錯(cuò)
-12 未建立連接
-13 (動(dòng)態(tài)庫)不支持該命令
-14 (發(fā)給動(dòng)態(tài)庫的)命令參數(shù)錯(cuò)
-15 信息校驗(yàn)和出錯(cuò)
-18 操作超時(shí)
-19 發(fā)送數(shù)據(jù)失敗
-20 卡識(shí)別碼格式錯(cuò)
-21 內(nèi)部認(rèn)證失敗(用戶卡不合法)
-22 傳入數(shù)據(jù)與卡內(nèi)不符
-23 傳入數(shù)據(jù)不合法
-24 PSAM卡密鑰級(jí)別不夠
-25 接收數(shù)據(jù)失敗
-31 用戶取消密碼輸入
-32 密碼輸入操作超時(shí)
-33 輸入密碼長度錯(cuò)
-34 兩次輸入密碼不一致
-35(預(yù)留) 初始密碼不能交易
-36(預(yù)留) 不能改為初始密碼
-41 運(yùn)算數(shù)據(jù)含非法字符
-42 運(yùn)算數(shù)據(jù)長度錯(cuò)
-51 PIN校驗(yàn)失敗,剩余次數(shù)N次(根據(jù)卡返回信息)
-52 PIN鎖定
-2201 無PSAM卡
-2202 PSAM卡算法不支持(即PSAM卡內(nèi)沒有SSF33算法或SM4算法)
-2203 PSAM卡內(nèi)沒有RKSSSE密鑰(3.0卡讀個(gè)人基本信息需要RKSSSE密鑰外部認(rèn)證)
-2204 不需要加密機(jī)認(rèn)證
-25536、-25537、-25538、-25539、-25540、-25541 外部認(rèn)證失敗,剩余可嘗試次數(shù)0~5次
(注意:這個(gè)返回值表示馬上要鎖卡了,請(qǐng)不要再嘗試)
-26368 Lc/Le不正確
-26881 命令不接受(無效狀態(tài))
-27009 命令與文件結(jié)構(gòu)不相符、當(dāng)前文件非所需文件
-27010 不滿足安全條件
-27011 密鑰鎖定(算法鎖定)鑒別方法鎖定
-27012 引用數(shù)據(jù)無效、隨機(jī)數(shù)無效
-27013 不滿足使用條件、應(yīng)用被鎖定、應(yīng)用未選擇、余額上溢
-27016 安全報(bào)文數(shù)據(jù)項(xiàng)不正確、MAC不正確
-27264 數(shù)據(jù)域參數(shù)不正確
-27265 不支持該功能、卡中無MF、卡被鎖定、應(yīng)用鎖定
-27266 未找到文件、文件標(biāo)識(shí)相重、SFI不正確
-27267 未找到記錄
-27272 未找到引用數(shù)據(jù)、未找到密鑰
-37634 MAC無效
-37635 應(yīng)用已被永久鎖定、卡片鎖定
-37891 PSAM卡不支持消費(fèi)交易
-37894 所需MAC(或/和TAC)不可用
其他 未知錯(cuò)誤
4、卡片調(diào)用順序
4.1 TypeA卡
1、尋卡:Donsee_ICRequest
2、防碰撞:Donsee_ICAnticoll
3、選卡:Donsee_ICSelect
4、TypeA上電:Donsee_PowerOnTypeA
5、APDU命令:Donsee_APDU
4.2 TypeB卡
1、設(shè)置為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、認(rèn)證秘鑰:Donsee_M1VerifyPass //KeyA 0x60,KeyB 0x61
5、讀/寫:Donsee_M1Read/Donsee_M1Write
串口方式:
1、尋卡:Donsee_ReadICUid
2、認(rèn)證秘鑰:Donsee_M1VerifyPass ////KeyA 0x60,KeyB 0x61
3、讀/寫:Donsee_M1Read/Donsee_M1Write
4.4 4442卡
1 上電復(fù)位
2 認(rèn)證
3 讀或?qū)?/p>
4.5 接觸CPU卡
1、接觸冷復(fù)位:Donsee_ColdPowerOn
2、接觸APDU命令:Donsee_PowerOn_APDU