DONSEE东信智能 - 身份证社保卡读卡智能终端应用服务商

eastcoms@qq.com
400-6722-705
首页 > 服务支持专区 > 产品支持 > 产品文档下载

Donsee Harmony鸿蒙二次开发API文档(DonseeDeviceLib.har)

来源:www.eastcoms.com   标签:Harmony 鸿蒙 API   发布时间: 2024-9-18 9:08:05

DONSEE系列多功能读写器Harmony API接口规范V1.0.2

DonseeDeviceLib.har

广东东信智能科技有限公司

www.eastcoms.com

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

 


 

 
QQ在线咨询