更新记录
1.0.0(2026-11-14)
本版是首个可直接导入 HBuilderX 打自定义基座的完整包。
平台兼容性
uni-app
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | × | × | - | - | - | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | - | × | × | × |
其他
| 多语言 | 暗黑模式 | 宽屏模式 | 蒸汽模式 |
|---|---|---|---|
| × | √ | √ | × |
wb-wxfacepay-uts 微信刷脸支付(Android)插件使用说明
基于微信刷脸支付官方 SDK
wxfacepay-release-2.32.105.aar的 UTS 插件,仅支持app-android。封装人脸识别、付款码、扫码、支付结果回传及 v2.21–v2.32 新增能力。
| 项目 | 值 |
|---|---|
| 插件 ID | wb-wxfacepay-uts |
| 版本 | 1.0.0 |
| 类型 | UTS 原生混编插件 |
| 平台 | Android only |
| 最低系统 | Android 5.0(API 21) |
| HBuilderX | ^4.25.0 及以上 |
| 官方 SDK | 整包 v2.32.118.227,集成 AAR 2.32.105 |
| 授权 | 免费,源码可见 |
一、这个插件做什么
它是官方微信刷脸支付 SDK 的薄封装:把 SDK 的 Java / AIDL 接口转成 uni-app 可直接 import 的 UTS 方法,回调统一成 success / fail / complete 形式,共导出 15 个方法。
插件不提供以下内容,需要你自行具备:
- 微信支付商户资质、刷脸支付权限、软件服务商接入验收
- 过检设备与设备 SN 绑定、设备端预装的人脸服务 APP
- 商户后端:
rawdata换authinfo、micropay下单、订单查询与结果回传 - 收银业务页面与 UI
刷脸支付是线下收银场景,普通手机无法真机验证。请先确认资质、设备、后端三者齐备再接入。
二、支持平台
| 端 | 支持情况 |
|---|---|
| App - app-vue | 支持 |
| App - app-nvue | 支持 |
| H5 | 不支持 |
| 小程序 | 不支持 |
| iOS | 不支持 |
CPU 架构由设备端人脸服务 APP 决定;插件自带的 AAR 是纯 Java + AIDL 客户端,不含 .so。
三、运行前提(缺一不可)
- 设备端人脸服务 APP 已预装。SDK 通过
com.tencent.faceservice这个 action 查找并绑定该服务;插件已在清单里声明对应的queries,云打包时会合并进主工程。Android 11(API 30)及以上若缺少该声明,服务查询会返回空,所有接口都会失败。 - 设备在微信支付过检设备名录内,并完成 SN 绑定。
- 微信支付商户资质:已入驻、开通刷脸支付权限、通过软件服务商接入验收。
- 商户后端就绪:用
getWxpayfaceRawdata拿到的rawdata去换authinfo,用face_code走micropay下单,最后调用updateWxpayfacePayResult回传支付结果。 - 自定义基座:插件含 AAR、
AndroidManifest.xml、config.json变更,必须用 HBuilderX 打自定义基座并云打包,标准基座不含这些能力。 - 不能热更新:UTS 编译为纯原生二进制,插件更新必须重新发版 App,不支持 wgt 热更新。
插件目录中已随包提供官方 AAR,无需另行下载或放置。
四、安装与导入
- 把
uni_modules/wb-wxfacepay-uts整个目录放进项目根目录的uni_modules下;导入 zip 时保持uni_modules/wb-wxfacepay-uts/这一层级。 - 确认
package.json的id与目录名一致,均为wb-wxfacepay-uts。 - 在页面里按需
import:
import {
getVersion, isServiceConnected,
initWxpayface, getWxpayfaceRawdata, getWxpayfaceCode,
updateWxpayfacePayResult, releaseWxpayface,
enableFirewall, disableFirewall,
startCodeScanner, stopCodeScanner,
quitWxpayface, getWxpayfaceUserInfo, ttsSwitch, initUiParams,
} from '@/uni_modules/wb-wxfacepay-uts'
- 打自定义基座,运行到过检设备,再云打包正式发布。
不要同时保留旧插件。旧插件
zzzili-wxfacepayzz及同类旧原生插件自带同一个官方 AAR,两个插件一起引入会重复打包、类冲突。请在 manifest 的「App 原生插件配置」里取消勾选旧插件。
插件目录结构
uni_modules/wb-wxfacepay-uts/
├─ package.json 插件清单与发布元数据
├─ readme.md 本文档
├─ changelog.md 更新记录
└─ utssdk/
├─ interface.uts 对外 API 声明
├─ unierror.uts 错误对象
└─ app-android/
├─ index.uts UTS 实现层
├─ WxPayFaceNative.kt Kotlin 混编层(SDK 调用)
├─ AndroidManifest.xml 权限与服务可见性声明
├─ config.json 原生构建配置
└─ libs/
└─ wxfacepay-release-2.32.105.aar 官方 SDK,已随包提供
本插件不提供独立示例 APK,也不提供 H5 演示站,完整调用示例就在下一节与「六、API 一览」中,因此无需 uniCloud 的云存储或前端网页托管;本文档也没有使用任何图片,无需图床。
五、快速上手
官方业务链路:
initWxpayface 初始化(必须最先调用)
→ getWxpayfaceRawdata 取 rawdata
→ 【商户后端】rawdata 换 authinfo
→ getWxpayfaceCode 人脸识别,拿到 face_code
→ 【商户后端】micropay 下单
→ updateWxpayfacePayResult 回传支付结果
→ releaseWxpayface 释放
console.log(getVersion()) // "2.32.105.2032105"
console.log(isServiceConnected()) // 排错首选:设备端服务是否已连上
// 1. 初始化
initWxpayface({ perform_mode: 'LOW_PERFORM' }, {
success: (res) => console.log('init', res['return_code'], res['return_msg']),
fail: (err) => console.log('插件层错误', err.errCode, err.errMsg),
})
// 2. 取 rawdata,交给商户后端换 authinfo
getWxpayfaceRawdata({
success: (res) => console.log('rawdata', res['rawdata']),
})
// 3. 人脸识别(total_fee 是 string,单位【分】)
getWxpayfaceCode({
appid: '', mch_id: '', store_id: '', out_trade_no: '',
total_fee: '100', face_authtype: 'FACEPAY', authinfo: '', face_code_type: '1',
}, {
success: (res) => console.log('识别结果 / 付款码', res['face_code']),
updateResult: (res) => console.log('SDK 查单退出', res['return_code']),
})
// 4. 后端下单后回传结果
updateWxpayfacePayResult({ /* 按官方文档字段填写 */ }, {
success: (res) => console.log('结果回传', res),
})
releaseWxpayface()
回调语义:SDK 的所有回参,包括
return_code不等于SUCCESS的业务失败,一律通过success原样透传,由调用方读res['return_code']判断。fail只承载插件层错误(AAR 不可用、Context 缺失、数据解析失败)。SDK 的err_code不会被映射、不会丢字段。
getWxpayfaceCode与startCodeScanner是持续回调方法,不要频繁调用;用完分别调releaseWxpayface()/stopCodeScanner()。
六、API 一览
基础 8 个方法
| 方法 | 参数 | 返回 | 说明 |
|---|---|---|---|
getVersion() |
无 | string 同步 |
AAR 内置真实版本号 |
initWxpayface(init, options) |
代理与性能参数,均可选 | callback | 必须最先调用 |
getWxpayfaceRawdata(options) |
无 | callback | 返回 rawdata,供后端换 authinfo |
getWxpayfaceCode(params, callbacks) |
见下表 | 双回调 | success / updateResult |
releaseWxpayface() |
无 | 同步 | 释放人脸服务 |
enableFirewall(mchId, subMchId, options) |
商户号、子商户号 | callback | 初始化成功后调用 |
startCodeScanner(options) |
无 | 持续 callback | 扫码 |
stopCodeScanner() |
无 | 同步 | 停止扫码 |
新增 7 个方法
| 方法 | 参数 | 说明 |
|---|---|---|
isServiceConnected() |
无,同步返回 boolean |
诊断服务绑定,排错首选 |
updateWxpayfacePayResult(params, options) |
UTSJSONObject |
支付结果回传,业务链路闭环必需 |
quitWxpayface(params, options) |
UTSJSONObject |
中止进行中的刷脸流程 |
disableFirewall(options) |
无 | 与 enableFirewall 配对 |
getWxpayfaceUserInfo(params, options) |
UTSJSONObject |
获取 openid 等用户信息 |
ttsSwitch(params, options) |
UTSJSONObject |
刷脸流程语音提示开关 |
initUiParams(params, options) |
UTSJSONObject |
双屏异显参数初始化 |
新增方法的
params用UTSJSONObject原样透传给 SDK 的Map,不预设字段,按官方文档填写即可。
getWxpayfaceCode 请求参数
| 字段 | 必填 | 说明 |
|---|---|---|
appid / mch_id / store_id |
是 | 应用、商户、门店 |
face_authtype |
是 | FACEPAY / FACEPAY_DELAY / FACE_AUTH |
authinfo |
是 | 后端用 rawdata 换取的调用凭证 |
face_code_type |
是 | 官方要求填 "1"(18 位付款码) |
total_fee |
条件 | string,单位「分」;face_code_type 为 "1" 时可不填 |
out_trade_no |
条件 | face_code_type 为 "0" 时必填,"1" 时可不填 |
sub_appid / sub_mch_id |
否 | 服务商模式 |
openid |
否 | 快捷支付模式 |
screen_index / overlay_option |
否 | 双屏异显参数 |
total_fee请以官方接口文档为准(单位分、string),不要沿用旧插件页面示例里的"0.01"。
initWxpayface 可选参数
ip、port、user、passwd、proxy_type、tcp_port、perform_mode。无代理时整块不填即可;proxy_type 取值为 0 无代理、1 HttpTunnel、2 Socks5、3 Http。
七、错误码
插件层错误走 fail,号段 9030001 - 9031000:
| 错误码 | 含义 |
|---|---|
9030001 |
参数缺失或无效 |
9030002 |
SDK 回调数据解析失败 |
9030003 |
无法获取 Application Context,SDK 未初始化或服务未连接 |
9030004 |
原生 SDK 调用异常:AAR 未正确集成、SDK 类不可用或设备端服务绑定失败 |
SDK 自身的业务状态不走 fail,在 success 回参里读:
return_code:SUCCESS/ERROR/PARAM_ERROR/SYSTEMERRORerr_code:如271378620(未初始化)、271378621(初始化中)
不要混用两套错误码。
八、排错顺序
isServiceConnected()返回false:优先查设备端人脸服务 APP 是否预装、是否已启动。- 检查
queries声明是否合并进最终 manifest(Android 11 及以上必需)。 - 检查微信支付资质、设备是否在过检名录、SN 是否绑定。
- 确认打的是自定义基座、且云打包时勾选了本插件。
- 看 HBuilderX 控制台里
[wb-wxfacepay-uts]前缀的混编层异常日志。
九、从旧插件迁移
旧插件 zzzili-wxfacepayzz(id=5311)是 uni.requireNativePlugin 时代的原生插件,本插件是独立的 uni_modules UTS 插件,不能直接替换,但底层是同一个官方 AAR,商户后端与设备侧不用改。
| 项 | 旧插件 | 本插件 |
|---|---|---|
| 引入 | uni.requireNativePlugin('zzzili-wxfacepayzz') |
import { ... } from '@/uni_modules/wb-wxfacepay-uts' |
| 回调 | 位置参数传单个函数 | options 对象 { success, fail, complete } |
| 双回调 | getWxpayfaceCode(map, cb1, cb2) |
getWxpayfaceCode(params, { success, updateResult }) |
// 旧
const wxfacepayzz = uni.requireNativePlugin('zzzili-wxfacepayzz')
wxfacepayzz.getWxpayfaceRawdata(function (res) { console.log(res) })
// 新
import { getWxpayfaceRawdata } from '@/uni_modules/wb-wxfacepay-uts'
getWxpayfaceRawdata({ success: (res) => console.log(res) })
8 个方法名、参数字段、SDK 回参字段全部对齐,原来判断
return_code的逻辑可以原样保留。注意getVersion()返回值、total_fee单位、最低系统(Android 5.0)这几处差异。
十、权限与隐私声明
| 项 | 说明 |
|---|---|
| 广告 | 无 |
| 权限 | android.permission.INTERNET |
| 数据采集 | 插件本身不采集、不上传、不缓存数据。集成的微信刷脸支付 SDK 会在刷脸流程中采集人脸图像与人脸特征、手机号、openid、付款码、设备与门店信息,用于身份核验与支付交易,相关请求发往微信支付服务端。rawdata、authinfo、face_code 仅在 SDK 与调用方或商户后端之间透传,插件不落盘 |
人脸信息属于敏感个人信息。请在自己 App 的隐私政策中如实披露,并按微信支付官方说明完成合规流程。SDK 采集明细以微信支付官方文档为准。
十一、原生依赖与来源
| 项 | 值 |
|---|---|
| 随包 AAR | wxfacepay-release-2.32.105.aar,52,054 字节 |
| SHA-256 | a1e8aa9c96917b8048e045addd3f30e4f17ffa6d8bce6e38d3a3a30183d56ea8 |
| 位置 | utssdk/app-android/libs/ |
| 官方整包 | wxpayface-sdk-release-2.32.118.227-android.zip |
| AAR 内置版本 | 2.32.105.2032105 |
| 其他原生配置 | INTERNET 权限、com.tencent.faceservice 的 queries 声明、minSdkVersion: 21 |
参考链接:
本插件仅做 SDK 封装。发布前请自行确认微信支付对官方 AAR 再分发的授权条款。
十二、更新记录
完整更新记录见插件包内 changelog.md。

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 133
赞赏 0
下载 12765088
赞赏 1959
赞赏
京公网安备:11010802035340号