ID Verification は、iOS プラットフォーム向けのソフトウェア開発キット (SDK) を提供します。この SDK は、モバイルアプリケーションに電子的な顧客確認 (eKYC) リモート本人確認機能を実装するのに役立ちます。サーバーから一意の識別子 (transactionId) をリクエストして受信した後、この識別子を SDK に渡して対応する機能を呼び出すことができます。このトピックでは、コード例を使用して iOS の統合プロセスについて説明します。
制限
iOS 9 以降を実行するモバイルデバイス (iPhone または iPad) をサポートします。
必要なプライバシー権限: カメラとネットワーク。
SDK のダウンロードと構成
SDK の取得
iOS SDK をダウンロードして解凍し、すべてのフレームワークをプロジェクトフォルダにコピーします。
必要な権限の追加
Info.plist ファイルに次の権限を追加します。権限の説明は参照用です。

Xcode でのフレームワークの追加
プロジェクト設定で、[Build Settings] > [Build Phases] > [Link Binary With Libraries] に移動し、フレームワークを追加します。
SDK からすべてのフレームワークを追加します。
AliyunIdentityFace.framework AliyunIdentityPlatform.framework AliyunIdentityUtils.framework AliyunIdentityOcr.framework ToygerService.framework AliyunOSSiOS.framework faceguard.framework DTFUtility.framework ToygerNative.framework MNN.frameworkシステム依存関係を追加します。
AudioToolbox.framework CoreMedia.framework CoreML.framework AVFoundation.framework SystemConfiguration.framework UIKit.framework CoreTelephony.framework CoreMotion.framework Accelerate.framework libresolv.tbd libsqlite3.tbd libc++.tbd libz.tbd
リソースファイルのコピー
プロジェクト設定で、[Build Settings] > [Build Phases] > [Copy Bundle Resources] に移動し、リソースファイルをコピーします。
AliyunIdentityPlatform.bundle: リソースファイルは AliyunIdentityPlatform.framework 内にあります。
AliyunIdentityFace.bundle: リソースファイルは AliyunIdentityFace.framework 内にあります。
AliyunIdentityOCR.bundle: リソースファイルは AliyunIdentityOcr.framework 内にあります。
ToygerService.bundle: リソースファイルは ToygerService.framework 内にあります。
リンカーフラグの構成
プロジェクト設定で、[Build Settings] > [Other Linker Flags] に移動し、[-ObjC] フラグを追加します。
SDK の呼び出し
ヘッダーファイルのインポート
#import <AliyunIdentityPlatform/AliyunIdentityPlatform.h>SDK の初期化
- (void)install;
- (void)installWithOptions:(NSMutableDictionary *)options;パラメーター:
options: 情報収集のオプションパラメーターを指定します。このパラメーターはオプションです。オプションのパラメーターは次のとおりです。
ID Verification クライアントには、Device Guard セキュリティモジュールが組み込まれています。さまざまなリージョンでのデータ収集コンプライアンス要件を満たすために、さまざまなデータレポートサイトを提供します。ユーザー属性に基づいてレポートサイトを指定するために、CustomUrl と CustomHost を設定できます。
注: 1 つのアプリケーションセッションのライフサイクル内で指定できるレポートサイトは 1 つだけです。サーバークエリリージョンはレポートサイトと一致する必要があります。
レポートサイトの指定:
シンガポールサイト (デフォルト):
https://cloudauth-device.ap-southeast-1.aliyuncs.comインドネシアサイト:
https://cloudauth-device.ap-southeast-5.aliyuncs.com米国西部 (シリコンバレー):
https://cloudauth-device.us-west-1.aliyuncs.comドイツ (フランクフルト):
https://cloudauth-device.eu-central-1.aliyuncs.com中国 (香港):
https://cloudauth-device.cn-hongkong.aliyuncs.com
プロダクトサーバーでサポートされているリージョンの詳細については、「サポートされているリージョン」をご参照ください。
フィールド名 | 説明 | 例 |
IPv6 | デバイス情報をレポートするために IPv6 ドメイン名を使用するかどうかを指定します。
| "1" |
DataSwitch | デバイス情報をレポートするタイミング。
説明 デフォルトの構成を使用することをお勧めします。 | "1" |
CustomUrl | データレポートサーバーのドメイン名を設定します。 | "https://cloudauth-device.ap-southeast-1.aliyuncs.com" |
CustomHost | データレポートサーバーのホストを設定します。 | "cloudauth-device.ap-southeast-1.aliyuncs.com |
metaInfo データの取得
- (NSString *)getMetaInfo;アプリケーションサーバーは、Alibaba Cloud 初期化 API を呼び出す前に、クライアントから metaInfo を取得する必要があります。
したがって、クライアントはまずネイティブの metaInfo データを取得する必要があります。次に、この metaInfo を使用して初期化プロセスを完了し、transactionId を取得します。
SDK を呼び出して検証を開始
- (void)verifyWithCertifyId:(NSString *)certifyId
withCurrentViewController:(UIViewController *)viewController
withExtParams:(NSDictionary *)extParams
complete:(AliyunIdentityVerifyBlock)completeBlock;パラメーター
名前 | タイプ | 説明 |
transactionId | NSString | サーバー側の Initialize API から取得します。 |
viewController | UIViewController | クライアントアプリケーションの現在の ViewController。 |
extParams | NSDictionary | 拡張パラメーター。ほとんどの場合、このパラメーターを null に設定します。 ユーザー定義のパラメーター。ほとんどの場合、null を渡すことができます。サポートされているパラメーターフィールドの詳細については、「extParams の構成」をご参照ください。 |
completeBlock | AliyunIdentityVerifyBlock | 検証プロセスの最後に呼び出されるコールバック。検証結果が含まれます。 |
extParams の構成
キー | 説明 | 例 (文字列) |
kIdentityParamKeyNextButtonColor | OCR 結果ページの下部にあるボタンの色。 | #FF0000 |
kIdentityParamKeyRoundProgressColor | 顔スキャン中の円の色。 | #FF0000 |
kIdentityParamKeyOcrSelectPhoto | 証明書 OCR 中にアルバムアップロードエントリを表示するかどうかを指定します。
| 1 |
kIdentityParamKeyShowOcrResult | 証明書 OCR 後に結果ページを表示するかどうかを指定します。
| 1 |
kIdentityParamKeyEditOcrResult | OCR 結果ページが編集可能かどうかを指定します。
| 1 |
kIdentityParamKeyMaxRetryCount | 最大リトライ回数。値は 3 から 10 の範囲で指定できます。デフォルト値は 10 です。 | 10 |
kIdentityParamKeyCardOcrTimeOutPeriod | OCR ステップのタイムアウト期間。値は 20 から 60 秒の範囲で指定できます。デフォルト値は 20 秒です。 | 20 |
kIdentityParamKeyFaceVerifyTimeOutPeriod | 生体情報収集ステップのタイムアウト期間。値は 20 から 60 秒の範囲で指定できます。デフォルト値は 20 秒です。 | 20 |
kIdentityParamKeyCardOcrEditTimeOutPeriod | OCR 結果ページが編集可能な期間。60 から 180 秒の範囲でカスタム値を設定できます。デフォルトでは制限はありません。 | 180 |
kIdentityParamKeyLanguage | SDK のカスタム言語設定。デフォルトでは、SDK はモバイルデバイスのオペレーティングシステムの言語を使用します。 説明 SDK でサポートされている言語のリストについては、「Android および iOS SDK のカスタム言語」をご参照ください。 | zh-Hans |
kIdentityParamKeyDefaultLanguage | SDK のデフォルト言語。有効な値については、kIdentityParamKeyLanguage フィールドをご参照ください。 デフォルト値は en (英語) です。 | en |
kIdentityParamKeyCloseButtonPosition | SDK の閉じるボタンの位置。
| left |
kIdentityParamKeyWatermark | OCR 成功後のウォーターマークテキスト。 | テストウォーターマークテキスト |
kIdentityParamKeyProtocol | SDK プロトコル。 説明 サーバー側の Initialize API から protocol を取得し、拡張パラメーターで渡します。これにより、内部 SDK API のインタラクションが減り、ネットワークパフォーマンスが向上します。 | 968412EB*******... |
エラーコード
エラーコード | 課金対象 | 結果コードの説明 |
1000 | はい | ユーザーは顔スキャンプロセスを完了し、推奨される検証結果は「成功」です。この結果は参照用です。サーバー側の CheckResult API を呼び出して最終的な検証結果を取得し、さらなる処理を行います。 |
1001 | はい | ユーザーは顔スキャンプロセスを完了し、推奨される検証結果は「失敗」です。この結果は参照用です。サーバー側の CheckResult API を呼び出して最終的な検証結果と失敗の詳細な理由を取得し、さらなる処理を行います。 |
1002 | いいえ | システムエラーが発生しました。 |
1003 | いいえ | SDK の初期化に失敗しました。 |
1004 | いいえ | カメラエラーが発生しました。問題を解決するには、次のステップを試してください:
|
1005 | いいえ | ネットワークエラーが発生しました。 |
1006 | いいえ | ユーザーがプロセスを終了しました。 |
1007 | いいえ | TransactionId が無効です。 |
1009 | いいえ | クライアントのタイムスタンプが正しくありません。 |
1011 | いいえ | 送信された証明書のタイプが正しくありません。 |
1012 | いいえ | 認識された証明書にキー情報が欠落しているか、フォーマットチェックに失敗しました。 |
1013 | いいえ | 画質が低すぎます。 |
1014 | いいえ | エラー回数が上限を超えました。 |
サンプルコード
#import "ViewController.h"
#import <AliyunIdentityPlatform/AliyunIdentityPlatform.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// SDK を初期化します。
[[AliyunIdentityPlatform sharedInstance] install];
[self initUI];
}
// この関数はユーザーが実装する必要があります。
- (NSString *)sentMetaInfoAndGetTransactionId:(NSString*) metaInfo {
return @"Get TransactionId from your server."; // これを置き換えます。
}
- (void)onClickStart:(id) sender {
NSString *metaInfo = [[AliyunIdentityPlatform sharedInstance] getMetaInfo];
NSString *transactionId = [self sentMetaInfoAndGetTransactionId:metaInfo];
// SDK の言語を設定します。
NSDictionary *extParams = @{
kIdentityParamKeyLanguage:@"en",
kIdentityParamKeyProtocol:@"968412EB......................."// ネットワーク遅延を最適化するためにこのプロトコルを構成します。
};
// 検証を開始します。
[[AliyunIdentityPlatform sharedInstance] verifyWithCertifyId:transactionId
withCurrentViewController:self
withExtParams:extParams
complete:^(AliyunIdentityVerifyRes *response) {
NSString *resContent = [NSString stringWithFormat:@"Code=%d Message=%@", response.code, response.message];
}];
}
- (void)initUI {
// ......
}
@endデモパッケージ
iOS デモパッケージをダウンロードして、この機能をテストできます。
コンポーネントのトリミング
モジュール | トリミング可能 | 説明 | パッケージサイズの増加 |
AliyunIdentityNFC | NFC 機能を使用しない場合はトリミングできます。 | NFC モジュール | 3.7 M |
OpenSSL | トリミングできます (例: NFC 機能を使用しない場合)。 | NFC モジュールの依存ライブラリ | |
AliyunIdentityOcr | OCR 機能を使用しない場合はトリミングが可能です。ただし、完全な eKYC ソリューションには OCR が必要です。 | OCR モジュール | 0.8 MB |
faceguard | トリミングできません | Face Guard モジュール | 0.74 MB |
AliyunIdentityFace | トリミングはサポートされていません。 | 顔検出モジュール | 2.2 M |
ToygerService | トリミングはサポートされていません。 | 生体アルゴリズムモジュール | 0.98 MB |
ToygerNative | トリミングできません | 生体アルゴリズムモジュール | |
AliyunIdentityPlatform | トリミングできません | ベースモジュール | 0.04 MB |
AliyunIdentityUtils | トリミングできません | ベースモジュール | 0.04 MB |
MNN | トリミングはサポートされていません。 | 生体アルゴリズムの依存ライブラリ | 0.09 MB |
DTFUtility | トリミングはサポートされていません。 | ベースモジュール | 0.1 M |
AliyunOSSiOS | トリミングはサポートされていません。 | 顔検証の依存ライブラリ | 0.23 MB |