Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.

5. CDCVM検証を実行する

概要

非接触取引中、NFC Wallet SDK は次を要求する場合があります。 エンドユーザー CDCVM 検証を完了するために認証すること。

あなたの デジタルウォレットアプリケーション は、前に設定した CDCVM メソッドを使用してこの認証を行う必要があります。詳しくは次を参照してください。 CDCVM メソッドを設定する.

SDK 統合

で認証を処理する ContactlessPaymentServiceListener.onAuthenticationRequired()。参照: 非接触決済コールバックを実装する.

エンドユーザーを認証するには、SDK が提供する CHVerificationMethod を使用します。これを使って DeviceCVMVerifier インスタンスを取得し、認証を開始して結果を DeviceCVMVerifyListener.

cvmResetTimeout は検証が有効である期間を示します。2 回目のタップの案内に使用してください。

デバイスのキーカードを用いた CDCVM 検証

デバイスのキーカード(keyguard)が 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.

  • wake lock を取得し、ロックスクリーンで UI を表示するためのウィンドウフラグを設定します。

  • 支払いが完了したら、 wakeLock を解放してバッテリー使用量を減らしてください。

マニフェストで次の設定を行い、必要に応じてサンプルコードを実装してください:

委任認証

委任認証により、デジタルウォレットアプリはエンドユーザーに認証を促し、その後支払いを進めてよいことを SDK に通知できます。

認証は、ユーザー認証によって保護される基盤となるキーストアのロックを解除するためにデバイスのキーカードまたは生体認証を使用できます。

このフローは、SDK が支払い中に認証を要求する場合に適用されます。デジタルウォレットアプリは次のいずれかを行えます:

  • エンドユーザーに認証を促し、その後次を呼び出す: DeviceCVMVerifier.onDelegatedAuthPerformed(timeOfAuth).

  • 最近の成功した認証(構成された鍵有効期間内)を再利用し、次を呼び出す: DeviceCVMVerifier.onDelegatedAuthPerformed(timeOfAuth) 直ちに。

エンドユーザーがトランザクションを中止した場合は、次を呼び出してください DeviceCVMVerifier.onDelegatedAuthCancelled().

最終更新

役に立ちましたか?