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

iOS接入

金融級NFC認證提供了iOS端的SDK,可以幫助您在應用(App)中快速實現NFC認證功能。本文將結合示例代碼介紹SDK接入的詳細流程。?

前提條件

  • 系統版本:iOS 13.0 及以上

  • 支持語言:Objective-C、Swift

重要

SDK 不支持模擬器調試。

配置開發環境

  1. 在Xcode的編譯設置中,關閉Enable Bitcode選項。

    ios-開發環境配置2

    重要

    Xcode 15 開始 ENABLE_BITCODE 將不再生效,詳見:Xcode Release Notes

  2. 在Xcode編譯設置中,選擇Linking > Other Linker Flags,添加-ObjC

    image.png

  3. 應用權限配置。

    1. 登錄蘋果開發者證書管理后臺,在左側導航菜單選中Identifiers,隨后在右側列表中找到對應的bundle ID,進入配置詳情后確認NFC Tag Reading已經正確啟用。

      image

    2. 在項目工程的info.plist文件中:

      1. 添加Privacy - NFC Scan Usage Description權限和說明;

      2. 添加ISO7816 application identifiers for NFC Tag Reader Session配置,在item0item1中分別填寫A0000002471001(旅行證件)、 F049442E43484E(身份證)。

      image.png

    3. 在Xcode中,選擇TARGETS > Signing&Capabilities > All,添加Near Field Communication Tag Reading

      image.png

配置依賴

  1. 下載iOS SDK。該SDK為framework包。

  2. 解壓下載的SDK包,并在解壓的文件夾中執行以下命令,以提取所有的framework到Products目錄。

    # 提取所有.tgz和.tar格式的壓縮文件。
    for i in $(ls *.tgz *.tar);do tar xvf $i;done

    解壓后iOS SDK中的包如下所示:

    AliyunFaceAuthFacade.framework
    DTFUtility.framework
    DTFNFCIdentityManager.framework
  3. Build Phases > Link Binary With Libraries中,添加SDK解壓后的包和以下系統庫依賴。

    libc++.tbd
    CoreNFC.framework

拷貝資源文件

在Xcode中,選擇TARGETS,單擊Build Phases頁簽,在Copy Bundle Resources中添加DTFNFCIdentityManager.bundle

該Bundle位于DTFNFCIdentityManager.framework中。

image.png

調用SDK

  1. 引入頭文件。

    命令如下:

    #import <AliyunFaceAuthFacade/AliyunFaceAuthFacade.h>
  2. 初始化SDK。

    說明

    為了提升用戶體驗并為NFC認證準備一些必備的數據,iOS客戶端需要初始化SDK。

    您可以在appDelegate方法中調用初始化SDK的代碼(如下代碼塊所示)。

    appDelegate方法中初始化SDK,示例代碼:

    - (BOOL)application:(UIApplication)application didFinishLaunchingWithOptions:(NSDictionary)launchOptions {
        [AliyunFaceAuthFacade initSDK]; // 初始化SDK。
    }

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

    [AliyunFaceAuthFacade init]; // 初始化SDK,如果已經在appDelegate函數中調用過,此處無需再重復調用。
    [AliyunFaceAuthFacade getNFCMetaInfo];
  3. 獲取metaInfo數據,示例代碼如下:

    [AliyunFaceAuthFacade initSDK]; // 初始化SDK,如果已經在appDelegate函數中調用過,此處無需再重復調用。
    [AliyunFaceAuthFacade getNFCMetaInfo]; // 獲取NFCMetainfo,調用前請務必先初始化SDK。
    說明

    getNFCMetaInfo返回值類型是NSDictionary,在調用服務端的發起認證請求接口時,您需要先將其轉為JSON格式。

    關于發起認證請求的具體操作,請參見InitFaceVerify-發起NFC認證請求

  4. 調用SDK開始認證。

    • 示例代碼如下:

      // NFC認證接口
      [AliyunFaceAuthFacade nfcVerifyWith:certifyId extParams:extParams onCompletion:^(ZIMResponse *response) {}];

      名稱

      類型

      描述

      certifyId

      NSString

      您可以通過服務端發起申請請求接口獲取該參數。關于發起認證請求的具體操作,請參見InitFaceVerify-發起NFC認證請求

      extParams

      NSDictionary

      通過以下代碼傳入當前viewController,用于展現網絡加載和presentViewController

      [extParams setValue:self forKey:@"currentCtr"];
      重要

      請注意在extParams中務必傳入當前控制器,否則會導致 SDK 頁面無法正常展示。

    • 返回結果說明:

      response.code包含以下返回參數,具體說明如下表所示。

      錯誤碼

      錯誤碼文案

      錯誤碼描述

      1000(ZIMResponseSuccess)

      驗證成功

      表示驗證成功。

      說明

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

      1001(ZIMInternalError)

      系統錯誤

      表示系統錯誤。

      1003(ZIMInterrupt)

      驗證中斷

      表示驗證中斷。

      2002(ZIMNetworkfail)

      網絡錯誤

      表示網絡錯誤。

      2003(ZIMTIMEError)

      客戶端設備時間錯誤

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

      2006(ZIMResponseFail)

      驗證失敗

      表示驗證失敗。

      說明

      如需獲取認證不通過的詳情,需通過調用服務端DescribeFaceVerify-查詢NFC認證結果接口。

      說明

      關于錯誤碼的更多信息,請參見金融級NFC認證iOS客戶端錯誤碼

    • 代碼示例:

      [AliyunFaceAuthFacade nfcVerifyWith:certifyId extParams:extParams onCompletion:^(ZIMResponse *response) {
          dispatch_async(dispatch_get_main_queue(), ^{
              NSString *title = @"認證成功";
              switch (response.code) {
                  case ZIMResponseSuccess: // 1000。
                      break;
                  case ZIMInterrupt: // 1003。
                      title = @"用戶退出";
                      break;
                  case ZIMNetworkfail: // 2002。
                      title = @"網絡錯誤";
                      break;
                  case ZIMTIMEError: // 2003。
                      title = @"設備時間設置不對";
                      break;
                  case ZIMResponseFail: // 2006。
                      title = @"認證失敗";
                      break;
                  case ZIMInternalError: // 1001。
                      title = @"初始化失敗";
                      break;
                  default:
                      break;
              }
          });
      }];

Demo代碼包

您可以下載以下iOS Demo代碼包進行體驗:

說明

Demo體驗前,請將其中的SDK版本更新至最新。?

升級注意事項

如果您在使用金融級NFC認證之前接入過金融級實人認證方案,您只需要將金融級實人認證方案升級到最新版本。

升級后復用金融級實人認證方案中的AliyunFaceAuthFacade.frameworkDTFUtility.framework即可。