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
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.
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.
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
e77777777
- 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:
- Atualizar o saldo ou o status do usuário
- Atualizar seu próprio back-end com base na transação
- 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.