EST-100R系列SDK開發(fā)包(含二維碼、身份證、社??āPU、M1、磁條卡、銀行卡等卡)
本開發(fā)包適用以上廣東東信智能科技有限公司DONSEE EST-100R系列產(chǎn)品,EST-100R是一款融合了身份證、社??ā⒁欢S碼掃碼墩、磁條卡技術(shù)、接觸式、非接觸式智能卡技術(shù)及密碼鍵盤于一身的多功能智能卡讀寫器。
各平臺(tái)開發(fā)包下載地址如下:
2、Windows Dll開發(fā)庫(kù)和文檔下載20231115
9、EST-100R-38號(hào)文接口-32位-20230517
10、EST-100R_38號(hào)文接口_X64-20230330
DONSEE EST-100R系列
多合一讀寫器接口規(guī)范
廣東東信智能科技有限公司
2023.05.12
一、外部方法
動(dòng)態(tài)庫(kù)名:SSCARDInterface.dll
依賴庫(kù):BmpToJpg.dll、Device.dll、SSE32.dll、SW100.dll、UnPack.dll和SSCARDInterface.dll放相同目錄
1.1打開設(shè)備
long WINAPI iOpenPort(char* ErrMsg);
參數(shù):ErrMsg:[OUT]返回錯(cuò)誤信息,下同
返回值:非0表示失敗
1.2關(guān)閉設(shè)備
long WINAPI iClosePort();
返回值:非0表示失敗
蜂鳴器
long WINAPI iPosBeep ();
返回值:非0表示失敗
1.3讀取身份證/港澳臺(tái)居住證信息
函數(shù)原型:
long WINAPI iReaderIDCard_CS(char* pPicFilePath, char* cardinfo, char* dsp, char* ErrMsg);
功能:讀取身份證信息
參數(shù):pPicFilePath:[IN]照片路徑,例:D:\\zp.bmp
Cardinfo:[OUT] 讀卡成功時(shí)返回 "姓名|性別|民族|出生日期|地址|身份證號(hào)|發(fā)卡機(jī)關(guān)|發(fā)卡日期|卡有效期|證件類型|"。
證件類型:I:外國(guó)人 J:港澳臺(tái)居住證,居民身份證為空格
dsp[OUT] 身份證照片base64數(shù)據(jù)
返回值:非0表示失敗
讀取身份證UID
long WINAPI iReadCertID_CS(char* cardinfo, char* ErrMsg);
功能:讀取社??ㄐ畔?/p>
參數(shù):
Cardinfo:[OUT] 成功返回身份證16位UID字符串。
返回值:非0表示失敗
讀取IC卡UID
long WINAPI iReadICUID(char* cardinfo, char* ErrMsg);
功能:讀取社保卡信息
參數(shù):
Cardinfo:[OUT] 成功返回身份證8位UID字符串。
返回值:非0表示失敗
1.4讀取社??ㄐ畔?/p>
函數(shù)原型:
long WINAPI iReadSicard_CS(int slot,char* cardinfo, char* ErrMsg);
功能:讀取社??ㄐ畔?/p>
參數(shù):slot:[IN]PSAM卡槽,SAM1~SAM4(值:17~20)
Cardinfo:[OUT] 成功返回:"卡識(shí)別碼|社??ㄌ?hào)|社會(huì)保障號(hào)碼|姓名|性別|民族|出生日期|發(fā)卡日期|卡有效期|"。
返回值:非0表示失敗
1.5 M1卡讀寫
1.5.1 M1卡讀操作
1)函數(shù)原型:
long WINAPI MifareOnCardRead_CS(int addr, int keyType, char* passWord, char* OutData, char* ErrMsg)
功能:讀取M1卡某一塊的數(shù)據(jù),ASCii格式
參數(shù):
addr:[IN]塊地址(0~63)
keyType:[IN]認(rèn)證KeyA時(shí)傳0x60, KeyB:0x61
passWord:[IN]6字節(jié)十六進(jìn)制字符串密碼,例如 "ffffffffffff"
OutData:[OUT]讀取的數(shù)據(jù)
返回值:非0表示失敗。
2)函數(shù)原型:
long WINAPI MifareOnCardReadHEX_CS(int addr, int keyType, char* passWord, char* OutData, char* ErrMsg)
功能:讀取M1卡某一塊的數(shù)據(jù),十六進(jìn)制字符串格式
參數(shù):
addr:[IN]塊地址(0~63)
keyType:[IN]認(rèn)證KeyA時(shí)傳0x60, KeyB:0x61
passWord:[IN]6字節(jié)十六進(jìn)制字符串密碼,例如 "ffffffffffff"
OutData:[OUT]讀取的數(shù)據(jù)
返回值:非0表示失敗。
1.5.2 M1卡寫操作
1)函數(shù)原型:
long WINAPI MifareOnCardWrite_CS(int addr, int keyType, char* passWord, char* Data, char* ErrMsg)
功能:寫入M1卡某一塊的數(shù)據(jù),ASCii格式
參數(shù):
addr:[IN]塊地址(0~63)
keyType:[IN]認(rèn)證KeyA時(shí)傳0x60, KeyB:0x61
passWord:[IN]6字節(jié)十六進(jìn)制字符串密碼,例如 "ffffffffffff"
Data:[IN]待寫入的數(shù)據(jù) 16個(gè)字符
返回值:非0表示失敗。
2)函數(shù)原型:
long WINAPI MifareOnCardWriteHEX_CS(int addr, int keyType, char* passWord, char* Data, char* ErrMsg)
功能:寫入M1卡某一塊的數(shù)據(jù),十六進(jìn)制字符串格式
參數(shù):
addr:[IN]塊地址(0~63)
keyType:[IN]認(rèn)證KeyA時(shí)傳0x60, KeyB:0x61
passWord:[IN]6字節(jié)十六進(jìn)制字符串密碼,例如 "ffffffffffff"
Data:[IN]待寫入的數(shù)據(jù) 32個(gè)字符
返回值:非0表示失敗。
1.6讀取磁條卡信息
函數(shù)原型:
long WINAPI iReadMagCard(int timeOut, int nTrack, char* trackData, char* ErrMsg);
功能:讀取磁條卡信息
參數(shù):timeOut:[IN]刷卡超時(shí)值,單位為秒
nTrack:[IN] 磁道值1-3
Cardinfo:[OUT] 成功返回磁道信息。
返回值:小于等于0表示失敗,大于0表示成功
1.7掃碼二維碼信息
函數(shù)原型:
long WINAPI ScanQRcode(int nTimeOut, char* pCodeInfo, char* ErrMsg);
功能:掃碼信息
參數(shù):nTimeOut:[IN]掃碼超時(shí)值,單位為毫秒
pCodeInfo:[OUT] 成功返回掃碼信息。
返回值:非0表示失敗,等于0表示成功
相關(guān)函數(shù):
設(shè)置主動(dòng)掃碼:
long WINAPI SetAutoQRcode(char* ErrMsg);
關(guān)閉主動(dòng)掃碼:
long WINAPI CloseAutoQRcode(char* ErrMsg);
1.8 讀銀行卡號(hào)
函數(shù)原型:
int iReadBankNo_CS(int iType, char*cardInfo, char* errMsg);
參數(shù):
iType:1=插卡,2=非接,3=自動(dòng)
cardInfo:銀行卡號(hào)
errMsg:錯(cuò)誤信息
社??用軝C(jī)相關(guān)函數(shù)說明
1.1 SI_ReadCardBas “讀基本信息”
1.1.1函數(shù)定義
讀基本信息接口函數(shù)定義見表1。在進(jìn)行任何社保卡操作前,應(yīng)先調(diào)用此函數(shù)。
表1讀基本信息接口函數(shù)定義
函數(shù)名稱讀基本信息
語法long SI_ReadCardBas (int iType, char* pOutInfo)
功能描述選擇社??ㄉ鐣?huì)保障系統(tǒng)環(huán)境后,通過PSAM卡對(duì)社??ㄟM(jìn)行內(nèi)部認(rèn)證,通過后將卡內(nèi)的基本信息讀出返回。
參數(shù)說明序號(hào)參數(shù)輸入/輸出類型長(zhǎng)度(十進(jìn)制)含義
1iTypeIN整數(shù)4操作卡的類型
2pOutInfoOUT字符串1024讀出數(shù)據(jù)或返回錯(cuò)誤信息
返回值0表示成功;非0表示失敗。
1.1.2參數(shù)說明
(1)輸入?yún)?shù)iType
表示執(zhí)行本函數(shù)時(shí)操作卡的類型,定義如下:1-接觸式操作卡;2-非接觸式操作卡;3-自動(dòng)尋卡,接觸式操作卡優(yōu)先;4-自動(dòng)尋卡,非接觸式操作卡優(yōu)先。
(2)輸出參數(shù)pOutInfo
當(dāng)函數(shù)執(zhí)行成功時(shí),該輸出參數(shù)為讀出的社??ɑ拘畔⒏鲾?shù)據(jù)項(xiàng),依次為:發(fā)卡地區(qū)行政區(qū)劃代碼(卡識(shí)別碼前6位)、社會(huì)保障號(hào)碼、卡號(hào)、卡識(shí)別碼、姓名、卡復(fù)位信息(僅取歷史字節(jié))、規(guī)范版本、發(fā)卡日期、卡有效期、終端機(jī)編號(hào)、終端設(shè)備號(hào)。各數(shù)據(jù)項(xiàng)之間以“|”分割,且最后一個(gè)數(shù)據(jù)項(xiàng)以“|”結(jié)尾。例如:639900|111111198101011110|X00000019|639900D15600000500BF7C7A48FB4966|張三|00814E43238697159900BF7C7A|1.00|20101001|20201001|410100813475|終端設(shè)備號(hào)|。
當(dāng)函數(shù)執(zhí)行失敗時(shí),該輸出參數(shù)為錯(cuò)誤信息描述。
注:當(dāng)沒有終端設(shè)備號(hào)時(shí),終端設(shè)備號(hào)返回空字符串。
1.2 SI_ReadCardHSM_Step1 “基于加密機(jī)的讀基本信息(步驟一)”
1.2.1函數(shù)定義
基于加密機(jī)的讀基本信息(步驟一)接口函數(shù)定義見表2。
表2基于加密機(jī)的讀基本信息(步驟一)接口函數(shù)定義
函數(shù)名稱基于加密機(jī)的讀基本信息(步驟一)
語法long SI_ReadCardHSM_Step1 (int iType, char* pOutInfo)
功能描述選擇社會(huì)保障系統(tǒng)環(huán)境后,返回內(nèi)部認(rèn)證和外部認(rèn)證所需信息。
參數(shù)說明序號(hào)參數(shù)輸入/輸出類型長(zhǎng)度(十進(jìn)制)含義
1iTypeIN整數(shù)4操作卡的類型
2pOutInfoOUT字符串1024返回認(rèn)證信息或錯(cuò)誤信息
返回值0表示成功;非0表示失敗。
1.2.2參數(shù)說明
(1)輸入?yún)?shù)iType
定義同1.1.2(1)。
(2)輸出參數(shù)pOutInfo
當(dāng)函數(shù)執(zhí)行成功時(shí),該輸出參數(shù)為讀出的社??▋?nèi)部認(rèn)證和外部認(rèn)證的計(jì)算數(shù)據(jù),依次為:發(fā)卡地區(qū)行政區(qū)劃代碼(卡識(shí)別碼前6位)、卡復(fù)位信息(僅取歷史字節(jié))、算法標(biāo)識(shí)、卡識(shí)別碼、內(nèi)部認(rèn)證過程因子、內(nèi)部認(rèn)證鑒別所需的原始信息、外部認(rèn)證過程因子、外部認(rèn)證鑒別所需的原始信息,其中外部認(rèn)證相關(guān)數(shù)據(jù)項(xiàng)全部不為空或全部為空。各數(shù)據(jù)項(xiàng)之間以“|”分割,且最后一個(gè)數(shù)據(jù)項(xiàng)以“|”結(jié)尾。
當(dāng)函數(shù)執(zhí)行失敗時(shí),該輸出參數(shù)為錯(cuò)誤信息描述。
注:當(dāng)外部認(rèn)證相關(guān)數(shù)據(jù)項(xiàng)為空時(shí),表示不做外部認(rèn)證。
1.3 SI_ReadCardHSM_Step2 “基于加密機(jī)的讀基本信息(步驟二)”
1.3.1函數(shù)定義
基于加密機(jī)的讀基本信息(步驟二)接口函數(shù)定義見表3。
表3基于加密機(jī)的讀基本信息(步驟二)接口函數(shù)定義
函數(shù)名稱基于加密機(jī)的讀基本信息(步驟二)
語法long SI_ReadCardHSM_Step2 (char *pKey, char* pOutInfo)
功能描述根據(jù)加密機(jī)返回的內(nèi)部認(rèn)證和外部認(rèn)證結(jié)果數(shù)據(jù)對(duì)社??ㄟM(jìn)行內(nèi)部認(rèn)證和外部認(rèn)證,通過后將卡內(nèi)的基本信息讀出返回。
參數(shù)說明序號(hào)參數(shù)輸入/輸出類型長(zhǎng)度(十進(jìn)制)含義
1pKeyIN字符串128加密機(jī)返回的內(nèi)部認(rèn)證和外部認(rèn)證結(jié)果數(shù)據(jù)
2pOutInfoOUT字符串1024讀出數(shù)據(jù)或返回錯(cuò)誤信息
返回值0表示成功;非0表示失敗。
1.3.2參數(shù)說明
(1)輸入?yún)?shù)pKey
加密機(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é)尾。
注:如果不做外部認(rèn)證,則后面一個(gè)參數(shù)都為空字符串。
(2)輸出參數(shù)pOutInfo
定義同1.1.2(2)。
注:當(dāng)沒有PSAM卡時(shí),終端機(jī)編號(hào)返回12個(gè)0,即6個(gè)0x00對(duì)應(yīng)的字符。
當(dāng)沒有終端設(shè)備號(hào)時(shí),終端設(shè)備號(hào)返回空字符串。
2 讀社保基本信息流程
讀基本信息流程如圖C.1所示。
圖C.1讀基本信息流程
具體流程如下:
(1)調(diào)用SI_ReadCardBas函數(shù),判斷函數(shù)執(zhí)行結(jié)果,若執(zhí)行成功,則返回基本信息,調(diào)用持卡庫(kù)的卡鑒權(quán)服務(wù)接口,完成卡鑒權(quán)操作;若執(zhí)行失敗,返回錯(cuò)誤代碼并進(jìn)行判斷,當(dāng)判斷到五種情況的錯(cuò)誤代碼(詳見10.5)后,則調(diào)用基于加密機(jī)的SI_ReadCardBas_HSM_Step1函數(shù),否則報(bào)錯(cuò)退出;
(2)若SI_ReadCardBas_HSM_Step1函數(shù)執(zhí)行成功,則分析返回?cái)?shù)據(jù)內(nèi)容,組織持卡庫(kù)報(bào)文,調(diào)用持卡庫(kù)的卡內(nèi)部認(rèn)證服務(wù)接口,否則報(bào)錯(cuò)退出;
(3)若卡內(nèi)部認(rèn)證服務(wù)接口調(diào)用成功,則調(diào)用基于加密機(jī)的SI_ReadCardBas_HSM_Step2函數(shù),否則報(bào)錯(cuò)退出;
(4)若SI_ReadCardBas_HSM_Step2函數(shù)執(zhí)行成功,則返回基本信息,調(diào)用持卡庫(kù)的卡鑒權(quán)服務(wù)接口,完成卡鑒權(quán)操作,否則報(bào)錯(cuò)退出。
3、社??顟B(tài)碼
社保卡狀態(tài)碼
返回值錯(cuò)誤信息描述
-1卡類型不對(duì)
-2無卡
-3有卡未上電
-4卡無應(yīng)答
-5加載動(dòng)態(tài)庫(kù)錯(cuò)
-11讀卡器連接錯(cuò)
-12未建立連接
-13(動(dòng)態(tài)庫(kù))不支持該命令
-14(發(fā)給動(dòng)態(tài)庫(kù)的)命令參數(shù)錯(cuò)
-15信息校驗(yàn)和出錯(cuò)
-20卡識(shí)別碼格式錯(cuò)
-21內(nèi)部認(rèn)證失?。ㄓ脩艨ú缓戏ǎ?/p>
-22傳入數(shù)據(jù)與卡內(nèi)不符
-23傳入數(shù)據(jù)不合法
-24PSAM卡密鑰級(jí)別不夠
-31用戶取消密碼輸入
-32密碼輸入操作超時(shí)
-33輸入密碼長(zhǎng)度錯(cuò)
-34兩次輸入密碼不一致
-35(預(yù)留)初始密碼不能交易
-36(預(yù)留)不能改為初始密碼
-41運(yùn)算數(shù)據(jù)含非法字符
-42運(yùn)算數(shù)據(jù)長(zhǎng)度錯(cuò)
-51PIN校驗(yàn)失敗,剩余次數(shù)N次(根據(jù)卡返回信息)
-52PIN鎖定
-2201無PSAM卡
-2202PSAM卡算法不支持(即PSAM卡內(nèi)沒有SSF33算法或SM4算法)
-2203PSAM卡內(nèi)沒有RKSSSE密鑰(3.0卡讀個(gè)人基本信息需要RKSSSE密鑰外部認(rèn)證)
-2204不需要加密機(jī)認(rèn)證
-25536、-25537、-25538、-25539、-25540、-25541外部認(rèn)證失敗,剩余可嘗試次數(shù)0~5次
-26368Lc/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ù)、未找到密鑰
-37634MAC無效
-37635應(yīng)用已被永久鎖定、卡片鎖定
-37891PSAM卡不支持消費(fèi)交易
-37894所需MAC(或/和TAC)不可用
其他未知錯(cuò)誤
附錄
錯(cuò)誤代碼描述
0執(zhí)行成功
-1設(shè)備連接失敗
-2上電失敗
-3選環(huán)境失敗
-4卡通信失敗
-5讀磁條失敗
-6卡鑒權(quán)失敗
-7讀身份證失敗
-8無卡
-9異常錯(cuò)誤
-10加載dll失敗
***********************以下為備份SDK
- 身份證讀卡器Linux開發(fā)包定制需要的信息和文件匯總
- EST-100/EST-100GS/EST-J13X系列Android開發(fā)包(含身份
- EST系列身份證讀卡器Linux串口COM系列SDK開發(fā)包(含lib
- EST-100/EST-100GS/EST-J13X系列Windows開發(fā)包(含身份
- 烏班圖(ubuntu )Linux系統(tǒng)身份證閱讀器開發(fā)包(含lib
- EST系列身份證閱讀器(讀卡器)Linux二次開發(fā)包SDK(含
- 身份證閱讀器如何在Linux操作系統(tǒng)讀取身份證信息以及相
- DONSEE系列身份證讀卡器閱讀器谷歌火狐瀏覽器Web網(wǎng)頁開
- 身份證閱讀器Android安卓串口SDK通用二次開發(fā)包接口
- 通用序列身份證閱讀器SDK二次開發(fā)包免費(fèi)下載