日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Harmony接入

金融級實人認證服務提供Harmony客戶端SDK,幫助您在業務應用(App)中實現刷臉認證功能。本文將結合示例代碼進行Harmony客戶端接入的詳細說明。

使用限制

  • 刷臉應用必須運行在Harmony Next 4.1及以上版本。

  • 不支持模擬器模式調試。

權限說明

Harmony SDK權限說明如下:

權限

是否必須

說明

ohos.permission.INTERNET

聯網權限。SDK需要聯網才能使用。

ohos.permission.GET_NETWORK_INFO

網絡狀態確認。SDK可以根據網絡狀態提供更好的服務。

ohos.permission.CAMERA

攝像頭權限。

依賴配置

  1. 下載Harmony SDK并解壓。

    該SDK為Harmony的har包。

  2. 將HAR文件復制到存放HAR包的工程目錄中。

    建議參考鴻蒙官方文檔放至libs目錄下,在工程根目錄的oh-package.json5添加認證包的版本依賴樹管理,示例如下:

    image

  3. 修改項目工程中的oh-package.json5文件,在dependencies中添加AliyunFacade、AuthBase、LivenessVerify、OcrVerify、AliyunFaceGuard依賴包,示例如下:

    說明

    代碼示例中xxx表示版本號,使用過程中,請替換為SDK包中文件的實際版本號。

    {
      ....
      "dependencies": {
        "AliyunFacade" : "file:./libs/AliyunFacade-xxx.har",
        "AuthBase" : "file:./libs/AuthBase-xxx.har",
        "LivenessVerify" : "file:./libs/LivenessVerify-xxx.har",
        "OcrVerify": "file:./libs/OcrVerify-xxx.har",
        "AliyunFaceGuard": "file:./libs/AliyunFaceGuard-xxx.har"
        ....
      }
    }

接口說明

Harmony SDK包含初始化(init、initIPv6)、獲取MetaInfos(getMetaInfos)和開始認證(verify)3個核心接口。

初始化SDK

  • 描述:調用該函數完成SDK內部初始化。請務必做延遲初始化配置,確保在用戶同意《隱私權政策》后,在人臉識別業務場景中初始化SDK。

  • 函數原型:

    public init(context: Context, params?: HashMap<string, string>): number
    public initIPv6(context: Context, params?: HashMap<string, string>): number
    說明

    請根據實際情況選用IPv4或者IPv6網絡環境進行業務調用。

  • 參數說明:

    名稱

    類型

    說明

    context

    Context

    當前Ability的Context。

    params

    HashMap<string, string>

    自定義參數,可不傳。

  • 返回值:Number類型。0表示初始化無異常。

獲取metaInfos

  • 描述:移動端環境信息會發送至業務服務器端,業務服務器端將這些信息作為參數之一(MetaInfos)調用服務端初始化認證接口,從而獲取認證報文,用于后續認證環節。

  • 函數原型:

    public static getMetaInfos(context: Context, params?: HashMap<string, string>): string
  • 參數說明:

    名稱

    類型

    說明

    context

    Context

    當前Ability的Context

    params

    HashMap<string, string>

    自定義參數,可不傳。

  • 返回值:String類型,以JSON格式返回當前移動設備端環境以及SDK信息。

    {
     "deviceType": "harmony",
     "osVersion": "2",
     "osFullName": "2.1.6.1(Beta1)",
     "deviceModel": "NOH-AN00",
     "appName": "com.dtf.faceverify",
     "appVersion": "1.0.0",
     "nfcSupport": "N",
     "bioMetaInfo": "7.1.2:393216,0",
     "apdidToken": "",
     "sdkVersion": "1.1.0",
     "securityVersion": "",
     "zimVer": "",
     "voiceSdkVersion": ""
    }

發起認證

  • 描述:調用該函數發起實人認證。

  • 函數原型:

    public static verify(context: UIContext | Context, callBack: ZimCallBack, params?: HashMap<string, string>): void
  • 參數說明:

    名稱

    類型

    說明

    context

    UIContext 或 Context

    當前Ability的UIContextContext

    重要

    請優先傳遞UIContext,可避免Harmony系統兼容性的問題。

    certifyID

    String

    認證ID。您可以通過服務端發起申請請求接口(InitFaceVerify)獲取該參數。

    callBack

    ZimCallBack

    認證結果的回調接口,定義如下:

    export interface ZimCallBack {
      onComplete: (response: ZimResponse) => void;
      encrypt: (content: string) => string;
    }

    ZIMResponse類的定義,請參見下文認證結果及錯誤碼

    params

    HashMap<string, string> 

    自定義參數,需要根據要求傳入數據。params取值,請參見表 2. params取值說明

    表 1. ZimCallBack接口回調說明

    方法

    說明

    示例值

    onComplete

    SDK認證結果回調

    參考ZimResponse類定義

    表 2. params取值說明

    取值

    說明

    示例值

    ext_params_key_use_message_box

    當刷臉認證過程中出現異常情況,是否使用SDK內部的彈框提示。取值:

    • true:SDK先彈框提示,確定之后,返回錯誤code。

    • false:不彈提示框,直接返回錯誤code,客戶業務應用App自行決定如何提示。

    true

    ext_params_key_open_full_screen

    進入SDK認證后是否開啟全屏顯示,SDK默認會開啟全屏顯示以保證顯示正常。設置單次有效。

    • true:開啟全屏顯示。

    • false:關閉全屏顯示。

    true

    ext_params_key_use_video

    是否返回活體認證視頻。取值:

    • true:可在response.videoPath或在服務端查詢接口獲取視頻路徑。

    • false:不返回活體認證視頻(默認)。

    true或者false

  • 返回值:無。

認證結果及錯誤碼

認證結果通過ZIMResponse類返回,定義如下:

/*
 * 結果返回
 */
export class ZimResponse {
 /**
 * 結果碼主碼
 */
 public code: string;

 /**
 * 結果碼子碼
 */
 public subCode: string;

 /**
 * 錯誤原因
 */
 public msg: string;

 /**
 * 留證視頻路徑
 */
 public videoPath: string;
}

錯誤碼

錯誤碼文案

錯誤碼描述

1000

刷臉成功

表示SDK活檢成功,該結果僅供參考,可通過調用服務端DescribeFaceVerify接口獲取最終認證結果。

1001

系統錯誤

表示系統錯誤。

1003

驗證中斷

表示驗證中斷。

2002

網絡錯誤

表示網絡錯誤。

2003

客戶端設備時間錯誤

表示客戶端設備時間錯誤。

2006

刷臉失敗

表示刷臉失敗,如需獲取更詳細的失敗原因,需調用服務端DescribeFaceVerify接口獲取。

更多subCode錯誤碼信息,請參見金融級客戶端錯誤碼詳情 - Harmony

接口混淆配置

為避免接口被混淆而造成功能異常,請查看har包中obfuscation.txt文件中的配置,請勿移除該文件。

示例代碼

import { ZimConstant, ZimFacade, ZimResponse } from 'aliyunfacade';
import { HashMap } from '@kit.ArkTS';
import { JSONUtil, StringUtil } from 'authbase';

@Entry
@Component
struct Index {
  @State message: string = '發起認證';
  @State certifyID: string = ''

  build() {
    Row() {
      Column() {
        TextInput({ placeholder: '請輸入certifyID', text: this.certifyID })
          .onChange((value: string) => {
            this.certifyID = value;
          })
          .margin({ left: 20, right: 20 })
        Button(this.message)
          .fontSize(18)
          .fontWeight(FontWeight.Bold)
          .onClick((event: ClickEvent) => {
            let params: HashMap<string, string> = new HashMap();
            // SDK 全屏顯示,默認為true
            params.set(ZimConstant.KEY_NEED_FULL_SCREEN, 'true');
            // SDK 展示對客彈窗信息,默認為true
            params.set(ZimConstant.KEY_USE_MESSAGE_BOX, 'true');
            ZimFacade.verify(this.getUIContext(), this.certifyID, {
              onComplete: (response: ZimResponse) => {
                let result: HashMap<string, string> = new HashMap();
                result.set('code', response.code);
                result.set('subCode', response.subCode);
                result.set('msg', response.msg);
                result.set('certifyID', this.certifyID);
                this.certifyID = '';
                if (response.faceImage) {
                  result.set('faceImage', 'data:image/jpg;base64,' + StringUtil.base64Uint8Array(response.faceImage))
                } else {
                  result.set('faceImage', '');
                }
                let showParams: string = JSONUtil.parseMapToString(result);
                console.log("Aliyun", showParams);
              }
            }, params)
          })
          .margin({ top: 10 })
      }
      .width('100%')
    }
    .height('100%')
  }

  aboutToAppear(): void {
    ZimFacade.init(getContext());
  }
}

Demo代碼包

下載最新版本Harmony Demo