Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

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().

最終更新

役に立ちましたか?