5. CDCVM検証を実行する
概要
非接触取引中、NFC Wallet SDK は次を要求する場合があります。 エンドユーザー CDCVM 検証を完了するために認証する必要があります。
あなたの デジタルウォレットアプリケーション この認証は、以前に設定した CDCVM メソッドを使用して実行する必要があります。参照: CDCVM メソッドを設定する.
SDK 連携
で認証を処理する ContactlessPaymentServiceListener.onAuthenticationRequired()。参照してください 非接触決済コールバックを実装する.
エンドユーザーを認証するには、SDK によって提供される CHVerificationMethod を使用します。これを使って次のものを取得します。 DeviceCVMVerifier インスタンス。その後、認証を開始し、次を使用して結果を監視します。 DeviceCVMVerifyListener.
cvmResetTimeout は、検証がどのくらいの時間有効かを示します。2 回目のタップを行うようエンドユーザーに案内する際に使用します。
デバイスのキーロックを使用した CDCVM 検証
デバイスのキーロックを CDCVM メソッドとして使用する場合:
//ContactlessPaymentServiceListener() の実装から
//...
@Override
public void onAuthenticationRequired(
PaymentService activatedPaymentService,
CHVerificationMethod cvm,
long cvmResetTimeout) {
// CDCVM の種類を確認
if(cvm == CHVerificationMethod.DEVICE_KEYGUARD) {
// キーロック認証画面を管理する実装済みの Activity を起動
// この例では、その Activity は 'KeyguardActivity' と呼ばれます
Intent intent = new Intent(getApplicationContext(), KeyguardActivity.class);
intent.putExtra(Tags.CVM, cvm);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
//...実装する KeyguardActivity をデジタルウォレットアプリケーション内で使用します。これは DeviceCVMKeyguardActivityを継承している必要があります。これにより、デバイス認証情報を使用した CDCVM 検証が有効になります。
以下の例では、次の実装を示します。 KeyguardActivity クラス:
生体認証を使用した CDCVM 検証(指紋の例)
デバイスが生体認証をサポートしている場合にこの方法を使用します(例では指紋を示しています)。
以下の例では、この仕組みをどのように実装できるかを示します。
専用の Activity を拡張する DeviceCVMKeyguardActivityを実装します。これにより、生体認証に失敗した場合にデバイスのキーロックへフォールバックできます。
デジタルウォレットアプリケーションがバックグラウンドに移った場合は、指紋認証の監視を停止します。
これは次のコードスニペットで実現できます。
ロック画面シナリオのサポート(任意)
デバイスがロックされているときの認証プロンプトをサポートする必要がある場合は、次を確認してください。
支払い中に表示される Activity は、
showOnLockScreen=true.ウェイクロックが取得され、ウィンドウフラグが設定されてロック画面上に UI を表示します。
次を解放してください。
wakeLock支払い完了時にバッテリー使用量を抑えるためです。
manifest で次の設定を構成し、必要に応じてサンプルコードを実装してください。
委任認証
委任認証を使うと、デジタルウォレットアプリケーションがエンドユーザーに認証を促し、その後、支払いを進めてよいことを SDK に通知できます。
この認証では、デバイスのキーロックまたは生体認証を使用して、ユーザー認証で保護された基盤の keystore を解除できます。
このフローは、支払い中に SDK が認証を要求した場合に適用されます。デジタルウォレットアプリケーションは次のいずれかを行えます。
エンドユーザーに認証を促してから、
DeviceCVMVerifier.onDelegatedAuthPerformed(timeOfAuth).最近の成功した認証(設定された鍵の有効期間内)を再利用して、
DeviceCVMVerifier.onDelegatedAuthPerformed(timeOfAuth)すぐに呼び出します。
エンドユーザーが取引を中止した場合は、 DeviceCVMVerifier.onDelegatedAuthCancelled().
最終更新
役に立ちましたか?