Inscrição e login

O recurso de inscrição e login no programa de fidelidade permite que os usuários procurem seu programa e participem ou façam login na conta pelo Google Pay. Os usuários serão direcionados para o site otimizado para dispositivos móveis a fim de concluir o processo. Depois disso, eles poderão salvar facilmente os cartões no Google Pay.

Neste guia, apresentamos uma visão geral dos passos de implementação obrigatórios para ativar esse recurso em seu programa de fidelidade.

Visão geral

Para começar, verifique se você já configurou seu projeto e se tem acesso à API Google Pay for Passes. Caso contrário, siga as instruções na API Google Pay for Passes.

Siga estas quatro etapas para implementar o recurso de inscrição e login no programa de fidelidade:

  1. Configure um ambiente de teste no Google Pay para testar fluxos de inscrição/login.
  2. Desenvolva páginas de inscrição/login que aproveitem os dados do usuário do Google Pay.
  3. Implemente o envio do cartão de fidelidade para o Google Pay após a inscrição/login.
  4. Solicite a verificação e a ativação.

Configurar um ambiente de teste no Google Pay

Determine os URLs de inscrição e login, além do logotipo do programa e dos campos de usuário desejados. Em seguida, use os campos aninhados discoverableProgram da loyaltyclass para definir os valores apropriados.

Ao definir os valores em discoverableProgram, você cria uma versão de rascunho do programa de fidelidade que permite testar a inscrição/login. Para garantir que isso fique visível para os testadores, verifique se eles têm acesso ao seu Merchant Center referente à API Google Pay for Passes e se preencheram o formulário de inscrição. Isso permitirá verificar a funcionalidade correta da implementação durante o processo de desenvolvimento.

Desenvolver páginas de inscrição/login que aproveitam os dados do usuário do Google Pay

Ao optar por fazer login ou se inscrever no programa de fidelidade, o usuário é direcionado para uma página personalizada no site para concluir o processo de inscrição ou login. Se um usuário quiser se inscrever, o Google Pay solicitará que ele compartilhe os respectivos dados com você.

Para que o usuário conclua essas ações, é necessário fornecer uma das duas páginas ou ambas.

  1. Um URL em que o usuário possa fazer login em uma conta atual.
  2. Um URL de inscrição em que o usuário possa criar uma conta nova.

As páginas de login e inscrição precisam atender aos seguintes requisitos:

  • Proporcionar uma experiência de usuário otimizada para dispositivos móveis.
  • Minimizar o número de campos obrigatórios durante o processo de inscrição.
  • Permitir que o usuário conclua o login ou a inscrição em uma única página.
  • Usar criptografia HTTPS com um certificado válido para garantir que os dados do usuário sejam transmitidos com segurança.
  • Garantir pelo menos 99,9% de tempo de atividade das páginas de login e inscrição.

Além dos requisitos acima, recomendamos permitir que os usuários se inscrevam no programa de fidelidade sem preencher nenhum formulário ou manter a página apenas com a aceitação dos termos de serviço.

  • Aproveitando os dados do usuário fornecidos, é possível criar uma conta e remeter imediatamente o cartão de fidelidade.
  • Posteriormente, envie ao usuário por e-mail uma senha única ou um link para configurar a senha e detalhes opcionais da conta.
  • Isso reduz a chance de abandono do processo de inscrição pelo usuário, já que cada passo extra pode levar a mais desistências.

Ao apresentar a página de login ou inscrição, o Google Pay criará um Android WebView, e uma solicitação POST será enviada ao URL fornecido. Os dados do usuário serão fornecidos no parâmetro userProfile incluído na solicitação POST usando o tipo de conteúdo application/x-www-form-urlencoded e a codificação UTF-8. O valor do parâmetro userProfile é um objeto JSON codificado em Base64.

Dependendo da ação escolhida pelo usuário e dos campos especificados para solicitação ao usuário, o objeto JSON pode conter os campos a seguir.

Campo Inscrição Login
email
firstName  
lastName  
addressLine [1-3]  
city  
state  
zipcode  
country  
phone  

Consulte o objeto JSON de exemplo decodificado abaixo contido no userProfile.

Recurso

{
  "firstName": "Jane",
  "lastName": "Doe",
  "addressLine1": "1600 Amphitheatre Pkwy",
  "addressLine2": "Apt 123",
  "addressLine3": "Attn:Jane",
  "city": "Mountain View",
  "state": "CA",
  "zipcode": "94043",
  "country": "US",
  "email": "jane.doe@example.com",
  "phone": "555-555-5555"
}

Implementar envio imediato do cartão de fidelidade para o Google Pay

Depois da autenticação (login) ou após a criação da conta (inscrição), a página precisa enviar imediatamente o cartão de fidelidade do usuário para o Google Pay.

Envie o cartão de fidelidade ao Google Pay redirecionando para um link que siga a estrutura abaixo. Caso ainda não tenha familiaridade com a geração de um JSON Web Token (JWT) para o LoyaltyObject que representa o cartão de fidelidade do usuário, consulte Gerar um JWT representando o objeto.

https://pay.google.com/gp/v/save/{jwt_generated}

O comprimento seguro de um URL é 2.000 caracteres. Os links precisam permanecer abaixo desse limite. Os objetos codificados em JWTs precisam ser pequenos e conter apenas dados específicos ao usuário. Tente manter a maioria dos dados na classe do objeto, criando-a antes do JWT. Para objetos maiores, que excedam o limite, é possível criar o objeto primeiro na API Google Pay for Passes e enviar apenas o ID do objeto no JWT.

Fluxo de comunicação típico

O fluxo de comunicação para um usuário durante a inscrição ou o login é ilustrado na imagem a seguir. A responsabilidade por implementar todas as ações entre "Your Server" (Seu servidor) é sua.

Fluxos de login e inscrição

Solicitar verificação e ativação

Depois de concluir o trabalho de desenvolvimento e testar os fluxos de inscrição/login, envie uma solicitação por meio do formulário de inscrição.

Depois de uma avaliação completa da implementação que confirme o funcionamento correto com o app Google Pay, o recurso de inscrição/login será lançado publicamente para o programa de fidelidade. Isso permitirá que qualquer usuário veja o programa e use essa funcionalidade.

Para garantir uma experiência do usuário ideal, verificações recorrentes da implementação de inscrição/login serão realizadas para garantir conformidade contínua com os requisitos do recurso. Você receberá uma notificação no caso de discrepâncias, e a funcionalidade de login/inscrição poderá ser desativada até o problema ser resolvido.

Perguntas frequentes

  • Há algum requisito para as imagens usadas em meu programa de fidelidade?
    • Sim, as imagens precisam ser hospedadas em um local HTTPS, porque, de outra forma, elas não estarão visíveis no Google Pay.
  • Há alguma ferramenta que simplifique a implementação e a depuração de JWTs?
    • Sim, plataformas como www.jwt.io permitem decodificar e depurar os tokens durante o processo de desenvolvimento, permitindo verificar o conteúdo que está sendo enviado. O Google não tem afiliação nem recomenda especificamente nenhum desses terceiros.
  • Como processamos corretamente os dados userProfile codificados em Base64?
    • Verifique se você está usando a codificação UTF-8 em todo o processo. A string JSON é codificada primeiro em UTF-8 e, depois, em android.util.Base64 com as opções NO_WRAP e URL_SAFE. Esse método corresponde à seção 4 do RFC 3548.

Exemplo de fluxo de inscrição

Fluxo de inscrição para programas de fidelidade