关闭
公众号二维码

# SDK小程序

更新记录
版本 简要说明 修改日期
1.0 新增SDK模式IoT小程序开发指引内容 2022/2/22

# 背景

微信小程序硬件框架( Wechat Mini-Program Framework,以下全部简称 [WMPF] )是由微信官方提供、除微信客户端之外的小程序运行环境。为方便理解,可以将“小程序框架”与“小程序应用”,类比为“浏览器”与“浏览器插件”的关系。[WMPF] 可广泛应用于多种智能硬件,本身不限于刷脸支付设备使用。

[WMPF]由于适用多种硬件环境,通过与WMPF团队沟通与协调,且刷脸设备相对于其他设备会有所不同(包括接入流程、部分接口设计)。因此,刷脸设备SDK模式IOT小程序开发有特殊的流程。

# 1.前提条件

● 请以「SDK 模式」接入刷脸支付的Android设备;

● 若设备已完成软硬件接入流程,但服务商不知何时算完成软硬件接入流程,可点击进入微信刷脸支付开放平台进行详细了解;

● 若已绑定铺设服务商,但服务商不知如何绑定,可点击进入设备关系绑定进行详细了解;

● 在刷脸设备上按照系统设计要求预置刷脸APP和iotservice(如刷脸APP版本低于2.20,则不符合最低版本要求,请通过微信刷脸支付开放平台SDK模式下载最新版本),安装 WMPF(v1.0.3版本或以上)。

# 2.接入流程

# 2.1 注册微信终端合作平台账号

以铺设服务商帐号身份,登陆微信支付商户平台 管理刷脸支付设备,并进入「刷脸SDK接入小程序框架」功能。

# 2.2 设备类型注册

激活微信终端合作平台帐号,自动完成设备类型注册,获取product_id和model_name。

# 2.3 获取相关参数

使用设备的主应用(即商户app)在微信开放平台创建移动应用,获取该移动应用的 AppID 即hostAppId,及AppSecret、 access_token
备注
1、开放平台帐号,需完成企业主体认证;
2、创建移动应用一般需7天审核,请尽早申请。同一应用的apk只可以创建一个移动应用 AppID;
3、Android应用签名生成工具

# 2.4 绑定运行的小程序

绑定设备上的主应用(即商户app)所需运行的小程序 AppID。

特别说明
1、此处输入的appid为步骤3生成的移动应用appid(hostappid);
2、按要求添加完以后,点击管理,添加小程序appid。

# 2.5 注册设备

设备注册为后台接口,确保设备用于调起小程序权限,详情请点击进入调用方法进行了解。
2.5.1 可在终端合作平台的「查询设备状态」功能上,检查设备是否成功注册;
2.5.2 如需批量导出设备列表可参考:微信支付IoT设备API
特别说明
1、device_id即设备序列号(SN);
2、model_name即设备型号。

# 3.开发流程

# 3.1 小程序的两种登录、启动模式

3.1.1 先登录再启动小程序

sequenceDiagram participant A as 主应用 participant B as 刷脸SDK participant C as WMPF participant D as 小程序应用 A ->> B: Step1 初始化、获取调用权限 note over A,B : initWxpayface
getWxpayfaceRawdata
get_wxpayface_authinfo A ->> C: Step2 激活 note over A,C : IPCInvokerTask_ActivateDeviceByIoT A ->> C: Step3 预置刷脸调用参数 note over A,C : IPCInvokerTask_InitWxFacePayInfo传入getWxpayfaceCode的调用参数 A ->> C: Step4 请求用户刷脸登录 note over A,C : IPCInvokerTask_AuthorizeByWxFacePay C ->> B: Step5 (自动) B ->> B: Step6 用户刷脸登录 C -->> A: Step7 登录凭据+用户信息 A ->> C: Stp8 启动小程序 note over A,C : IPCInvokerTask_LaunchWxaApp C ->> D: Step9 启动小程序(带登录状态) A ->> C: 注销登录 note over A,C : IPCInvokerTask_Deauthorize

3.1.2 先启动小程序再登录

sequenceDiagram participant A as 主应用 participant B as 刷脸SDK participant C as WMPF participant D as 小程序应用 A ->> B: Step1 初始化、获取调用权限 note over A,B : initWxpayface
getWxpayfaceRawdata
get_wxpayface_authinfo A ->> C: Step2 激活 note over A,C : IPCInvokerTask_ActivateDeviceByIoT A ->> C: Step3 预置刷脸调用参数 note over A,C : IPCInvokerTask_InitWxFacePayInfo传入getWxpayfaceCode的调用参数 A ->> C: Step4 启动小程序 note over A,C : IPCInvokerTask_LaunchWxaApp C ->> D: Step5 启动小程序(无登录状态) D ->> D: Step6 微信登录 note over D,D : wx.login D ->> C: Step7 (自动) C ->> B: Step8 (自动) B ->> B: Step9 用户刷脸登录 D ->> D: Step10 已登录 A ->> C: Step11 注销登录 note over A,C : IPCInvokerTask_Deauthorize

# 3.2 相关接口

3.2.1 激活设备
激活设备:IPCInvokerTask_ActivateDeviceByIoT

3.2.2 预置刷脸调用参数
1、[WMPF]及小程序调用刷脸功能前置条件:IPCInvokerTask_InitWxFacePayInfo
2、参考刷脸SDK「刷脸支付」getWxpayfaceCode的调用参数;注意参数的有效期,如authinfo的expires_in。

3.2.3 请求用户授权登录,使[WMPF]获得用户的微信登录状态
1、刷脸登录接口:IPCInvokerTask_AuthorizeByWxFacePay
● 用户刷脸成功后,主应用可获得用户信息,参考刷脸 SDK「人脸识别」getWxpayfaceUserInfo的返回参数。
2、二维码登录接口:IPCInvokerTask_Authorize
3、注销登录接口:IPCInvokerTask_Deauthorize
注意:调用后将完全退出小程序。

3.2.4 启动、关闭小程序
1、启动特定小程序:IPCInvokerTask_LaunchWxaApp
2、扫码拉起小程序:IPCInvokerTask_LaunchWxaAppByQrCode
3、关闭小程序:IPCInvokerTask_CloseWxaApp
注意
正式版小程序可以无登录状态启动;
体验版、开发版,由于平台需校验用户权限,必须前置登录才可以启动;
调用后小程序将退至后台。

3.2.5 预加载(增加小程序的打开速度,根据提示方式不同,分为以下两个接口)
1、预加载小程序运行环境:IPCInvokerTask_PreloadRuntime提升启动速度;
2、预热特定小程序:IPCInvokerTask_LaunchWxaApp需传入参数isForPreWarmLaunch=true。
注意
预加载是预加载小程序启动所需要的环境,预热是预加载指定的小程序达到快速启动指定小程序的效果。

3.2.6 主应用与小程序的交互
1、WMPF调用通道 (Invoke Channel),主应用与小程序之间可作本地双向通讯,通讯内容及格式可自定义。

3.2.7 小程序的能力
刷脸支付硬件上的专有能力:
1、小程序运行中发起刷脸登录,仅当 [WMPF] 无登录状态时适用。
第一,由wx.login接口触发;
第二,触发逻辑如下:
● 由于 [WMPF] 无登录状态,调用wx.login时无法正常返回用户信息,所以 [WMPF] 将自动请求用户登录,再执行常规的wx.login;
● 若已前置执行IPCInvokerTask_InitWxFacePayInfo预置刷脸调用参数,优先调用刷脸登录;若刷脸失败或无法预置刷脸调用参数,降级为调用二维码登录。
第三,截至[WMPF]v1.0.3,在小程序生命周期内只可执行一次,无论是否登录成功。
2、小程序运行中发起刷脸支付
第一,需前置执行IPCInvokerTask_InitWxFacePayInfo预置刷脸调用参数;
第二,小程序调用wmpf.wxFacePay.facePay调起刷脸支付,获取付款码。

3.2.8 其他接口
其他接口可根据自身需求,根据Service与Client的IPC交互协议进行调用。

# 3.3 相关文档(可做了解)

文档名称 文档内容说明
Home WMPF通用步骤,和刷脸设备无关,做了解即可
硬件注册步骤 WMPF通用步骤,和刷脸设备无关,做了解即可
硬件注册For JVM (experimental) WMPF通用步骤,和刷脸设备无关,做了解即可
人脸识别及支付相关文档 刷脸支付设备专用
Service与Client的IPC交互协议 通用,主应用与[WMPF]的交互能力(Service 即[WMPF],Client 即主应用)
WMPF调用通道(Invoke Channel) 通用,主应用与小程序的交互能力
WMPF专有接口(JSAPI) 通用,小程序在[WMPF]上的扩展能力
WMPF Push能力 通用,触发主应用的消息推送能力
以「SDK模式」接入刷脸支付的设备运行小程序的产品文档 以「SDK模式」接入刷脸支付的设备运行小程序的产品文档
常见错误码 通用,errCode返回的错误信息可通过此文档查询
Q&A 通用,常见问答,建议阅读
上次更新: 4/1/2022, 1:49:27 PM