Leitor de código QR do Android com suporte à UPI

O Android 13 (com compatibilidade com versões anteriores) oferece suporte a fluxos de pagamento da UPI adicionando um leitor de código QR 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 código QR com a câmera ao vivo ou uma imagem estática.

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

A ordem dos aplicativos não é modificada de nenhuma maneira. Os apps mais usados pelos usuários são priorizados pelo SO e exibidos primeiro, de forma semelhante à caixa de diálogo da intent da UPI.

Suporte a intents da UPI do leitor de código QR do Android

Quando um app de pagamento é iniciado por esse fluxo, o ID do pacote de chamada é definido como com.google.android.gms. Esse valor não pode ser alterado.

Os apps de pagamento precisam verificar essa origem, processar todos os fluxos de pagamento iniciados nesse ID de pacote a serem tratados como iniciados por QR e definir o modo de iniciação como QR ao enviar dados para o PSP do beneficiário.

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

Os apps de pagamento precisam buscar o valor da "intent extra" com a chave com.google.android.gms.UPI_QR_SOURCE e 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 código QR armazenada no dispositivo.

LIVE_CAMERA

Imagem do código QR capturada ao vivo usando a câmera