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

Android接入

金融級NFC認證服務提供Android客戶端SDK,幫助您在業務應用(App)中實現NFC認證功能。本文結合示例代碼介紹Android客戶端的接入流程。

使用限制

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

  • 僅支持Android 4.4及以上系統版本,且設備支持NFC的移動智能設備(手機或Pad)接入。

權限說明

權限

是否必須

說明

android.permission.INTERNET

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

android.permission.ACCESS_NETWORK_STATE

android.permission.NFC

NFC讀取權限

依賴配置

  1. 下載Android SDK,該SDK為Android標準aar包。

  2. 下載完畢之后解壓,將Android SDK文件夾中的所有aar文件拷貝到工程下的app/libs目錄中,并在工程的build.gradle文件中添加如下依賴。

    重要

    代碼示例中xxx表示版本號,使用過程中,請替換為Android SDK包中文件的實際版本號,即解壓后的aar包名稱。

    # 阿里云實人認證服務SDK AAR
    implementation files('libs/aliyun-facade-xxx.aar')
    implementation files('libs/aliyun-base-xxx.aar')
    implementation files('libs/aliyun-nfc-xxx.aar')
    
    # 阿里云實人認證服務三方依賴庫,不能省略
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
    implementation 'com.squareup.okio:okio:1.14.0'
    implementation 'com.alibaba:fastjson:1.2.83_noneautotype'

接口說明

Android SDK包含初始化SDK(install)、獲取MetaInfos(getMetaInfos)和開始認證(verify)3個接口。

初始化SDK

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

  • 函數原型:

    public static void install(Context context);

    IPv6網絡初始化,示例代碼如下:

    public static int installIPv6(Context context) 
  • 參數說明:

    名稱

    類型

    說明

    context

    Context

    當前Application的context。

  • 返回值:無。

獲取MetaInfos

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

  • 函數原型:

    public static String getMetaInfos(Context context);
  • 參數說明:

    名稱

    類型

    說明

    context

    Context

    當前Application的context。

  • 返回值:String類型,以JSON格式返回當前移動設備端的環境信息。返回示例如下:

    {"deviceType":"android","appVersion":"1.0","osVersion":"11","appName":"com.aliyun.aliyunfaceDemo","nfcSupport":"Y","bioMetaInfo":"7.0.0:393216,0","deviceModel":"M2011K2C","sdkVersion":"2.2.8.1","zimVer":"1.0.0","voiceSdkVersion":"1.0.0"}

開始認證

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

  • 函數原型:

    public void verify(final String certifyId, boolean useMsgBox,
                       HashMap<String, String> extParams,
                       ZIMCallback callback);
  • 參數說明:

    參數

    類型

    說明

    certifyId

    String

    從服務端初始化認證接口(InitFaceVerify-發起NFC認證請求)獲取的CertifyId。

    說明

    每個CertifyId只能調用一次verify函數,每次調用verify函數之前務必重新獲取CertifyId。

    useMsgBox

    boolean

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

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

    • false:不彈提示框,直接返回錯誤code。

    用戶根據業務應用App自行決定如何提示。

    extParams

    HashMap<String, String>

    用戶自定義參數,一般傳NULL即可。

    callback

    ZIMCallback

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

    public interface ZIMCallback {
     boolean response(ZIMResponse response);
    }

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

  • 返回值:無。

認證結果及錯誤碼

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

public class ZIMResponse {
 /**
 * 返回結果編碼
 */
 public int code;

 /**
 * 返回結果原因信息
 */
 public String reason;

 // ......
}

錯誤碼

錯誤碼文案

錯誤碼描述

1000

認證成功

代表認證成功。

說明

該結果僅供參考,可通過調用服務端DescribeFaceVerify-查詢NFC認證結果接口獲取最終認證結果。

1001

系統錯誤

表示系統錯誤。

1003

驗證中斷

表示驗證中斷。

2002

網絡錯誤

表示網絡錯誤。

2003

客戶端設備時間錯誤

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

2006

認證失敗

表示認證失敗。

說明

如需獲取更詳細的失敗原因,需調用DescribeFaceVerify-查詢NFC認證結果服務端接口獲取。

說明

更多錯誤碼信息,請參見金融級NFC認證Android客戶端錯誤碼詳情

接口混淆配置

為避免接口被混淆而造成功能異常,您需要在App工程的proguard-rules.pro文件中添加如下配置信息:

-keep class com.alipay.deviceid.** { *; }
-keep class net.security.device.api.** {*;}
-keep class org.json.** { *;}
-keep class com.alibaba.fastjson.** {*;}

-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**

-keepclassmembers,allowobfuscation class * {
     @com.alibaba.fastjson.annotation.JSONField <fields>;
}

示例代碼

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;

import com.alipay.face.api.ZIMCallback;
import com.alipay.face.api.ZIMFacade;
import com.alipay.face.api.ZIMFacadeBuilder;
import com.alipay.face.api.ZIMResponse;

public class MainActivity extends Activity {

    private String certifyId = "xxx";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Context ctx = getApplicationContext();

        // 初始化SDK
        ZIMFacade.install(ctx);

        // 獲取MetaInfos
        String metaInfos = ZIMFacade.getMetaInfos(ctx);

        // 將MetaInfos發送到App服務器端,調用云端InitFaceVerify接口獲取CertifyId。
        // certifyId = getCertifyIdFromServer(metaInfo); // 需客戶自己實現

        // 開始驗證
        ZIMFacade zimFacade = ZIMFacadeBuilder.create(ctx);
        zimFacade.verify(certifyId, true, null, new ZIMCallback() {
            @Override
            public boolean response(final ZIMResponse response) {
                if (1000 == response.code) {
                    Log.d("AliyunFace", "認證成功。");
                } else {
                    Log.e("AliyunFace", "認證失敗。");
                }
                return true;
            }
        });
    }
}

Demo代碼包

您可以下載Android Demo代碼包進行體驗。

升級注意事項

如果您在使用金融級NFC認證之前接入過金融級實人認證方案,您只需要將項目中相關的AAR包升級為最新版本,并更新對應配置文件。