Fluxo típico da API

O diagrama a seguir ilustra um fluxo de comunicação típico usado para inserir uma classe, salvar um objeto e atualizar um objeto. Todas as ações entre o servidor, o navegador da Web e a API Google Pay for Passes são de sua responsabilidade. O diagrama a seguir usa Fidelidade como exemplo, mas todos os outros cartões podem usar um fluxo semelhante.

Fluxo de API típico para botões JS e links da Web JWT

O esboço a seguir e o diagrama anterior detalham o fluxo típico da API para os botões JavaScript (JS) e JSON Web Tokens (JWTs):

  1. O emissor do cartão de fidelidade cria uma LoyaltyClass.
    1. O servidor define a LoyaltyClass.
    2. Seu servidor faz uma solicitação POST para inserir a LoyaltyClass no servidor do Google Pay API for Passes.
  2. Seu servidor tem um serviço para gerar um JWT para um LoyaltyObject de uma determinada LoyaltyClass. Esse objeto representa o cartão de fidelidade do usuário.
    1. Seu servidor usa um JWT para renderizar um botão Salvar no Google Pay (S2GP):
      • Para sites, use nosso botão JavaScript.
      • Para e-mail, SMS e apps nativos, use o link JWT com um botão S2GP.
  3. O usuário clica ou toca em Salvar no Google Pay no site, e-mail, app nativo ou SMS do emissor do cartão de fidelidade.
    1. O usuário é levado a uma página de destino para salvar um objeto LoyaltyClass. O objeto a ser salvo é renderizado na página de destino com base no JWT. Se o botão for tocado em um app nativo, o usuário será solicitado a salvar no app Google Pay.
    2. O usuário clica em Salvar no Google Pay na propriedade do emissor para salvar o LoyaltyObject.
    3. O LoyaltyObject é inserido no servidor do Google e enviado ao aplicativo do Google Pay. O LoyaltyObject é referido como "Loyalty Pass".
  4. O emissor atualiza os dados do cartão:
    1. O emissor do cartão de fidelidade faz uma solicitação GET do LoyaltyObject com o uso do Object.id
    2. O emissor do cartão de fidelidade atualiza o LoyaltyObject.
    3. O emissor do cartão de fidelidade faz uma solicitação de PUT ou PATCH para inserir o LoyaltyObject atualizado no servidor do Google Pay API for Passes.
    4. O LoyaltyObject é enviado para o app Google Pay.

Variação JWT "skinny"

Devido ao truncamento dos navegadores, as JWTs usadas em links da Web não devem exceder 1.800 caracteres. Se isso se tornar um problema, talvez seja melhor inserir a classe e o objeto antes. Assim, o JWT precisará conter apenas o campo id do objeto.

O diagrama a seguir mostra um fluxo de API para adicionar o botão Salvar no Google Pay ao seu e-mail ou SMS.