Fluxo de comunicação do Toque inteligente

Comunicação entre um terminal e o app Carteira do Google

Um terminal se identifica com um ID do coletor que é mapeado para um ID do emissor de resgate. Quando ocorre um Toque inteligente, o terminal transmite o ID do coletor para o dispositivo do usuário. Em seguida, o app Carteira do Google examina os IDs de classe e de coletor de cada cartão armazenado. Quando um ou mais forem encontradas, o app Carteira do Google transmitirá os cartões correspondentes ao terminal. Consulte Configuração do comerciante para mais detalhes sobre a configuração.

Exemplo 1: um emissor de resgate

A seção a seguir descreve a configuração descrita neste gráfico.

No diagrama anterior, há dois emissores diferentes:

  • O emissor 2018 é um desenvolvedor de cartão, também chamado de agregador.
  • O emissor 1990 é um comerciante, fooPizza (também chamado de emissor de resgate).

O emissor de resgate, fooPizza, quer ativar a funcionalidade do Toque inteligente para o passe (gerenciado pelo agregador). O agregador e o emissor do resgate precisa concluir as seguintes etapas para ativar o Toque inteligente para o comerciante terminais.

Etapa Papel Descrição
1 Agregador Crie uma classe e um objeto de cartão (no diagrama, abc) e 123, respectivamente).
2 Agregador Inclua o ID do emissor de resgate no Propriedade redemptionIssuers da classe de cartão. Isso informa à Carteira do Google que o ID do emissor 1990 está permitido para resgatar objetos de cartão que se referem a essa classe.
3 Resgate Emissor Consiga um ID do coletor (no diagrama, 12345678).
4 Resgate Emissor Definir o ID do coletor 12345678 em cada Toque inteligente compatível que será usado. Qualquer objeto com o O ID de classe abc e o ID do coletor 12345678 serão transmitidos ao leitor.

Exemplo 2: vários emissores de resgate

Uma única classe de cartão pode ter vários emissores de resgate. Para conseguir resgatar uma classe de cartão específica, o ID do emissor de resgate precisa ser incluído no redemptionIssuers da classe. Cada emissor de resgate tem então próprio ID do coletor, que é configurado nos terminais compatíveis com o Toque inteligente.

A seção a seguir descreve a configuração descrita neste gráfico.

No diagrama anterior, há três emissores:

  • O emissor 8088 é um desenvolvedor de cartão (agregador)
  • O emissor 1990 é um comerciante, fooPizza (emissor de resgate)
  • O emissor 2018 é um comerciante, yumPie (emissor de resgate).

O agregador e os emissores de resgate precisam concluir as etapas a seguir para ativar o Toque inteligente nos terminais do comerciante.

Etapa Papel Descrição
1 Agregador Crie uma classe e um objeto de cartão (no diagrama, abc) e 123, respectivamente).
2 Agregador Incluir os emissores de resgate no Propriedade redemptionIssuers da classe de cartão. Isso informa à Carteira do Google que os IDs de emissor 1990 e 2018 têm permissão para resgatar objetos de cartão que fazem referência essa classe.
3 Resgate Emissores Consiga os IDs do coletor (no diagrama, 12345678 para fooPizza e 18802001 para yumPie.
4 Resgate Emissores Definir o ID do coletor correspondente em cada Toque inteligente compatível que será usado. Qualquer objeto com o O ID de classe abc e um ID do coletor correspondente serão transmitidos ao leitor.

Exemplo 3: sem agregador

Uma classe de cartão pode ser desenvolvida e emitida na mesma conta de emissor. Neste caso, não há um Agregador gerenciando classes de cartão para vários resgates Emissores. Para resgatar uma classe específica de cartão, o desenvolvedor dele precisam incluir o ID do emissor na propriedade redemptionIssuers da classe. O desenvolvedor do cartão precisa conseguir um ID de coletor e configurá-lo no Terminais compatíveis com Toque inteligente.

A seção a seguir descreve a configuração descrita neste gráfico.

O desenvolvedor do cartão precisa concluir as seguintes etapas para ativar o Toque inteligente para o terminais de comerciantes.

Etapa Papel Descrição
1 Aprovado Desenvolvedor Crie uma classe e um objeto de cartão (no diagrama, abc) e 123, respectivamente).
2 Aprovado Desenvolvedor Inclua o ID do emissor no redemptionIssuers da classe de cartão. Isso informa à Carteira do Google que o ID do emissor 2018 tem permissão para resgatar o cartão que fazem referência a essa classe.
3 Aprovado Desenvolvedor Consiga um ID do coletor (no diagrama, 12345678).
4 Aprovado Desenvolvedor Definir o ID do coletor correspondente em cada Toque inteligente compatível que será usado. Qualquer objeto com o O ID de classe abc e um ID do coletor correspondente serão transmitidos ao leitor.

Experiência do usuário e comportamento

O comportamento do que é transmitido entre um terminal e o app Carteira do Google depende do usuário e de como ele está interagindo com o app Carteira do Google em daquela época.

Cenário 1: o usuário abre um cartão específico

Etapa Papel Descrição
1 Usuário Selecione um cartão específico no app Carteira do Google.
2 Usuário Toque em um terminal com Toque inteligente ativado.
3 Terminal (o ID do coletor é correspondente) O cartão é transmitido ao terminal.
(O ID do coletor não corresponde) O cartão não é transmitidos ao terminal.

Cenário 2: guia inicial da Carteira do Google ou exibição de tela desbloqueada

Etapa Papel Descrição
1 Usuário Abra a guia "Início" no app Carteira do Google ou desbloqueie na tela do dispositivo.
2 Usuário Toque em um terminal com Toque inteligente ativado.
3 Terminal (Única correspondência válida de ID do coletor) O cartão é transmitidos ao terminal.
(Vários IDs de coletor válidos) Mostrar um carrossel de cartões válidos e transmitir o selecionado pelo usuário.

Observação: a validade de um cartão depende da configuração específica dele. objeto. Verifique as seguintes propriedades do objeto de cartão:

  • state
  • validTimeInterval

Exemplo da coleção de Toque inteligente

A tabela a seguir descreve os emissores e os passes que serão usados neste exemplo:

Nome do comerciante ILuvCoffee Cafeteria Mocha-R-Us
Código do emissor 123 456 789
ID do coletor 11111111 44444444 77777777
Níveis de fidelidade R-Basic Meus prêmios
R-Gold

A ILuvCoffee tem dois níveis de fidelidade: R-Basic e R-Gold. Enquanto isso, A Coffee-Foo tem um programa de fidelidade com um único nível, My Rewards, e A Mocha-R-Us não tem um programa de fidelidade.

Como parte de uma campanha de promoção cruzada, os comerciantes querem que os disponíveis para os clientes:

  • Os clientes do nível R-Basic podem usar o Toque inteligente para resgatar a fidelidade. na Coffee-Foo e na Mocha-R-Us
  • Os clientes do nível R-Gold não precisam do resgate do Toque inteligente.
  • Os clientes de Minhas recompensas podem usar o Toque inteligente para resgatar a assinatura de fidelidade somente na Coffee-Foo

Para que a campanha funcione, cada classe de fidelidade precisará dos seguintes valores na propriedade redemptionIssuers da definição da classe.

Classe de fidelidade IDs do emissor de resgate
R-Basic ["456", "789"]
R-Gold []
Meus prêmios ["456"]

Com essa configuração, todos os objetos de cartão que fizerem referência a essas classes terão os seguintes IDs de coletor:

  • R-Basic:44444444 e 77777777
  • R-Gold:nenhum ID do coletor será incluído.
  • Minhas recompensas: 44444444

Autenticação do coletor no momento do toque

Como parte do Configuração do emissor, uma A conta do emissor pode ter várias chaves públicas associadas a ela. Essas contas públicas as chaves são armazenadas no app Carteira do Google, que as usa para autenticação quando um usuário toca no dispositivo em um terminal ativado para o Toque inteligente. Isso a etapa de autenticação ocorre depois que o app encontra um objeto de cartão emitido ao usuário que tem um ID do coletor que corresponde ao valor anunciado pelo terminal.

Continuando com o exemplo da seção anterior, a tabela a seguir descreve chaves públicas associadas a cada emissor.

Nome do comerciante ILuvCoffee Cafeteria Mocha-R-Us
Código do emissor 123 456 789
ID do coletor 11111111 44444444 77777777
Níveis de fidelidade R-Basic Meus prêmios
R-Gold
Chaves públicas aaa bbb

Um cliente tem os seguintes cartões de fidelidade salvos na Carteira do Google aplicativo:

  • ILuvCoffee:R-Basic
  • Coffee-Foo: minhas recompensas

Como antes, os valores a seguir são definidos na propriedade redemptionIssuers para cada classe de fidelidade.

  • R-Basic:["456", "789"]
  • Minhas recompensas: ["456"]

Se o usuário tocar no dispositivo nos terminais de cada comerciante, haverá três resultados possíveis:

Terminal do comerciante Resultado
ILuvCoffee Como o ILuvCoffee (ID do emissor de resgate 123) não é atualmente configurado para resgatar a própria classe de fidelidade, R-Basic, nada é transmitido.
Cafeteria O app Carteira do Google faz a autenticação no Coffee-Foo terminal usando a chave pública bbb. Dependendo a tela atual que o usuário está visualizando no dispositivo, uma dos cenários listados nos Seção Experiência do usuário vão ocorrer.
Mocha-R-Us Não há uma chave pública para a Mocha-R-Us neste exemplo. Embora o programa R-Basic possa ser resgatado com comerciante, ele não pode autenticar no terminal. Portanto, nada será transmitido.

Limites de autenticação

Quando um cartão é sincronizado com o app Carteira do Google de um usuário, todos os emissores de resgate do os cartões são pesquisados no back-end da Carteira do Google. O ID do coletor, público e versões de chave de cada emissor de resgate são armazenadas localmente no Google Wallet.

Um cartão pode ter vários IDs de emissor de resgate. Cada um deles é associado a um ID do coletor de um comerciante específico. Além disso, pode haver várias chaves e versões de chave para um único ID de coletor.

O app Carteira do Google não vai tentar se autenticar em um terminal se não tem cartões que podem ser resgatados por esse terminal. Isso é baseado no o ID do coletor e a versão da chave pública. Para atualizar as chaves públicas do seu cartão, faça o seguinte: o terminal precisa ter uma conexão de Internet para recuperar as novas chaves públicas do back-end da Carteira do Google.

Um único cartão pode ser associado a muitas chaves públicas de uma só vez. Consulte Configuração do comerciante para informações sobre como definir várias chaves públicas para o mesmo cartão.

Transmissão de valor durante o toque

Para enviar dados de um cartão durante o toque, o objeto smartTapRedemptionValue precisa ser definido. Assim que a classe correspondente estiver ativado para o Toque inteligente, esse valor será enviado ao terminal.

Com base na sua integração e caso de uso, esse valor será usado para identificar seu do usuário e realize qualquer lógica de transação necessária, como a seguinte:

  1. Atualizar o saldo ou o status do usuário
  2. Atualizar seu próprio back-end com base na transação
  3. Atualize o objeto de cartão usando a API Google Wallet para que ele reflete qualquer alteração no status do usuário no dispositivo

O terminal e o app Carteira do Google processam a criptografia de todos os dados transmitidos por NFC. O terminal processa a descriptografia de dados após o O toque é realizado. Dentro dos dados, há registros NDEF do objeto de serviço que representam cada cartão transmitido. O objeto de serviço Service number NDEF Record tem um payload que contém o valor definido no Propriedade smartTapRedemptionValue do objeto do cartão. Isso significa que o cartão desenvolvedor não precise lidar com a criptografia dos dados transmitidos.

Se você quiser adicionar outra camada de segurança, defina o smartTapRedemptionValue para que apenas o sistema que recebe o dados transmitidos (como um Ponto de venda) podem descriptografá-los. No entanto, o cartão o desenvolvedor e o administrador do PDV serão responsáveis processo de criptografia/descriptografia.