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








































