Android admite la emulación de tarjetas NFC con un elemento seguro para la emulación de tarjetas fuera del host. (Para obtener más información, consulta Descripción general de la emulación de tarjetas basadas en el host). Sin embargo, en la plataforma de Android, el servicio de pago preferido especificado en la configuración de Pago sin contacto no siempre se sincroniza con la app en el elemento seguro. Esto significa que es posible que se use un servicio de pago no preferido en el elemento seguro en lugar del servicio de pago preferido.
En Android 11, la función de sincronización de pagos fuera del host proporciona un mecanismo que te permite sincronizar la configuración de pagos en Pago sin contacto, la configuración de enrutamiento en el frontend sin contacto (CLF) y el estado seleccionado por la app en el elemento seguro.
En el siguiente diagrama, se ilustra la arquitectura de diseño de la función de sincronización de pagos fuera del host.
Implementación
Para implementar la función de sincronización de pagos fuera del host, el dispositivo debe tener un controlador de NFC que admita el estándar NCI 2.0 y debe usar los frameworks de NFC del proyecto de código abierto de Android y la interfaz de programación de aplicaciones para dispositivos móviles abiertas (OMAPI).
APIs de Framework
Para implementar la sincronización de pagos fuera del host, usa las siguientes APIs del framework que se encuentran en el proyecto de código abierto de Android:
getAidsForPreferredPaymentService()
: Recupera los AID registrados para el servicio de pago preferido.getRouteDestinationForPreferredPaymentService()
: Recupera el destino de la ruta para el servicio de pago preferido.getDescriptionForPreferredPaymentService()
: Muestra una descripción visible para el usuario del servicio de pago preferido.android.permission.NFC_PREFERRED_PAYMENT_INFO
(permiso): Permite que las apps reciban información del servicio de pago preferido por NFC.android.nfc.action.PREFERRED_PAYMENT_CHANGED
(acción de transmisión): Intento de notificar si cambió el servicio de pago preferido.
Validación
Para validar la implementación de la función de sincronización de pagos fuera del host, instala apps de elementos seguros con los elementos seguros correspondientes y, luego, verifica si hay respuestas adecuadas de un lector de NFC en diferentes condiciones.