开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
android 开发文档
windows 开发文档
linux 开发文档
iot 小程序开发文档
其它
api
收银台
刷脸核身
刷脸登录
会员与授权
发送付款码
发送和接收小指令
版本查询
获取系统属性
系统设置页面
二维码识别
生成二维码
ui 控制
语音播报
本地数据库
本地图片存储
串口通信
外设管理
打印指令
监听按键事件
身份证读卡器适配
电子秤
钱箱
非接卡通信
ic 卡通信
红外测温仪
消息服务
日志服务
前后屏通信
更多使用指南
开发 > 开放能力接入 > 其它 > api >  > my.ix.iccardcommand
收藏
订阅更新
我的文档
设置
支持的 ic 卡读卡器型号:
型号
连接方式
vid,pid(十进制)
说明
握奇w5181 plus
usb
5692,2600
1接触式 ic 卡,支持 iso/iec 7816 系列接触式智能卡。
2通过usb native驱动访问设备,系统 rom需要配置selinux权限:/dev/bus/usb。
3支持 cpu 燃气卡读写卡。
德卡读卡器
usb
9595,12337
支持社保卡接口。
简介
ic 卡通信接口,用于 ic 卡的读卡、写卡等操作。
接口调用
示例代码
.js 示例代码
javascript
复制代码
page({
data: {
buttons: [
{ method: 'getdeviceinfo', label: '获取ic卡读卡器信息' },
{ method: 'getcardtype', label: '获取卡类型' },
{ method: 'getcardatr', label: '获取卡atr信息' },
{ method: 'reset', label: '卡复位' },
{ method: 'transmitapdu', label: '传输apdu' },
{ method: 'getpac', label: '获取pin码访问剩余次数' },
{ method: 'verifypin', label: '验证pin码' },
{ method: 'updatepin', label: '更新pin码' },
{ method: 'readcard', label: '读卡' },
{ method: 'writecard', label: '写卡' },
],
},
// 转码表
tables : [
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
'i', 'j', 'k', 'l', 'm', 'n', 'o' ,'p',
'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', '0', '1', '2', '3',
'4', '5', '6', '7', '8', '9', ' ', '/'
],
// base64编码
base64encode : function (data) {
if (!data) {
return '';
}
let i = 0; // 遍历索引
let len = data.length;
let results = [];
while (i < len) {
入参
名称
类型
是否必填?
描述
target
number

要与之通信的 ic 卡读卡器 id,通过 getdevices 获得。如果不填,默认系统接入的第 1 个 ic 卡读卡器设备。
cmds
json

json 格式: {'cmd': '...',  'args': ['...']}
通信指令,如下描述。
通信指令格式
名称
类型
是否必填?
描述
cmd
string

指令名称,详细见 通信指令
args
jsonarray

指令参数,详细见 通信指令
出参
成功
名称
类型
描述
success
boolean
值为 true。
说明:返回內容为 {success: true,...}。根据不同的通信指令携带不同的出参,详情可查看各 通信指令 success 回调说明。
失败
名称
类型
描述
error
number
错误码。
errormessage
string
详细错误描述。
说明:返回内容只包含 {error: number, errormessage: '详细错误描述'}。返回错误码定义和错误码描述可查看 错误码说明
通信指令
getdeviceinfo
说明:获取读卡器设备信息。
命令范例: {'cmd':'getdeviceinfo', 'args':[]}.
参数数量:0
回调函数:
状态
描述
success
表示调用成功,出参:info: json字符串 [{
 'model':  string类型,表示读卡器设备型号
 'cputype':  string类型,表示cpu类型
 'version': string类型,表示设备版本
 'deviceid':string类型,表示读卡器设备序列号
 'description':string类型,表示读卡器设备信息}]
fail
表示调用失败,见 错误码说明
getcardtype
说明:获取卡类型。
命令范例: {'cmd':'getcardtype', 'args':[false]}.
参数数量:1
参数序号
参数类型
参数值
描述
0
boolean
false/true
true:表示获取读卡器缓存的卡类型。
回调函数:
状态
描述
success
表示调用成功,出参:
type:number 类型。
1:sle4442卡。
2at24c02卡。
3at88sc1608卡。
4at88sc102卡。
5cpu卡。
6at24c16卡。
7at88sc153卡。
8mifare卡。
fail
表示调用失败,见 错误码说明
getcardatr
说明:获取卡atr信息。
命令范例: {'cmd':'getcardatr', 'args':[]}.
参数数量:0
回调函数:
状态
描述
success
表示调用成功,出参:
atr: string类型,atr 的 base64 编码字符串。
fail
表示调用失败,见 错误码说明
reset
说明:复位芯片。
命令范例: {'cmd':'reset', 'args':[]}.
参数数量:0
回调函数:
状态
描述
success
表示调用成功,出参:
type:number 类型。
1:sle4442卡。
2at24c02卡。
3at88sc1608卡。
4at88sc102卡。
5cpu卡。
6at24c16卡。
7at88sc153卡。
8mifare卡。
atr: string类型,atr 的 base64 编码字符串。
fail
表示调用失败,见 错误码说明
transmitapdu
说明:cpu 卡专用,传输 apdu。
命令范例: {'cmd':'transmitapdu', 'args':['dghpcybpcybhbiblegftcgxl']}.
参数数量:1
回调函数:
参数序号
参数类型
参数值
描述
0
string
base64字符串
传输给 cpu 卡的 apdu 的 base64 编码字符串。
回调函数:
状态
描述
success
表示调用成功,出参:
response:string 类型,cpu 卡返回的 rapdu 的 base64 编码字符串。
fail
表示调用失败,见 错误码说明
getpac
说明:获取 pin 码访问剩余次数。
命令范例: {'cmd':'getpac', 'args':[1, 0]}.
参数数量:2
参数序号
参数类型
参数值
描述
0
number
1~25
zone 类型,详情请查看 zone 类型说明
1
number
0, 1
pin 类型。
0:pin read。
1:pin write。
回调函数:
状态
描述
success
表示调用成功,参数:
pac:number类型,表示 pin 码剩余访问次数,为 0 表示 pin 码已锁定。
fail
表示调用失败,见 错误码说明
verifypin
说明:验证 pin 码。
命令范例: {'cmd':'verifypin', 'args':[1, 0, 'mdaw'] }.
参数数量:3
参数序号
参数类型
参数值
描述
0
number
1~25
zone 类型,详情请查看 zone 类型说明
1
number
0, 1
pin 类型。
0:pin read。
1:pin write。
2
string
base64字符串
pin 码原始字节的 base64 编码字符串。
回调函数:
状态
描述
success
表示调用成功,参数:
pac:number 类型,pin 码剩余访问次数限制,为 0 表示 pin 码锁定。
fail
表示调用失败,见 错误码说明
updatepin
说明:更新 pin 码。
命令范例: {'cmd':'updatepin', 'args':[1, 0, 'weaaq=']}.
参数数量:3
参数序号
参数类型
参数值
描述
0
number
1~25
zone 类型,详情请查看 zone 类型说明
1
number
0, 1
pin 类型。
0:pin read。
1:pin write。
2
string
base64字符串
pin 码原始字节的 base64 编码字符串。
回调函数:
状态
描述
success
表示调用成功。
fail
表示调用失败,见 错误码说明
readcard
说明:读卡。
命令范例: {'cmd':'readcard', 'args':[1, 0, 18]}.
参数数量:3
参数序号
参数类型
参数值
描述
0
number
1~25
zone 类型,详情请查看 zone 类型说明
1
number
0~255
读取起始地址。
2
number
0~255
读取长度。
回调函数:
状态
描述
success
表示调用成功,出参:
data:string类型,返回读取的数据字节(base64编码的字符串)。
fail
表示调用失败,见 错误码说明
writecard
说明:写卡。
命令范例: {'cmd':'writecard', 'args':[1, 0, 'aaecawqfbgcicqolda0odwarijnevwz3ijmqu8zd7v8=', 10, 16]}.
参数数量:5
参数序号
参数类型
参数值
描述
0
number
1~25
zone 类型,详情请查看 zone 类型说明
1
number
0~255
写入起始地址。
2
string
写入数据的base64编码
要写入的数据(base64编码字符串)。
3
number
0~255
写入数据的 offset。
4
number
0~255
写入数据的长度。
回调函数:
状态
描述
success
表示调用成功。
fail
表示调用失败,见 错误码说明
readgascard
说明:读 cpu 燃气卡。
命令范例: {'cmd':'readgascard', 'args':[]}.
参数数量:0
回调函数:
状态
描述
success
表示调用成功,出参:
cardinfo,json 字符串,内容可查看  cpu燃气卡信息说明
fail
表示调用失败,见 错误码说明
writegascard
说明:写 cpu 燃气卡。
命令范例: {'cmd':'writegascard', 'args':["{...}"]}.
参数数量:1
参数序号
参数类型
参数值
描述
0
string
-
json 字符串。内容可查看 cpu燃气卡信息说明
回调函数:
状态
描述
success
表示调用成功。
fail
表示调用失败,见 错误码说明
cpu 燃气卡信息说明
名称
类型
描述
password
string
卡密码。
cardtype
int
卡类型,默认值:-1。
cardstatus
int
卡状态,0:开户卡;1:充值卡。
cardno
string
卡号,8位bcd码。
regioncode
string
地区代码。
userno
string
用户号,同卡号。
barcode
string
条码。
purchasegas
int
充值气量。
purchasecount
int
购气次数。
totalgaspurchased
int
累计购气量。
reissuecount
int
补卡次数。
totalgasconsumed
int
表内累计用气量。
remaingas
int
剩余气量。
lowgaswarning
int
表内报警气量。
purchaselimit
int
表内充值上限。
creditlimit
int
表内透支额度。
sireadcardbas
说明:读取社保卡基本信息。
命令范例: {'cmd':'sireadcardbas', 'args':[1]}.
参数数量:1
参数序号
参数类型
参数值
描述
0
int
[1, 2, 3, 4]
卡片类型,详情可查看 社保卡片类型说明
回调函数:
状态
描述
success
表示调用成功,出参:
data: string类型,
返回读出数据或返回错误信息(base64 编码的字符串)(返回信息可查看38号文)
fail
表示调用失败,见 错误码说明
sireadcard
说明:通用社保读卡。
命令范例: {'cmd':'sireadcard', 'args':[1, 1, "cardinfo", "filename"]}.
参数数量:4
参数序号
参数类型
参数值
描述
0
int
[1, 2, 3, 4]
卡片类型,详情可查看 社保卡片类型说明
1
int
-
认证方式。
2
string
-
卡基本信息。
3
string
-
文件名及数据项。
回调函数:
状态
描述
success
表示调用成功,出参:
data: string类型,
返回读出数据或返回错误信息(base64 编码的字符串)(返回信息可查看38号文)。
fail
表示调用失败,见 错误码说明
siverifypin
说明:社保卡 pin 校验。
命令范例: {'cmd':'siverifypin', 'args':[1]}.
参数数量:1
参数序号
参数类型
参数值
描述
0
int
[1, 2, 3, 4]
卡片类型,详情可查看 社保卡片类型说明
回调函数:
状态
描述
success
表示调用成功,出参:
data: string类型,
返回空字符串或返回错误信息(base64 编码的字符串)。
fail
表示调用失败,见 错误码说明
sichangepin
说明:社保卡 pin 修改。
命令范例: {'cmd':'sichangepin', 'args':[1]}.
参数数量:1
参数序号
参数类型
参数值
描述
0
int
[1, 2, 3, 4]
卡片类型,详情可查看 社保卡片类型说明
回调函数:
状态
描述
success
表示调用成功,出参:
data: string类型,
返回空字符串或返回错误信息(base64 编码的字符串)。
fail
表示调用失败,见 错误码说明
sireloadpin
说明:社保卡 pin 重置。
命令范例: {'cmd':'sireloadpin', 'args':[1, "cardinfo"]}.
参数数量:1
参数序号
参数类型
参数值
描述
0
int
[1, 2, 3, 4]
卡片类型,详情可查看 社保卡片类型说明
1
string
-
卡基本信息。
回调函数:
状态
描述
success
表示调用成功,出参:
data: string类型,
返回空字符串或返回错误信息(base64 编码的字符串)。
fail
表示调用失败,见 错误码说明
siunblockpin
说明:社保卡 pin 解锁。
命令范例: {'cmd':'siunblockpin', 'args':[1, "cardinfo"]}.
参数数量: 1
参数序号
参数类型
参数值
描述
0
int
[1, 2, 3, 4]
卡片类型,详情可查看 社保卡片类型说明
1
string
-
卡基本信息。
回调函数:
状态
描述
success
表示调用成功,出参:
data: string类型,
返回空字符串或返回错误信息(base64 编码的字符串)。
fail
表示调用失败,见 错误码说明
sidodebit
说明:社保卡消费交易。
命令范例: {'cmd':'sidodebit', 'args':[1, "cardinfo", "debitinfo"]}.
参数数量:1
参数序号
参数类型
参数值
描述
0
int
[1, 2, 3, 4]
卡片类型,详情可查看 社保卡片类型说明
1
string
-
卡基本信息。
2
string
-
消费信息。
回调函数:
状态
描述
success
表示调用成功,出参:
data: string类型,
返回交易验证数据或返回错误信息(base 64编码的字符串)。
fail
表示调用失败,见 错误码说明
社保卡片类型说明
cardtype
描述
1
接触式卡片。
2
非接触式卡片。
3
自动寻卡,接触式卡片优先。
4
自动寻卡,非接触式卡片优先。
zone 类型说明
数值
描述
1
sle4442_zone_type_mz
2
sle4442_zone_type_pz
3
sle4442_zone_type_sz
4
at88sc102_zone_type_fz
5
at88sc102_zone_type_iz
6
at88sc102_zone_type_sc
7
at88sc102_zone_type_scac
8
at88sc102_zone_type_cpz
9
at88sc102_zone_type_az1
10
at88sc102_zone_type_ez1
11
at88sc102_zone_type_az2
12
at88sc102_zone_type_ez2
13
at88sc102_zone_type_ec
14
at88sc102_zone_type_mtz
15
at88sc102_zone_type_fuse
16
at88sc1608_zone_type_uz0
17
at88sc1608_zone_type_uz1
18
at88sc1608_zone_type_uz2
19
at88sc1608_zone_type_uz3
20
at88sc1608_zone_type_uz4
21
at88sc1608_zone_type_uz5
22
at88sc1608_zone_type_uz6
23
at88sc1608_zone_type_uz7
24
at88sc1608_zone_type_cz
25
at88sc1608_zone_type_fz
错误码说明
码值(error)
描述(errormessage)
5001
参数错误
5002
未找到设备
5003
读卡器型号不支持
5004
连接读卡器失败
5005
无访问权限
5006
操作失败
5007
设备已断开
5008
指令不支持
5009
无效命令
5010
设备端口未打开
5011
读卡失败
5012
写卡失败
5101
err_invalid_parameter
5102
err_invalid_capdu_null
5103
card_type_err_card_not_found
5104
card_type_err_card_ejected
5105
card_type_err_memory_card_instruct_exception
5106
card_type_unknown
5201
err_mc_read_exceed_max_length
5202
err_mc_read_sw_null
5203
err_mc_read_data_null
5204
err_mc_read_exceed_card_predefined_space
5205
err_mc_read_invalid_address
5206
err_mc_read_unsatisfactory_security
5207
err_mc_read_invalid_p1p2
5208
err_mc_read_sw_not_9000
5209
err_mc_read_exception
5301
err_mc_write_exceed_max_length
5302
err_mc_write_exceed_range
5303
err_mc_write_sw_null
5304
err_mc_write_exceed_card_predefined_space
5305
err_mc_write_unsatisfactory_security
5306
err_mc_write_bit_write_protection
5307
err_mc_write_unmatch_of_the_data_and_protected_data
5308
err_mc_write_invalid_p1p2
5309
err_mc_write_comm_timeout
5310
err_mc_write_sw_not_9000
5311
err_mc_write_exception
5401
err_mc_operate_pin_sw_null
5402
err_mc_operate_pin_failed_verification_with_retry_left
5403
err_mc_operate_pin_write_eeprom
5404
err_mc_operate_pin_invalid_pin_length
5405
err_mc_operate_pin_invalid_address
5406
err_mc_operate_pin_unsatisfactory_security
5407
err_mc_operate_pin_wrong_user_pin
5408
err_mc_operate_pin_comm_timeout
5409
err_mc_operate_pin_sw_not_9000
5501
err_mc_pac_read
5502
err_mc_pac_read_unknown_value
5999
未知错误
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图