支付宝IOT小程序二次开发视频

课程简介

   

  • 文档迁移通知
  • IoT小程序接入指南
  • IoT小程序API
    • 版本更新记录
    • 基础能力
    • 支付能力
      • 收银台
    • 会员能力
    • 语音能力
    • 连接收银机能力
    • 外设接入能力
  • IoT小程序组件
  • 蜻蜓小指令接入指南

 

IoT小程序-收银台

更新时间:2019/10/21 访问次数:9584

  • 启动收银台
  • 传入扫码支付结果
  • 开启收银台事件监听
  • 关闭收银台事件监听

启动收银台

my.ix.startApp({ appName: 'cashier',  ... };

 

使用说明:蜻蜓小程序调用收银台api后,蜻蜓将进入收银台页面,用户可以选择刷脸或者扫码,收银台会返回付款码。小程序从收银台回调方法接收到支付宝付款码后,需要将付款码传回小程序服务端或发送到收银机(点击链接查看发送方法),由小程序服务端/收银机服务端调用支付宝当面付条码支付接口 alipay.trade.pay 发起支付。

注意:

  1. 通过收银台API获取的付款码(barcode),仅用于当面付接口 alipay.trade.pay发起支付。
  2. 调用 alipay.trade.pay发起支付时,入参scene=bar_code。如果传入其他值会导致收银台无法获取刷脸支付结果。
  3. 刷脸支付结果页:
    1. 刷脸成功后收银台会返回barcode以供支付, 此时收银台界面不会退出, 会保留在前台获取并展示支付结果, 可以通过 my.ix.onCashierEventReceive 获取收银台真正退出的时机。
    2. 结果页默认展示时长为5秒,有运营内容(如会员开卡等)时为10秒。

 

入参

参数

类型

是否必填

含义

appName

String

固定值cashier,不能修改

bizNo

String

收银台业务流水号,由开发者自定义,需保证不重复

totalAmount

String

订单总金额

sellerId

String

支付pid

storeId

String

门店id

certNo

String

刷脸支持传入身份证号

certName

String

刷脸支持传入身份证姓名

phoneNumber

String

刷脸支持传入手机号

orderDetail

JSON

自定义订单详情(仅用于展示订单相关信息),支持两栏,最多五行

  • 每行文案分成两个字段:名称、内容详情,名称不要超过4个字,内容详情不要超过15个字
  • 文案可以设置两种颜色:灰色(#999999)、红色(#FF0000)
  • 格式:[{name:'名称',content:'详情',fontColor:'gray/red'}]
  • 格式错误时,不能正常显示订单详情

posTimeout

String

支付方式选择页超时时间默认两分钟,支持传入自定义时长(10秒或以上,低于10秒报错)或设置为不超时(-1)
faceLoadingTimeout

String

刷脸支付结果等待页超时时间默认15秒,支持传入参数自定义超时时长(5秒或以上,低于5秒报错)
showScanPayResult

bool

扫码支付默认不展示支付结果页。如果传入了“true”,则会展示标准结果页,需要小程序调用scanPayResult接口传入支付结果。详细说明见下。

scanLoadingTimeout

String

扫码支付结果等待页超时时间默认5秒,支持传入参数自定义超时时长(5秒或以上,低于5秒报错)

回参

参数

类型

含义

success

bool

是否成功

barCode

String

付款码,其中支付宝付款码仅用于当面付接口 alipay.trade.pay发起支付

buyerId

String

买家支付宝user_id,刷脸成功有返回, 扫付款码不返回

codeType

String

C是扫码,F是扫脸

deviceSn

String

机具sn

error

String

失败错误码[仅错误时返回]

errorMessage

String

失败错误信息[仅错误时返回]

ftoken

String

请勿使用ftoken进行支付

返回码说明

名称 描述
102 参数错误
1700 收银台页面,点击键盘设置,收银台退出并返回错误码1700。小程序容器10.1.60.20-18版本开始支持。

 

1

2

3

4

5

6

7

8

9

my.ix.startApp({

  appName: 'cashier',

  bizNo: '12345678',

  totalAmount: '0.01',

  orderDetail: [{ name: '名称1', content: '详情134', fontColor: 'gray' },{ name: '名称2', content: '详情456', fontColor: 'red' }],

  success: (r) => {

    my.showToast({ content: r.barCode });

  }

});

  

传入扫码支付结果

my.ix.startApp({ appName: 'scanPayResult',  ... };

使用说明

  1. 扫码支付成功后,小程序调用该接口传入支付结果,收银台会展示对应的支付结果页。
  2. 该接口不会自动获取支付结果,需要小程序自行获取支付结果,调用此接口展示支付结果。
  3. 该接口需与my.ix.startApp({ appName: 'cashier',  ... }配合使用,并且my.ix.startApp({ appName: 'cashier',  ... }中入参showScanPayResult:true.

入参

参数

类型

是否必填

含义

bizNo

String

必填,与唤起收银台的流水号一致

totalAmount

String

用户实付金额

bizAmount

String

商家收款 **

discount

String

优惠 **

 

1

2

3

4

5

6

7

8

9

10

my.ix.startApp({

    appName: 'scanPayResult',

    bizNo: '2019042518000000',

    totalAmount: '0.01',

    bizAmount: '0.02',

    discount: '0.01',

    success: (r) => {

      my.showToast({ content: JSON.stringify(r) });

    }

});

 

注:直接调用这个jsapi不会有任何效果,需要配合收银台api使用。使用时收银台入参scanPayResult需设置为true,正常使用流程是在获取收银台barCode后,支付成功后调用这个api。

 

开启收银台事件监听

调用收银台api打开收银台页面后,用户扫码/刷脸后会在收银台api回调方法中返回barcode信息,但是收银台页面并没有退出,会自动查询支付结果并显示支付结果页面。开发者在收银台api回调方法接收到barcode后,可以监听收银台页面关闭事件,并执行后续逻辑处理。

监听到收银台退出事件后一定要关闭监听。

my.ix.onCashierEventReceive

用于监听收银台是否被关闭, 继续后续流程

 

入参

名称

类型

是否必填

描述

listener

function

收银台事件产生时被回调的方法

回调参数

名称

类型

描述

bizType

string

RESULT_MEMBER 支付结果页会员开卡
RESULT_BTN_FUNCTION 支付结果页自定义功能按钮
RESULT_CLOSED 收银台/结果页关闭

 

代码范例

 

1

2

3

4

5

6

7

8

9

10

my.ix.onCashierEventReceive((r) => {

  if (r.bizType = 'RESULT_CLOSED')

    my.showToast('收银台关闭');

  else if (r.bizType = 'RESULT_BTN_FUNCTION')

    my.showToast('收银台自定义按钮按下');

  else if (r.bizType = 'RESULT_MEMBER')

    my.showToast('支付结果页会员开卡');

  else

    my.showToast('RESULT: ' + r.keyCode);

});

 

关闭收银台事件监听

my.ix.offCashierEventReceive

代码范例

 

1

my.ix.offCashierEventReceive();

 

FAQ

关于此文档暂时还没有FAQ

所有学员评价