Синхронизация платежей NFC вне хоста

Android поддерживает эмуляцию карт NFC с защищенным элементом для эмуляции карт вне хоста. Подробнее об эмуляции карт на базе хоста… Однако на платформе Android предпочтительный платежный сервис, указанный в настройках Бесконтактная оплата, не всегда синхронизируется с приложением в защищенном элементе. Это означает, что вместо предпочитаемого платежного сервиса может использоваться другой платежный сервис, который находится в защищенном элементе.

В Android 11 функция синхронизации платежей вне устройства позволяет синхронизировать конфигурацию платежей в бесконтактной оплате, конфигурацию маршрутизации на бесконтактном интерфейсе (CLF) и состояние, выбранное приложением, в защищенном элементе.

На диаграмме ниже показана архитектура функции синхронизации платежей вне хоста.

Архитектура синхронизации платежей вне хоста
Рисунок 1. Архитектура синхронизации платежей вне хоста

Реализация

Чтобы реализовать функцию синхронизации платежей вне хоста, устройство должно иметь контроллер NFC, поддерживающий стандарт NCI 2.0, и использовать фреймворки NFC и Open Mobile Application Programming Interface (OMAPI) из Android Open Source Project.

Framework APIs

Чтобы реализовать синхронизацию платежей вне хоста, используйте следующие API фреймворка, которые можно найти в Android Open Source Project:

  • getAidsForPreferredPaymentService(): получает зарегистрированные идентификаторы приложений (AID) для предпочитаемого платежного сервиса.

  • getRouteDestinationForPreferredPaymentService(): получает маршрут к пункту назначения для предпочитаемого платежного сервиса.

  • getDescriptionForPreferredPaymentService(): возвращает описание предпочтительного платежного сервиса, которое будет видно пользователю.

  • android.permission.NFC_PREFERRED_PAYMENT_INFO (разрешение). Позволяет приложениям получать информацию о платежном сервисе, выбранном по умолчанию для NFC.

  • android.nfc.action.PREFERRED_PAYMENT_CHANGED (широковещательное действие): уведомляет об изменении предпочтительного платежного сервиса.

Проверка

Чтобы проверить реализацию функции синхронизации платежей вне хоста, установите приложения защищенного элемента с соответствующими защищенными элементами, а затем проверьте ответы с NFC-ридера в разных условиях.