更新记录

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 开放平台应用版本号,不能为空,可以传递"*"表示最新版本
                    extInfo:{
                        __bpaas_disable_ipc_call__:true,//必须传:true  true: android 小指令sdk方式
                        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 transParams = {
                    page:'cashier',//cashier支付  opencardpay 会员
                    operateType:'show',//show:发起收款   pop:关闭收银界面   update:更新金额
                    bpaasExecutor:"nfc",//  固定值为"nfc",表示当前ABCP请求与参数将会透传到碰一下设备上执行
                    __bpaas_ipc_timeout__:72000,    //请求超时时间,单位毫秒,默认值为2 * 60 * 1000L(2分钟)超时,-1表示永不超时,可以根据业务情况修改
                    appId:'2021005165678432', //IoT开放平台 应用 APPID,不能为空
                    params:{
                        amount:'0.01',// 待支付的金额,注意是string类型,如显示"1"元,则入参为"1.00"
                                      // 金额,格式严格校验 传入特殊符号“,”等 都会导致无法唤起支付 
                                      // 精确到小数点 后2位,不要超过,否则会导致 金额不一致
                        tradeNo:'1122334455667788',//非必填 外部订单号 tradeNo,可确认“快捷收款”、“收银员模式”是同一个订单
                        enableSendHid:false,//HID键盘方式写入BarCode 默认:false (不写入hid)   true:写入hid
                        cashierType:'cashier',//非必填 cashier:(默认)收银员唤起    customer:快捷收款

                        opencardpayType:"",//非必填  传入customer时,表示是快捷收银模式(快捷收银模式时,operateType=show、update,都需传入该字段)
                        providerId:"2088831338335665",//商户PID
                        appId:"2021001160639010", //用于配置会员卡模板的开放平台应用ID
                        templateId:"20200814000000002415308000300666" ,//卡模板id
                        callbackType:"SPI",//PI开卡时商家 CRM 回调模式,枚举值: SPI(会员3.1) OPENAPI(会员3.0) 如不传或输入非法参数,默认值:SPI
                        outString:"",   //非必填 透传参数,在开卡调用时透传至商家 CRM 服务端
                    }

                }
                startBPaaSService(transParams,{
                    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>

</script>

<style>
</style>

长期维护,持续更新,对付费用户提供终身免费技术支持

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。