更新记录
1.0.0(2025-06-26)
Android收银机支付宝碰一下设备 Android小指令SDK 6.1.46.00000178 集成到商家应用的安卓SDK,对应是abcp_api_xxx.aar文件
平台兼容性
uni-app x
Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
---|---|---|---|---|---|
- | - | 5.0 | × | √ | - |
概述
「小指令」是是蚂蚁集团为线下各行业提供的一个跨平台SDK,用于碰一下设备、收银机之间的双向通信能力,是所有碰一下功能调用的前提条件
适用场景
收银机、台式款碰一下设备(N5D\N6D\N6E)。(手持款碰一下设备,单独使用,无需小指令)
示例:小指令接入后,「碰一下支付」链路
a. 收银机B屏收银软件,发起收款
b. 发起收款的指令,借助「小指令通信」能力,传递至碰一下设备C屏,调用、唤起「碰一下支付」组件
c. 消费者碰一下支付后,付款码再借助「小指令通信」能力,传递至收银机B屏,随后进行付款码核销
接入说明
以下是支付宝官方文档说明:
接入准备
Android收银机
错误码
● 小指令SDK增加错误码
○ E62001 小指令不通,请重新插拔USB连接器,并给应用授权
○ E62014 请确认上述2.6步骤bpaasExecutor的入参是否正确传入
○ E62015 设备已安装IoTService应用版本不匹配,无法使用小指令,需升级IoTService至607版本
○ E69020 so加载失败,目前只支持arm-v7a的指令,请确认sdk里的so库是否打包到apk里
○ E69022 依赖库没有找到,请确认已添加2.4步骤的相关依赖,并且fastjson不能做代码混淆
一级错误码
错误码(Code) | 错误描述(Message) | 解决方案 |
---|---|---|
10000 | 服务调用成功 | 服务调用成功,不返回 subCode 和 subMessage。 |
20000 | 服务不可用 | 错误信息详情查看 二级错误码。 |
40002 | 提示无效签名,isv.invalid-signature等字样 | 可查看 自助排查签名验签问题。 |
40006 | isv.insufficient-isv-permissions | 1. 请联系IoT开放平台技术支持,并提供 IoT 开放平台上应用的 APPID。 |
常见错误码可查看:BPaaS SDK错误码说明
注意事项
从应用市场下载插件导入自己项目后,要先制作自定义插件后,才可以运行使用
插件需在 Android 5.0 版本及以上方可正常使用
尽量使用 HBuilderX 4.0+ 以上的最新版本,以便更好在uni-app和uni-app x中使用uts插件
使用前要先调用inint()方法初始化成功以后,再调用transaction()方法进行碰一下交易
完整代码示例
<template>
<view>
<text>收到ABCP事件:{{aBCPEvent}}</text>
<button @click="inint()">初始化</button>
<button @click="transaction()">交易</button>
<text>返回日志:{{responseData}}</text>
</view>
</template>
<script>
import {initV2,startBPaaSService} from "@/uni_modules/alipay-abcp";
export default {
data() {
return {
responseData : '',
aBCPEvent:''
}
},
onLoad() {
},
methods: {
inint(){
uni.showLoading({title: "正在初始化..."});
let _this = this
let params = {
appId:'2021005165678432', //IoT开放平台 应用 APPID,不能为空
bpaasAppVersion:'1.0.0.0',//IoT 开放平台应用版本号,不能为空,可以传递"*"表示最新版本
storeInfo:{ //商户门店信息
storeCode:'', //门店代号
storeName:'', //门店名称
cashRegisterCode:'' //收银机编号
},
timeout:72000 //请求超时时间,单位毫秒,默认值为2 * 60 * 1000L(2分钟)超时,-1表示永不超时,可以根据业务情况修改
}
initV2(params,{
onResponse(data){
_this.responseData = _this.responseData + data
console.log('onResponse=>',data)
uni.hideLoading()
},
onEvent(eventId, data ){
_this.aBCPEvent = eventId + ' '+ data
uni.showToast({ title: eventId + ' '+ data,icon:"none",position:"bottom"})
console.log('onEvent=>',eventId,data)
},
onError(errorCode, errorMsg){
uni.showToast({ title: errorMsg,icon:"none",position:"bottom"})
console.log('onError=>',errorCode,errorMsg)
uni.hideLoading()
}
})
},
transaction(){
uni.showLoading({title: "NFC请贴一贴.."});
let _this = this
let params = {
appId:'2021005165678432', //IoT开放平台 应用 APPID,不能为空
operateType:'show',//show:发起收款 pop:关闭收银界面 update:更新金额
amount:'0.01',// 待支付的金额,注意是string类型,如显示"1"元,则入参为"1.00"
// 金额,格式严格校验 传入特殊符号“,”等 都会导致无法唤起支付
// 精确到小数点 后2位,不要超过,否则会导致 金额不一致
tradeNo:'1122334455667788',//外部订单号 tradeNo,可确认“快捷收款”、“收银员模式”是同一个订单
enableSendHid:false,//HID键盘方式写入BarCode 默认:false (不写入hid) true:写入hid
cashierType:'cashier',//cashier:(默认)收银员唤起 customer:快捷收款
timeout:72000 //请求超时时间,单位毫秒,默认值为2 * 60 * 1000L(2分钟)超时,-1表示永不超时,可以根据业务情况修改
}
startBPaaSService(params,{
onResponse(data){
_this.responseData = _this.responseData + data
console.log('onResponse=>',data)
uni.hideLoading()
},
onEvent(eventId, data ){
console.log('onEvent=>',eventId,data)
uni.showToast({ title: eventId + ' '+ data,icon:"none",position:"bottom"})
},
onError(errorCode, errorMsg){
uni.showToast({ title: errorMsg,icon:"none",position:"bottom"})
console.log('onError=>',errorCode,errorMsg)
uni.hideLoading()
}
})
}
}
}
</script>
<style>
</style>