ID Verification は、iOS プラットフォーム用のソフトウェア開発キット (SDK) を提供します。この SDK は、モバイルアプリケーションに electronic Know Your Customer (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 つだけです。サーバーのクエリリージョンはレポートサイトと一致する必要があります。
レポートサイトの指定:
シンガポールサイト (デフォルト):
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 Initialize 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 を渡すことができます。 現在サポートされているパラメーターフィールドについては、「extParams の構成」をご参照ください。 |
completeBlock | AliyunIdentityVerifyBlock | 検証プロセスの最後に呼び出されるコールバック。検証結果が含まれます。 |
extParams の構成
キー | 説明 | 例 (文字列) |
kIdentityParamKeyNextButtonColor | 光学的文字認識 (OCR) 結果ページの下部にあるボタンの色。 | #FF0000 |
kIdentityParamKeyRoundProgressColor | 顔スキャン中の円の色。 | #FF0000 |
kIdentityParamKeyOcrSelectPhoto | 証明書の OCR ステップ中にアルバムアップロードエントリを表示するかどうかを指定します:
| 1 |
kIdentityParamKeyShowOcrResult | 証明書の OCR ステップ中に結果ページを表示するかどうかを指定します:
| 1 |
kIdentutyParamKeyEditOcrResult | 証明書の 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 成功後のウォーターマークテキスト。 | テストウォーターマークテキスト |
kIdentutyParamKeyProtocol | SDK プロトコル。 説明 サーバー側の Initialize API からプロトコルを取得し、拡張パラメーターで渡します。これにより、内部 SDK API のインタラクションが減り、ネットワークエクスペリエンスが向上します。 | 968412EB*******... |
エラーコード
エラーコード | 課金対象 | 結果コードの説明 |
1000 | はい | ユーザーは顔スキャンプロセスを完了し、推奨される検証結果は「pass」です。この結果は参考用です。サーバー側の CheckResult API を呼び出して最終的な検証結果を取得し、さらに処理を進めてください。 |
1001 | はい | ユーザーは顔スキャンプロセスを完了し、推奨される検証結果は「fail」です。この結果は参考用です。サーバー側の 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 @"サーバーから TransactionId を取得します。"; // これを置き換えてください。
}
- (void)onClickStart:(id) sender {
NSString *metaInfo = [[AliyunIdentityPlatform sharedInstance] getMetaInfo];
NSString *transactionId = [self sentMetaInfoAndGetTransactionId:metaInfo];
// SDK の言語を設定します。
NSDictionary *extParams = @{
kIdentityParamKeyLanguage:@"en"
kIdentutyParamKeyProtocol:@"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 |