UniApp接入

金融级实人认证服务提供UniApp插件,帮助您在您的业务应用(App)中实现刷脸认证功能。您可以通过您的应用服务端认证初始化接口,向阿里云服务器调用发起认证请求接口并获取刷脸认证的唯一标识CertifyId,然后使用CertifyId唤起刷脸认证客户端SDK。本文介绍如何通过UniApp插件接入刷脸认证。

接入前必读

近期发现有个人开发者封装阿里云增强版实人认证SDK后开发了第三方插件,并在某平台上提供付费下载服务。阿里云提醒您,如果您使用了此类非阿里云官方提供的插件或服务,阿里云概不对由此造成的一切后果负责,亦不承担任何法律责任。建议您使用阿里云官方SDK服务。

配置依赖

您可以参考DCloud官网文档接入UniApp插件,也可以参考以下步骤接入UniApp插件。

  1. 下载金融级实人认证UniApp SDK,解压到项目中的nativePlugins目录下。

    image.png

    说明

    金融级实人认证产品提供了多样化的产品方案,包括金融级实人认证方案、金融级多因子意愿认证方案、金融级活体人脸验证方案等,您可以根据业务需求选择对应产品方案。如果您的App对包大小比较敏感,您可以根据自己的需求先对SDK部分模块进行裁剪,然后再进行集成。具体裁剪说明请参考SDK包裁剪说明

    除了删除对应的模块文件,iOS还需要额外删除对应的framework配置。该配置位于SDK目录下的package.json文件中,具体位置为“_dp_nativeplugin > ios > frameworks”。

  2. 导入本地插件。

    1. manifest.json文件下,单击App原生插件配置

    2. App原生插件配置区域,单击选择本地插件

      image.png

    3. 本地插件选择对话框,选择需要打包生效的插件。

  3. 配置基座包。

    1. 制作自定义调试基座。在manifest.json文件,选择运行 > 运行到手机或模拟器 > 制作自定义调试基座

      image.png

    2. 设置自定义调试基座。在manifest.json文件,选择运行 > 运行到手机或模拟器,单击运行到Android App基座运行到iOS App基座,勾选使用自定义基座运行

      image.png

      说明

      后续如果调试功能正常,打包正式版本时需要选择发行 > 原生App > 云打包

  4. 调用金融级实人认证服务。

    1. 获取metaInfo数据。

      您在调用金融级实人认证服务端初始化接口InitFaceVerify时需要传入该值,用于获取后续认证的certifyId。

    2. 开始认证。调用verify认证接口,传入certifyId进行认证。

      参数说明如下表所示。

      名称

      类型

      描述

      certifyId

      String

      认证的唯一标识。

      extParams

      Map

      扩展参数(详情见AndroidiOS的extParams说明)

      说明

      您可以在为此参数传值前判断运行环境是Android还是iOS,从而传入准确的extParams值(推荐),也可以将两个环境的extParams一起传入。

代码示例

加载模块并获取MetaInfo数据:

<script>
  // 加载金融级实人认证插件
  const aliyunVerify = uni.requireNativePlugin('AP-FaceDetectModule');
  
  export default {
    onLoad() {
      // 调用getMetaInfo获取MetaInfo数据
      var metaInfo = aliyunVerify.getMetaInfo();
      let p = uni.getSystemInfoSync().platform;
      if (p === "ios") {
        metaInfo = JSON.stringify(metaInfo);
      }

      uni.showToast({
        title: '返回的内容' + metaInfo,
        icon: 'none'
      });
              
      console.log(metaInfo);
    }
  }
</script>

开始认证:

aliyunVerify.verify({ 
    "certifyId": "<替换生成的certifyId>",
    "extParams": { "<扩展参数key>": "<扩展参数value>" } 
}, function (response) {
    console.log(response)
});

完整的代码示例,请点击Demo下载。

错误码说明

错误码

是否计费

错误码文案

错误码描述

1000

刷脸成功

用户完成了刷脸过程,认证建议结果为通过。该结果仅供参考,可通过调用服务端DescribeFaceVerify接口获取最终认证结果。

1001

系统错误

表示系统错误。

1003

验证中断

表示验证中断。

2002

网络错误

表示网络错误。

2003

客户端设备时间错误

表示客户端设备时间错误。

2006

刷脸失败

用户完成了刷脸过程,认证建议结果为未通过。该结果仅供参考,可通过调用服务端DescribeFaceVerify接口获取最终认证结果、未通过的详细原因。

说明

关于错误码的更多信息,请参见iOS客户端错误码详情Android客户端错误码详情