微信刷脸支付插件

简介: 微信刷脸支付插件

本插件分装了微信刷脸支付Android SDK v2.21.114版本。

微信刷脸支付官方文档:

https://pay.weixin.qq.com/wiki/doc/wxfacepay/develop/android/facepay.html

本插件实现封装了SDK中的5个方法:

1、程序启动时初始化 initWxpayface

2、获取数据 getWxpayfaceRawdata

3、人脸识别 getWxpayfaceCode(获取用户信息)

4、释放资源 releaseWxpayface

5、启动防火墙配置 enableFirewall

有异步返回信息的方法会通过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="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());
      },
      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>
相关文章
|
10月前
|
缓存 Java PHP
解决Hbuilder打包的APP微信支付时无法唤起支付,且提示{“code“:-100,“message“:“[payment微信:-1]General errors“}的问题
解决Hbuilder打包的APP微信支付时无法唤起支付,且提示{“code“:-100,“message“:“[payment微信:-1]General errors“}的问题
|
25天前
|
PHP 移动开发 安全
PHP应用如何对接微信公众号JSAPI支付
本文介绍了微信支付的多种方式,包括JSAPI支付、APP支付、Native支付、付款码支付和H5支付。
27 8
|
23小时前
|
JSON 缓存 小程序
技术笔记:uniapp微信小程序支付
技术笔记:uniapp微信小程序支付
|
1月前
微信和支付宝支付的金额不能超过两位小数,可以把后台超过两位小数的支付字符串修正为两位小数
微信和支付宝支付的金额不能超过两位小数,可以把后台超过两位小数的支付字符串修正为两位小数
23 0
|
9月前
|
小程序 Android开发 iOS开发
微信小程序-虚拟支付:适用场景 / iPhone调试用支付成功,Android调用失败,提示“小程序支付能力已被限制” / “errMsg“.“requestPayment:fail banned”
微信小程序-虚拟支付:适用场景 / iPhone调试用支付成功,Android调用失败,提示“小程序支付能力已被限制” / “errMsg“.“requestPayment:fail banned”
325 0
|
1月前
|
JSON 数据格式
微信jsapi支付,又见缺少参数 total_fee错误
微信jsapi支付,又见缺少参数 total_fee错误
|
9月前
|
JSON 小程序 安全
微信小程序支付
当下,微信小程序十分火爆,现在无论是购物还是生活服务,都是推荐你使用微信小程序,主要是它无需下载安装就可以使用,让手机变得非常清爽,给用户也带来很大的方便之处。
193 2
微信小程序支付
|
10月前
|
移动开发 安全 前端开发
〔支付接入〕微信的 h5 支付和 jsapi 支付
学会微信支付,打开你的财富之门
240 2
〔支付接入〕微信的 h5 支付和 jsapi 支付
|
10月前
|
小程序 安全 前端开发
从零玩转系列之微信支付实战PC端支付微信取消接口搭建1
从零玩转系列之微信支付实战PC端支付微信取消接口搭建
77 0
从零玩转系列之微信支付实战PC端支付微信取消接口搭建1
|
10月前
|
测试技术 API
从零玩转系列之微信支付实战PC端支付微信回调接口搭建2
从零玩转系列之微信支付实战PC端支付微信回调接口搭建
143 0
从零玩转系列之微信支付实战PC端支付微信回调接口搭建2