Leitor de QR code do Android com suporte à UPI

O Android 13 (compatível com versões anteriores para Android 12) oferece suporte a fluxos de pagamento da UPI adicionando um leitor de QR code dedicado que os usuários podem acessar diretamente no bloco "Configurações rápidas" correspondente. Os usuários podem iniciar um fluxo de pagamento da UPI lendo um QR code da câmera ao vivo ou de uma imagem estática.

Quando vários apps da UPI são instalados em um dispositivo, uma caixa de diálogo de desambiguação é exibida ao usuário. O fluxo de pagamento continua no aplicativo selecionado pelo usuário.

A ordem dos aplicativos não é modificada de forma alguma. Os apps mais usados são priorizados pelo SO e mostrados primeiro, semelhante à caixa de diálogo da intent da UPI atual.

Suporte às intents da UPI no leitor de QR code do Android

Quando um app de pagamento é iniciado por esse fluxo, o ID do pacote de chamada é definido como com.google.android.gms. Não é possível alterar esse valor.

Os apps de pagamento precisam verificar essa fonte e processar todos os fluxos de pagamento iniciados com esse ID de pacote a serem tratados conforme iniciado pelo QR e definir o modo de início como QR ao enviar dados para o PSP do beneficiário.

Para distinguir entre pagamentos iniciados pela leitura de um QR code em tempo real (usando a câmera) e de uma imagem de QR code (foto no dispositivo), o leitor de QR passa um extra de intent que ajuda a identificar a origem do código.

Os apps de pagamento precisam buscar o valor de "intent extra" com a chave com.google.android.gms.UPI_QR_SOURCE e, em seguida, comparar com o seguinte:

  • A string STATIC_IMAGE indica que a origem é uma imagem estática.
  • A string LIVE_CAMERA indica que a origem é a câmera.

Chave

Valor

Explicação

com.google.android.gms.UPI_QR_SOURCE

STATIC_IMAGE

Imagem do QR code armazenada no dispositivo.

LIVE_CAMERA

Imagem do QR code capturada ao vivo usando a câmera