Leitor de QR code do Android com suporte à UPI

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

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

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

Suporte a intents da UPI do 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. Esse valor não pode ser alterado.

Os apps de pagamento precisam verificar essa origem e processar todos os fluxos de pagamento iniciados a partir desse ID de pacote para que sejam 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 os pagamentos iniciados pela leitura de um código QR ativo (usando a câmera) e a leitura de uma imagem de código QR (foto no dispositivo), o leitor de QR code transmite uma intent extra que ajuda a identificar a origem do código QR.

Os apps de pagamento precisam buscar o valor de "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 QR code capturada em tempo real usando a câmera