3. アプリケーションの起動を考慮する
概要
アプリケーションの起動時に、NFCウォレットSDKを初期化します。
また、デジタルウォレットアプリがサポートする支払いエクスペリエンスを設定します:
サポート シングルタップ 支払い。
または、要求する ツータップ 支払い。
を有効にしても、 シングルタップ一部のトランザクションは ツータップをフォールバックすることがあります。参照: シングルタップはツータップにフォールバックすることがあります.
バックグラウンドでの支払いアプリケーション
デジタルウォレットアプリがデフォルトの支払いアプリケーションである場合(参照: デフォルトの支払いアプリ)、Androidはそれをバックグラウンドに保持することがあります。これにより、POS端末からの非接触支払いAPDUに対して、 アプリケーション.
一部のデバイスでは、デフォルトの支払いアプリケーションがバックグラウンドにある間に終了されることがあります。これらのデバイスでは、非接触支払いがアプリケーションのコールドスタートを引き起こす可能性があります。参照: コールドスタートを最適化する.
SDK統合
アプリケーションの起動を更新する
内の Application.onCreate()、アプリケーションは次のことを行う必要があります:
SDKのクイック構成を実行します。
期待される支払いエクスペリエンスを設定します:
ONE_TAP_ENABLEDを設定してサポートする シングルタップ トランザクションTWO_TAP_ALWAYSを設定して、最初のタップ後に常に認証を要求する(常に ツータップ 支払い)
別スレッドでSDKを初期化します。
オプション:初期化が成功したら、事前エントリを有効化します。参照: 事前エントリを有効化する.
ステップ1および2については、参照: NFCウォレットSDKを初期化する.
シングルタップはツータップにフォールバックすることがあります
を有効にすると、すべてのトランザクションが ONE_TAP_ENABLEDとして実行されるわけではありません。 シングルタップ.
を最良のフローとして扱います。必要な条件が満たされない場合、NFCウォレットSDKは シングルタップ にフォールバックします。 ツータップ.
例:
エンドユーザーが端末のロック解除後に設定された有効期間内にタップしない場合。参照:
keyValidityPeriod内の NFCウォレットSDKを初期化する.認証なしのLVTトランザクションが設定されたリスク閾値に達する場合。その場合、NFCウォレットSDKは認証を要求します。参照: リスク管理を定義する.
コールドスタート時間を短縮する
一部のデバイスでは、デフォルトの支払いアプリケーションがバックグラウンドにある間に終了されることがあります。これらのデバイスでは、非接触支払いがアプリケーションの コールドスタート.
APDU処理は、 コールドスタート.
直後にすぐに開始されます。
コールドスタートプロセスには次が含まれます:
サービスのバインディング(約100〜200ミリ秒)
Application.onCreate()
の完了 Application.onCreate()での作業を最小限にします。
NFCウォレットSDKの構成と初期化に限定してください。 Application.onCreate() が開始されてから最初の0.5秒間に他の操作を避けてください。並列処理は、AndroidがPOS端末にAPDUコマンドを送信したときにAPDU処理を遅延させる可能性があります。
必要な場合は、SDK初期化が完了してから少なくとも0.5秒間は非支払いの作業を遅延させてください。
事前エントリを有効化する
をサポートするために事前エントリを使用してください シングルタップ 支払い。
事前エントリにより、エンドユーザーは支払いフローが開始される前に認証できます。
認証は、エンドユーザーが生体認証またはデバイスのキーロック(PIN、パターン、またはパスワード)でデバイスのロックを解除したときに発生します。これにより、追加の検証ステップなしで支払いが可能になります。
このモードが有効になっている場合、デバイスのロック解除ごとに1回の支払いのみが許可されます。
DeviceCVMPreEntryReceiverに追加のインテントフィルタを追加しないでください、 DeviceCVMPreEntryReceiver。このクラスは、 ACTION_USER_PRESENT インテントのみに反応するように設計されています。
最終更新
役に立ちましたか?