开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
android 开发文档
windows 开发文档
linux 开发文档
iot 小程序开发文档
其它
api
收银台
刷脸核身
刷脸登录
会员与授权
发送付款码
发送和接收小指令
版本查询
获取系统属性
系统设置页面
二维码识别
生成二维码
ui 控制
语音播报
本地数据库
本地图片存储
串口通信
外设管理
打印指令
监听按键事件
身份证读卡器适配
电子秤
钱箱
非接卡通信
ic 卡通信
红外测温仪
消息服务
日志服务
前后屏通信
更多使用指南
开发 > 开放能力接入 > 其它 > api >  > my.ix.nfccommand
收藏
订阅更新
我的文档
设置
支持的 nfc 读卡器型号:
型号
连接方式
vid,pid(十进制)
说明
讯猫xm-ua080
usb
20785,8199
1非接触式ic卡,遵循 iso14443 标准:iso14443 type a, (s50/s70/ultralight),iso14443 type b, iso15693
2通过usb native驱动访问设备,系统rom需要配置selinux权限:/dev/bus/usb
天波读卡器
usb
10473,650
-
简介
nfc 非接卡(iso14443/iso15693)通信接口,用于 nfc 卡(会员卡等)的读取卡号、读卡、写卡,电子钱包充值、增值、减值等操作。
接口调用
示例代码
.js 示例代码
javascript
复制代码
page({
data: {
buttons: [
{ method: 'getdeviceinfo', label: '获取读卡器信息' },
{ method: 'getcardmode', label: '获取卡操作模式' },
{ method: 'setcardmode', label: '设置卡操作模式' },
{ method: 'getcardmodedefault', label: '获取卡操作模式(默认)' },
{ method: 'setcardmodedefault', label: '设置卡操作模式(默认)' },
{ method: 'getmode', label: '获取工作模式' },
{ method: 'setmode', label: '设置工作模式' },
{ method: 'beep', label: '蜂鸣' },
{ method: 'reset', label: '卡复位' },
{ method: 'readcardno', label: '获取卡号' },
{ method: 'loadkey', label: '装载密钥' },
{ method: 'verifykey', label: '装载密钥' },
{ method: 'changekey', label: '装载密钥' },
{ method: 'readblock', label: '读取块数据' },
{ method: 'writeblock', label: '写入块数据' },
{ method: 'initvalue', label: '电子钱包充值' },
{ method: 'readvalue', label: '电子钱包读值' },
{ method: 'incvalue', label: '电子钱包增值' },
{ method: 'decvalue', 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', ' ', '/'
],
入参
名称
类型
是否必填?
描述
target
number

要与之通信的非接卡id,通过getdevices获得。如果不填,默认系统接入的第1个非接卡设备。
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
表示调用失败,见
getmode
说明:获取工作模式
命令范例: {'cmd':'getmode', 'args':[2]}
参数数量:1
参数序号
参数类型
参数值
描述
0
number
2,3,4,5,7
表示模式名称编号:
2:卡号顺序。
3:数据格式。
4:通讯超时。
5:命令类型。
7:寻卡模式。
回调函数:
状态
描述
success
表示调用成功,出参:
mode:number 类型,取值说明:
当 args[0] 参数为 2 时,返回值:
0:默认顺序。
1:反转卡号(按字节反转)。
当 args[0] 参数为 3 时,返回值:
0:char字节。
1:16 进制字符串(hex)。
当 args[0] 参数为 4 时,返回值:范围 30-10000,单位为毫秒。
当 args[0] 参数为 5 时,返回值:
0:高级命令。
1:单步命令。
当 args[0] 参数为 7 时,返回值:
0:检索未休眠卡。
1:检索所有卡,包括已休眠卡。
fail
表示调用失败,见
setmode
说明:设置工作模式
命令范例: {'cmd':'setmode', 'args':[2, 0]}
参数数量:2
参数序号
参数类型
参数值
描述
0
number
2,3,4,5,7
表示模式名称编号:
2:卡号顺序。
3:数据格式。
4:通讯超时。
5:命令类型。
7:寻卡模式。
1
number
-
mode:number 类型,取值说明:
当 args[0] 参数为 2 时,返回值:
0:默认顺序。
1:反转卡号(按字节反转)。
当 args[0] 参数为 3 时,返回值:
0:char字节。
1:16 进制字符串(hex)。
当 args[0] 参数为 4 时,返回值:范围 30-10000,单位为毫秒。
当 args[0] 参数为 5 时,返回值:
0:高级命令。
1:单步命令。
当 args[0] 参数为 7 时,返回值:
0:检索未休眠卡。
1:检索所有卡,包括已休眠卡。
回调函数:
状态
描述
success
表示调用成功,无出参。
fail
表示调用失败,见
getcardmode
说明:获取卡操作类型
命令范例: {'cmd':'getcardmode', 'args':[false]}
参数数量:1
参数序号
参数类型
参数值
描述
0
boolean
false/true
true:表示获取默认卡操作类型。
回调函数:
状态
描述
success
表示调用成功,出参:
mode:  string类型。
'41':iso14443 type a 模式。
'42'iso14443 type b 模式,二代身份证专用。
'62'iso14443 type b 模式,普通卡。
'72'at88rf020 卡模式。
'73'st 卡模式。
'31'iso1563 电子标签模式。
fail
表示调用失败,见
setcardmode
说明:设置卡操作类型
命令范例: {'cmd':'setdevicemode', 'args':['41', false]}
参数数量:2
参数序号
参数类型
参数值
描述
0
string
'41','42','62', '72','73','31'
'41':iso14443 type a 模式。
'42'iso14443 type b 模式,二代身份证专用。
'62'iso14443 type b 模式,普通卡。
'72'at88rf020 卡模式。
'73'st 卡模式。
'31'iso1563 电子标签模式。
1
boolean
false/true
true:表示设置为默认的卡操作类型
回调函数:
状态
描述
success
表示调用成功,无出参。
fail
表示调用失败,见
beep
说明:读卡器蜂鸣
命令范例: {'cmd':'beep', 'args':[0]}
参数数量:1
参数序号
参数类型
参数值
描述
0
number
0~10000
蜂鸣时间长度,单位为毫秒。小于等于 0 表示蜂鸣默认时间。
回调函数:
状态
描述
success
表示调用成功。
fail
表示调用失败,见
reset
说明:复位芯片
命令范例: {'cmd':'reset', 'args':[]}
参数数量:0
回调函数:
状态
描述
success
表示调用成功。
fail
表示调用失败,见
readcardno
说明:读取卡号
命令范例: {'cmd':'readcardno', 'args':[]}
参数数量:0
回调函数:
状态
描述
success
表示调用成功,出参:
cardno:返回原生卡号的 base64 字符串。
fail
表示调用失败,见
loadkey
说明:装载密码
命令范例: {'cmd':'loadkey', 'args':[0, '////////']}
参数数量:2
参数序号
参数类型
参数值
描述
0
number
0,1
密码类型。
0:a密码。
1:b密码。
1
string
base64字符串
密码的 base64 字符串。
回调函数:
状态
描述
success
表示调用成功。
fail
表示调用失败,见
verifykey
说明:验证密码
命令范例: {'cmd':'verifykey', 'args':[0, 0, '////////'] }
参数数量:3
参数序号
参数类型
参数值
描述
0
number
0~255
块号:s50 卡范围 0-63,s70 卡范围 0-255
1
number
0, 1
'41':iso14443 type a 模式。
'42'iso14443 type b 模式,二代身份证专用。
'62'iso14443 type b 模式,普通卡。
'72'at88rf020 卡模式。
'73'st 卡模式。
'31'iso1563 电子标签模式。
2
string
base64 字符串
密码原始字节的base64编码字符串
回调函数:
状态
描述
success
表示调用成功。
fail
表示调用失败,见
changekey
说明:修改扇区密钥
命令范例: {'cmd':'changekey', 'args':[0, "/weaaq==","////////","////////"]}
参数数量:4
参数序号
参数类型
参数值
描述
0
number
0~255
块号:s50 卡范围 0-63,s70 卡范围 0-255。
1
string
base64字符串
存储控制字的 base64 字符串,编码前长度 4 字节。
2
string
base64字符串
新密码 a 的原始字节的 base64 编码字符串。
3
string
base64字符串
新密码 b 的原始字节的 base64 编码字符串。
回调函数:
状态
描述
success
表示调用成功。
fail
表示调用失败,见
readblock
说明:读取块中的数据
命令范例: {'cmd':'readblock', 'args':[0, 16]}
参数数量:2
参数序号
参数类型
参数值
描述
0
number
0~255
块号:s50卡范围 0-63,s70卡范围 0-255。
块 0:存储了卡号等信息,不可读写。
块 4*n-1:存储了每个扇区的控制字和密码,不可读写。
1
number
16*n
数据块长度,必须是 16 的倍数,注意不要超出卡的数据存储范围。
fail
表示调用失败,见
回调函数:
状态
描述
success
表示调用成功,出参:
data:返回读取的数据字节(base64编码的字符串),原始长度 16*n 字节。
fail
表示调用失败,见
writeblock
说明:向数据块写入数据
命令范例: {'cmd':'writeblock', 'args':[1, 'aaecawqfbgcicqolda0odwarijnevwz3ijmqu8zd7v8=']}
参数数量:2
参数序号
参数类型
参数值
描述
0
number
1~255
块号:s50卡范围 0-63,s70卡范围 0-255。
块0:存储了卡号等信息,不可读写。
块4*n-1:存储了每个扇区的控制字和密码,不可读写。
1
string
写入数据的base64编码
要写入的数据(base64编码的字符串),长度必须是 16 的倍数,注意不要超出卡的数据存储范围。
回调函数:
状态
描述
success
表示调用成功。
fail
表示调用失败,见
initvalue
说明:电子钱包初始化值
命令范例: {'cmd':'initvalue', 'args':[1, 99999]}
参数数量:2
参数序号
参数类型
参数值
描述
0
number
1~255
块号:s50卡范围 0-63,s70卡范围 0-255。
块0:存储了卡号等信息,不可读写。
块4*n-1:存储了每个扇区的控制字和密码,不可读写。
1
number
0~2147483647
电子钱包初始化值。
回调函数:
状态
描述
success
表示调用成功。
fail
表示调用失败,见
readvalue
说明:电子钱包读值
命令范例: {'cmd':'readvalue', 'args':[1]}
参数数量:1
参数序号
参数类型
参数值
描述
0
number
1~255
块号:s50卡范围 0-63,s70卡范围 0-255。
块0:存储了卡号等信息,不可读写。
块4*n-1:存储了每个扇区的控制字和密码,不可读写。
回调函数
回调函数:
状态
描述
success
表示调用成功,出参:
value:number 类型,表示电子钱包值。
fail
表示调用失败,见
incvalue
说明:电子钱包增值
命令范例: {'cmd':'incvalue', 'args':[1, 20]}
参数数量: 2
参数序号
参数类型
参数值
描述
0
number
1~255
块号:s50卡范围 0-63,s70卡范围 0-255。
块0:存储了卡号等信息,不可读写。
块4*n-1:存储了每个扇区的控制字和密码,不可读写。
1
number
1~2147483647
电子钱包增加值。
回调函数:
状态
描述
success
表示调用成功
fail
表示调用失败,见
decvalue
说明:电子钱包减值
命令范例: {'cmd':'decvalue', 'args':[1, 20]}
参数数量: 2
参数序号
参数类型
参数值
描述
0
number
1~255
块号:s50卡范围 0-63,s70卡范围 0-255。
块0:存储了卡号等信息,不可读写。
块4*n-1:存储了每个扇区的控制字和密码,不可读写。
1
number
1~2147483647
电子钱包减值。
回调函数:
状态
描述
success
表示调用成功
fail
表示调用失败,见
错误码说明
码值(error)
描述(errormessage)
4001
参数错误
4002
未找到设备
4003
读卡器型号不支持
4004
连接读卡器失败
4005
无访问权限
4006
操作失败
4007
设备已断开
4008
指令不支持
4009
无效命令
4010
设备端口未打开
4011
装载密码失败
4012
读数据失败
4013
写数据失败
4014
写端口通讯超时
4015
读端口通讯超时
4016
清端口缓存失败
4017
写端口失败
4018
读端口失败
4019
接收的数据无效
4020
寻卡失败
4021
卡不存在或卡已损坏无法被识别
4022
防冲撞错误
4023
锁定卡出错
4024
装载密码出错
4025
密码验证出错
4026
读块数据出错
4027
写块数据出错
4029
复位读头失败
4030
电子钱包值调入缓冲区出错
4031
缓冲区值传入电子钱包出错
4032
增值出错
4033
减值出错
4034
块值格式不对
4035
块值不够减
4036
值溢出
4037
卡号不一致
4100
未知错误
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图