# 以「青蛙模式」接入刷脸支付、运行「青蛙 app」的设备
微信支付门店智能硬件支持运行小程序。目前我们已对「微信青蛙」系列设备提供了较丰富的能力支持,其他软硬件请耐心等待。如有建议,欢迎反馈。
最近更新
青蛙 App 2.12 版本 [2019.11.28]
新增
- 开机自启、首屏常驻运行小程序
- 小程序内接收刷脸付款码
- 小程序监听键盘输入、扫码器输入
- 前屏小程序运行中请求登录
- 背屏小程序扫码登录
- 商户平台自助配置小程序(商户号维度批量下发,后续支持设备SN维度)
# 1. 关键概念
# 1.1 门店智能硬件上的小程序
小程序可以运行在不同终端上。在门店智能硬件或手机微信 App 上运行的小程序,本质相同,有着相同的技术原理、帐号体系。开发者可以直接将现有小程序配置到门店智能硬件中,也可以根据门店智能硬件的特性作差异化的设计。
在不同运行环境,确有部分能力差异,但更重要是应用场景的差异。例如:
- 从个人手机场景,到门店智能硬件的场景
- 从仅由用户操作,到成为商家的经营工具,由店员与顾客实时互动
- 从只能通过二维码作单次信息交换,到可以登录微信身份,从而连接起物理世界与数字世界
硬件运行小程序,容易获得以下特性:
连接微信
微信身份( 用户帐号体系 / 用户信息授权 / 连接关系链)
微信能力( 订阅服务通知 / 连接公众号 / 连接卡券 )多端融合
跨终端 - 跨场景 - 线上线下:服务融合 流量互通
开发运营成本
开发简单 / 敏捷更新 / 存量应用迁移 / 用户认知成熟 / 易于传播
以上可能带来创新机会。如何连接微信,构建多端融合的服务场景,值得思考探索。
# 1.2 软硬件适用范围
# 软件
青蛙 App(仅支持 Android 系统)
# 硬件
单屏:青蛙 及 开放平台设备
双屏:仅支持青蛙 Pro,暂不支持开放平台双屏设备
# 建议配置
四核2GHz CPU
内存2GB RAM+8GB ROM
安卓7.1及以上
# 1.3 软件架构
青蛙 App 与 小程序 的关系如下:
# 2. 关键能力说明
# 2.1 小程序调起方式
# 2.2 登录能力
手机微信 App,提供了一个持续保持用户微信登录态的小程序运行环境(所有用户都会先登录微信帐号才能进入和使用微信)。因此在手机微信 App 中,小程序可以轻松调用 wx.login、wx.getUserInfo 等 API 请求到当前登录用户的 OpenID、手机号授权等。
与此不同的是,门店智能硬件上的青蛙 App在缺省状态是以「无登录态」运行的,仅在有需要时才会请求用户「临时登录」。用户可通过「刷脸」或「手机扫码」,让青蛙 App 短暂获得登录态。
登录过程开发者无需理解或维护,登录态由青蛙 App 管理。登录后,小程序即可如常调用依赖用户身份的 API 。
青蛙 App 请求用户登录的时机:
- 打开小程序之前,先请求用户登录(将小程序配置至设备时可设置)
- 小程序运行过程中,请求用户登录(由小程序调用 API 实现)
青蛙 App 清空登录态的时机:
登录态超时后,自动清空登录态并关闭小程序(弹窗询问)
小程序可调用 API 请求清空登录态并自我关闭
特殊
双屏的青蛙 Pro 设备,青蛙 App 可为前后屏环境获取 2 个独立的登录态,登录方式有别:
前屏(带有刷脸摄像头的一面):仅支持刷脸登录;登录态有效期较短
背屏:仅支持在背屏桌面点击「登录」图标,由手机扫码登录;登录态有效期较长
# 2.4 支付能力
青蛙设备支持通过「刷脸」或「被扫」的方式获取用户付款码,藉由商户后台经「付款码支付」通道下单支付。上述支付途径,同样可被运行在青蛙中的小程序调用。
小程序可调用 API 通知青蛙发起刷脸支付(仅支持前屏小程序),类型如下:
- 刷脸支付:付款码去向可选(回传至小程序,或经 USB-HID 外传给收银机)
- 免刷脸快速支付:用户刷脸登录小程序后,在短暂时间内,小程序可免刷脸获取付款码,付款码去向可选(回传至小程序,或经 USB-HID 外传给收银机)
小程序亦可调用 API 监听青蛙的扫码器输入,扫码类型不限。
至于小程序原有的「小程序支付」,将弹出二维码组件,转由手机扫码完成支付。
针对使用小程序接收付款码,实现「独立收银」的特别说明:
业务流程:
- 青蛙上运行小程序
- 小程序调起青蛙的刷脸支付
- 用户刷脸、确认支付后,青蛙把付款码传给小程序
- 小程序拿到付款码后,传给商家后台
- 商家后台按常规的「付款码支付」流程下单支付
刷脸支付返回的付款码,对收款商户号有限制,只可由青蛙设备所绑定的商户号收款(青蛙 App 的设置页面可检查绑定状态)
# 2.4 外部通讯能力
当青蛙连接外部设备(如收银机)使用的时候,可对外部设备作单向或双向通讯。上述通讯能力,运行在青蛙中的小程序均可调用或响应。
- 传出:调用 API 通过 USB-HID 以模拟键盘输入的方式,对外部设备传输自定义数据信息,如付款码、会员识别码、手机号等(外部设备无需开发)
- 传入:外部设备可对青蛙发起「启动小程序」指令,也可以经由青蛙透传自定义信息至正在运行的小程序(外部设备需提前接入指令 SDK )
# 2.5 双屏联动能力
这是青蛙 Pro 的独有能力。
- 前后双屏,支持同时运行小程序(相同或不同 AppID 均可,可指定要打开的页面)
- 运行于前屏的小程序,可在任意时机在背屏联动打开特定小程序的特定页面
- 运行于前后屏的 2 个小程序之间,可实时前后通讯,通讯内容由开发者自由约定
全部硬件扩展能力,详见附录《硬件运行小程序的扩展 API 接口文档》。
# 3. 开发、调试、下发
# 3.1 基础属性
屏幕分辨率
微信青蛙基础版、微信青蛙Pro(前屏、背屏)
800 × 1280 px
场景值
当小程序在手机微信 App 以外的环境运行,场景值 ID=1133
参考:https://developers.weixin.qq.com/miniprogram/dev/reference/scene-list.html
# 3.2 小程序的准备
1. 准备 企业主体的小程序(获取小程序 AppID)
2. 开发 使用微信开发者工具,开发小程序
3. 调试 现阶段小程序在硬件上的调试存在一定限制
- 由于开发者工具暂无法模拟运行、调试本文档介绍的「硬件扩展 API」,请完成代码编写后,上传生成「体验版」小程序,将其配置到硬件上作真机调试
- 由于「体验版」小程序需要校验使用者权限,因此仅支持以「先请求登录后打开小程序」的方式运行
- 暂不支持「开发版」
4. 发布
1)提交审核,发布「正式版」小程序
- 小程序审核Tips
在小程序提交正式版审核时,可参考以下建议,帮助小程序过审:
在备注中清晰说明:此小程序的哪个功能需要配合刷脸设备使用,无法在移动端体验
上传小程序在设备内使用流程的视频
2)将「正式版」配置到硬件
# 3.3 青蛙设备准备
# 3.3.1 激活青蛙设备
青蛙设备启用前,需完成设备序列号 SN 与收款商户号 MchID 的绑定。
现支持方式:
- 连接收银机激活,完成一笔微信付款码支付
# 3.3.2 将小程序配置下发到青蛙设备
1)准备微信开放平台的移动应用AppID
- 移动应用 AppID 用于标记运行小程序的硬件所属的主体信息,以获得运行和登录小程序的权限
- 已注册移动应用AppID的服务商或商户,需完成商户号(MCHID)与移动应用AppID的绑定(简称MA绑定)
- [限制] 移动应用AppID主体必须与用于配置下发小程序的商户号主体一致
- 如果移动应用AppID为服务商所有,请通过邮件方式进行MA绑定申请,邮件模版如下:
收件人:
facepay_help@tencent.com
邮件标题:[服务商MA绑定申请]+商户名称
正文需包含以下内容:
移动应用AppID(最多三个)
服务商号
是否认证
移动应用AppID主体名称(认证的企业名称)
商户主体名称
是否开通微信支付
2)登录微信支付商户平台
3)前往小程序配置下发页面
直连商户
产品中心→我的产品→刷脸支付→前往功能(请先开通刷脸权限)→青蛙APP运行小程序
服务商
产品中心→特约商户授权产品→服务商刷脸支付→前往功能(请先开通刷脸权限)→青蛙APP运行小程序
4)配置操作说明
- 直连商户、特约商户、普通服务商、渠道商,均可登录配置
- 服务商(普通服务商或渠道商)需要把设备绑定到设备列表,才能获得配置权限
- 商户(直连商户或特约商户)需确认设备未被服务商绑定,才能获得配置权限
- 小程序可以提前预装到设备
- 可按多种维度下发小程序至设备:按设备类型/设备型号/商户号(最多500个)/设备号(最多500个)
5)硬件上的小程序代码将保持最新,但「体验版」「正式版」版本不会变
6)备用流程:人工申请下发小程序到硬件
- 注意:通过人工申请配置将覆盖自助配置,如发现自助配置无效,请检查是否曾经提交过人工配置
# 附录
# 相关文档链接
# 硬件运行小程序的应用场景举例
- 使用小程序实现独立收银
- 小程序授权手机号,开通会员
- 半自助 POS 机
- 自助收银 / 点餐
- 排队取号 / 核验
- 整体场景方案
- 商场导览屏,品牌服务:餐饮自助点餐取号 / 品牌营销导流
- 线上沉淀
- 整体工具方案
- 线上:小程序商城、关系链授权
- 前屏:刷脸会员、自助收银、券核销
- 背屏:连接 CRM 展示会员信息、接待建议、ERP、收银系统