O Android oferece suporte à emulação de cartão NFC com um elemento de segurança para emulação de cartão fora do host. Para mais informações, consulte Visão geral da emulação de cartão com base em host. No entanto, na plataforma Android, o serviço de pagamento preferencial especificado na configuração "Toque e pague" nem sempre é sincronizado com o app no elemento de segurança. Isso significa que é possível que um serviço de pagamento não preferencial no elemento seguro seja usado em vez do serviço de pagamento preferencial.
No Android 11, o recurso de sincronização de pagamento fora do host oferece um mecanismo que permite sincronizar a configuração de pagamento no "Toque e pague", a configuração de roteamento no front-end por aproximação (CLF, na sigla em inglês) e o estado selecionado pelo app no Elemento de segurança.
O diagrama a seguir ilustra a arquitetura de design do recurso de sincronização de pagamentos fora do host.
Implementação
Para implementar o recurso de sincronização de pagamentos fora do host, o dispositivo precisa ter um controlador NFC compatível com o padrão NCI 2.0 e usar os frameworks do Android Open Source Project NFC e Open Mobile Application Programming Interface (OMAPI).
APIs do framework
Para implementar a sincronização de pagamentos off-host, use as APIs do framework encontradas no Projeto de código aberto do Android:
getAidsForPreferredPaymentService()
: recupera os AIDs registrados para o serviço de pagamento preferencial.getRouteDestinationForPreferredPaymentService()
: recupera o destino da rota para o serviço de pagamento preferencial.getDescriptionForPreferredPaymentService()
: retorna uma descrição visível ao usuário do serviço de pagamento preferencial.android.permission.NFC_PREFERRED_PAYMENT_INFO
(permissão): permite que os apps recebam informações do serviço de pagamento preferencial por NFC.android.nfc.action.PREFERRED_PAYMENT_CHANGED
(ação de transmissão): intent para notificar se o serviço de pagamento preferido mudou.
Validação
Para validar a implementação do recurso de sincronização de pagamentos fora do host, instale apps de elemento de segurança com elementos de segurança correspondentes e verifique as respostas adequadas de um leitor de NFC em diferentes condições.