更新记录

1.0.3(2022-05-25)

新增扫码功能

1.0.2(2021-06-11)

更改为callback形式返回异步信息

1.0.1(2021-06-10)

发布插件

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


 本插件最新版本1.0.3封装了微信刷脸支付SDK wxfacepay-release-2.32.105.aar。

微信刷脸支付官方文档: https://pay.weixin.qq.com/wiki/doc/wxfacepay/develop/android/facepay.html

本插件实现封装了SDK中的7个方法: 1、程序启动时初始化 initWxpayface 2、获取数据 getWxpayfaceRawdata 3、人脸识别 getWxpayfaceCode(获取用户信息) 4、释放资源 releaseWxpayface 5、启动防火墙配置 enableFirewall 6.启动扫码startCodeScanner 7.关闭扫码 stopCodeScanner

有异步返回信息的方法会通过globalEvent的形式进行返回信息,具体请参考示例代码。 具体刷脸支付业务流程的实现,请参考官方文档。

<template>
    <view>
        <view>
            <button @click="getversion()">getversion</button>
            <button @click="initWxpayface()">initWxpayface</button>
            <button @click="getWxpayfaceRawdata()">getWxpayfaceRawdata</button>
            <button @click="getWxpayfaceCode()">getWxpayfaceCode</button>
            <button @click="releaseWxpayface()">releaseWxpayface</button>
            <button @click="enableFirewall()">enableFirewall</button>
            <button @click="startCodeScanner()">startCodeScanner</button>
            <button @click="stopCodeScanner()">stopCodeScanner</button>
            <button @click="openfacepay()">完整流程</button>
        </view>
        <text v-for="(item,index) in msglist">{{item}}\n</text>
    </view>
</template>
<script>
    const wxfacepayzz = uni.requireNativePlugin('zzzili-wxfacepayzz');
    export default {
        data() {
            return {
                msglist: []
            }
        },
        onLoad() {
            this.msglist.push('start test print')
        },
        methods: {
            getversion: function() {
                this.msglist.push(wxfacepayzz.getVersion());
            },
            initWxpayface: function() {
                var map = {
                    ip: "192.168.1.1", //若没有代理,则不需要此行
                    port: "8888", //若没有代理,则不需要此行
                    user: "mEtnUser", //若没有代理,则不需要此行
                    passwd: "mEtnPassword", //若没有代理,则不需要此行
                    proxy_type: 1, //若没有代理,则不需要此行        
                    perform_mode: "LOW_PERFORM" //低性能表现,默认关闭美颜等
                };
                var that = this;
                this.msglist.push('wxfacepayzz.getVersion()' + wxfacepayzz.initWxpayface(map, function(res) {
                    that.msglist.push(JSON.stringify(res));
                }));
            },
            getWxpayfaceRawdata: function() {
                var that = this;
                this.msglist.push('wxfacepayzz.getWxpayfaceRawdata()' + wxfacepayzz.getWxpayfaceRawdata(function(res) {
                    that.msglist.push(JSON.stringify(res));
                }));
            },
            getWxpayfaceCode: function() {
                var map = {
                    appid: "123456",
                    mch_id: "123456",
                    store_id: "123456",
                    out_trade_no: "123456",
                    total_fee: "0.01",
                    face_authtype: "FACEPAY",
                    authinfo: "124156565",
                    face_code_type: "1"
                };
                var that = this;
                this.msglist.push('wxfacepayzz.getWxpayfaceCode()' + wxfacepayzz.getWxpayfaceCode(map, function(res) {
                    //wxpayfaceCallBack
                    that.msglist.push(JSON.stringify(res));
                }, function(res) {
                    //updateResultWxpayfaceCallBack
                    that.msglist.push(JSON.stringify(res));
                }));
            },
            releaseWxpayface: function() {
                this.msglist.push('wxfacepayzz.releaseWxpayface()' + wxfacepayzz.releaseWxpayface());
            },
            startCodeScanner:function(){
               var that = this;
                this.msglist.push('wxfacepayzz.startCodeScanner()' + wxfacepayzz.startCodeScanner(function(res) {
                    that.msglist.push(JSON.stringify(res));
                }));
            },
            stopCodeScanner: function() {
                this.msglist.push('wxfacepayzz.stopCodeScanner()' + wxfacepayzz.stopCodeScanner());
            },
            enableFirewall: function() {
                var mchId = "123456";
                var subMchId = "456789";
                var that = this;
                this.msglist.push('wxfacepayzz.enableFirewall()' + wxfacepayzz.enableFirewall(mchId, subMchId, function(res) {
                    that.msglist.push(JSON.stringify(res));
                }));
            },
            openfacepay(){
                var that = this;
                //1.初始化
                wxfacepayzz.initWxpayface({},function(res){
                    console.log(res);
                    //2.获取rawdata
                    wxfacepayzz.getWxpayfaceRawdata(function(res2){
                        console.log(res2);
                        /////////////////
                        //3.根据返回的rawdata数据,调用Api接口:获取调用凭证,得到参数authinfo
                        /////////////////

                        //4.进行人脸识别
                        var map = {
                            appid: "123456",
                            mch_id: "123456",
                            store_id: "123456",
                            out_trade_no: "123456",
                            total_fee: "0.01",
                            face_authtype: "FACEPAY",
                            authinfo: "124156565",
                            face_code_type: "1"
                        };
                        wxfacepayzz.getWxpayfaceCode(map, function(res3) {
                            //wxpayfaceCallBack
                            console.log(res3);
                            //5.释放资源
                            wxfacepayzz.releaseWxpayface()
                        }, function(res4) {
                            //updateResultWxpayfaceCallBack
                            console.log(res4);
                            //5.释放资源
                            wxfacepayzz.releaseWxpayface()
                        })
                    })
                });
            },
        }
    }
</script>
<style>
</style>

隐私、权限声明

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

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

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

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问