3. アプリケーションの起動を考慮する
概要
アプリケーションの起動時に、NFC Wallet SDK を初期化します。
デジタルウォレットアプリケーションがサポートする決済体験も設定します:
サポート シングルタップ 決済。
または次を必須にします ツータップ 決済。
たとえ有効にしても シングルタップ、一部のトランザクションは次にフォールバックする場合があります ツータップ。参照してください シングルタップはツータップにフォールバックできます.
バックグラウンドの決済アプリケーション
デジタルウォレットアプリケーションがデフォルトの決済アプリケーションである場合( 既定の決済アプリを参照)、Android はそれをバックグラウンドに保持することがあります。これにより、POS端末からの非接触決済 APDU に対して、 アプリケーション.
一部のデバイスでは、デフォルトの決済アプリケーションがバックグラウンドにある間に終了されます。これらのデバイスでは、非接触決済によってアプリケーションのコールドスタートが発生することがあります。詳細は コールドスタートを最適化する.
SDK 連携
アプリケーションの起動を更新する
次の Application.onCreate()で、アプリケーションは次を行う必要があります:
SDK のクイック設定を実行します。
期待される決済体験を設定します:
ONE_TAP_ENABLEDをサポートする シングルタップ トランザクションTWO_TAP_ALWAYSを設定すると、最初のタップ後に常に認証が必要になります(常に ツータップ 決済)
SDK を別スレッドで初期化します。
任意: 初期化が成功した後、プレエントリーを有効にします。詳細は プレエントリーを有効にする.
手順 1 と 2 については、 NFC Wallet SDK を初期化する.
シングルタップはツータップにフォールバックできます
有効にすると ONE_TAP_ENABLED、すべてのトランザクションが シングルタップ.
次のように扱います シングルタップ を最良ケースのフローと見なします。必要条件が満たされない場合、NFC Wallet SDK は次にフォールバックします ツータップ.
例:
エンドユーザーがデバイスのロック解除後、設定された有効期間内にタップしません。詳細は
keyValidityPeriod次に NFC Wallet SDK を初期化する.認証なしの LVT トランザクションが設定されたリスクしきい値に達します。その場合、NFC Wallet SDK は認証を要求します。詳細は リスク管理を定義する.
コールドスタート時間を短縮する
一部のデバイスでは、デフォルトの決済アプリケーションがバックグラウンドにある間に終了されます。これらのデバイスでは、非接触決済によってアプリケーションの コールドスタート.
APDU の処理は、 コールドスタート.
コールドスタート処理には次が含まれます:
サービスのバインディング(約100~200ミリ秒)
の完了
Application.onCreate()
内での処理を最小限にします Application.onCreate()。NFC Wallet SDK の設定と初期化だけに限定してください。
の最初の 0.5 秒間は他の処理を避けてください Application.onCreate() が始まった後、Android が APDU コマンドを POS 端末に送信する際に、並列処理によって APDU 処理が遅れることがあります。
必要に応じて、SDK 初期化の完了後少なくとも 0.5 秒は、決済以外の処理を遅らせてください。
プレエントリーを有効にする
プレエントリーを使用して シングルタップ 決済。
プレエントリーにより、エンドユーザーは決済フローの開始前に認証できます。
認証は、エンドユーザーが生体認証またはデバイスのキーロック(PIN、パターン、またはパスワード)でデバイスのロックを解除したときに行われます。これにより、追加の確認手順なしで決済を実行できます。
と併せて追加のインテントフィルターを追加しないでください DeviceCVMPreEntryReceiver。このクラスは次に対してのみ動作するよう設計されています ACTION_USER_PRESENT インテント。
最終更新
役に立ちましたか?