Flux de communication de Smart Tap

Communication entre un terminal et l'application Google Wallet

Un terminal s'identifie à l'aide d'un ID de marchand associé à un ID d'émetteur d'offres. Quand Smart Tap est utilisé, le terminal transmet son ID de marchand à l'appareil de l'utilisateur. L'application Google Wallet examine l'ID de classe et l'ID de marchand de chaque carte stockée. Lorsqu'un ou plusieurs de correspondances, l'application Google Wallet transmet les cartes correspondantes au du terminal. Voir Configuration du marchand pour en savoir plus sur la configuration.

Exemple 1: Un émetteur d'offres

La section suivante décrit la configuration décrite dans ce schéma.

Dans le schéma précédent, il y a deux émetteurs différents:

  • L'émetteur 2018 est un développeur de cartes (également appelé "agrégateur").
  • L'émetteur 1990 est un marchand, fooPizza (également appelé "émetteur d'offres").

L'émetteur d'offres, fooPizza, souhaite activer la fonctionnalité Smart Tap pour leur carte (gérée par l'agrégateur). Agrégateur et émetteur d'offres doit suivre les étapes ci-dessous afin d'activer Smart Tap pour le marchand. sur les terminaux.

Étape Rôle Description
1 Agrégateur Créez une classe et un objet de carte (dans le schéma, abc). et 123, respectivement).
2 Agrégateur Incluez l'ID de l'émetteur d'offres dans le champ redemptionIssuers de la classe de carte. Ce indique à Google Wallet que l'ID d'émetteur 1990 est autorisé pour utiliser des objets de carte qui font référence à cette classe.
3 Utilisation Émetteur Obtenez un ID de marchand (dans le schéma, 12345678).
4 Utilisation Émetteur Définissez l'ID de marchand 12345678 pour chaque Sans contact avancé terminal compatible qui sera utilisé. Tout objet avec le paramètre L'ID de classe abc et l'ID de marchand 12345678 seront transmis au lecteur.

Exemple 2: Plusieurs émetteurs d'offres

Une même classe de carte peut avoir plusieurs émetteurs d'offres. Afin de pouvoir pour utiliser une classe de carte spécifique, l'ID de l'émetteur d'offres doit être inclus dans le champ redemptionIssuers de la classe. Chaque émetteur d'offres dispose alors de son son propre ID de marchand, qui est configuré sur ses terminaux compatibles avec Smart Tap.

La section suivante décrit la configuration décrite dans ce schéma.

Dans le schéma précédent, il y a trois émetteurs différents:

  • L'émetteur 8088 est un développeur de cartes (agrégateur).
  • L'émetteur 1990 est un marchand, fooPizza (émetteur d'offres).
  • L'émetteur 2018 est un marchand, yumPie (émetteur d'offres).

L'agrégateur et les émetteurs d'offres doivent suivre les étapes ci-dessous pour activer Smart Tap pour les terminaux des marchands.

Étape Rôle Description
1 Agrégateur Créez une classe et un objet de carte (dans le schéma, abc). et 123, respectivement).
2 Agrégateur Incluez les attributs Identifiants inclus dans redemptionIssuers de la classe de carte. Ce indique à Google Wallet que les ID d'émetteur 1990 et Les 2018 sont autorisés à utiliser des objets de carte qui font référence ce cours.
3 Utilisation Émetteurs Obtenez les ID de marchand (dans le schéma, 12345678 pour fooPizza et 18802001 pour yumPie).
4 Utilisation Émetteurs Définissez l'ID de marchand correspondant à chaque Sans contact avancé terminal compatible qui sera utilisé. Tout objet avec le paramètre L'ID de classe abc et un ID de marchand correspondant seront transmis au lecteur.

Exemple 3: Pas d'agrégateur

Une classe de carte peut être développée et émise dans le même compte d'émetteur. Dans ce dans ce cas, aucun agrégateur ne gère les classes de carte pour plusieurs Utilisations. Émetteurs. Pour pouvoir utiliser une classe de carte spécifique, le développeur de la carte doit inclure son ID d'émetteur dans la propriété redemptionIssuers de la classe. Le développeur de cartes doit ensuite obtenir un ID de marchand et le configurer sur son Terminaux compatibles avec Smart Tap.

La section suivante décrit la configuration décrite dans ce schéma.

Le développeur de cartes doit suivre les étapes ci-dessous afin d'activer Smart Tap pour la carte les terminaux des marchands.

Étape Rôle Description
1 Réussite Développeur Créez une classe et un objet de carte (dans le schéma, abc). et 123, respectivement).
2 Réussite Développeur Incluez son ID d'émetteur dans le champ redemptionIssuers. de la classe de carte. Cela indique à Google Wallet que l'ID d'émetteur 2018 est autorisé à utiliser la carte objets qui font référence à cette classe.
3 Réussite Développeur Obtenez un ID de marchand (dans le schéma, 12345678).
4 Réussite Développeur Définissez l'ID de marchand correspondant à chaque Sans contact avancé terminal compatible qui sera utilisé. Tout objet avec le paramètre L'ID de classe abc et un ID de marchand correspondant seront transmis au lecteur.

Expérience utilisateur et comportement

Comportement des données transmises entre un terminal et l'application Google Wallet dépend de l'utilisateur et de la manière dont il interagit avec l'application Google Wallet sur à ce moment-là.

Scénario 1: L'utilisateur ouvre une carte spécifique

Étape Rôle Description
1 Utilisateur Sélectionnez une carte spécifique dans l'application Google Wallet.
2 Utilisateur Appuyez sur un terminal compatible avec Smart Tap.
3 Terminal (L'ID de marchand correspond) La carte est transmise au du terminal.
(L'ID de marchand ne correspond pas) La carte n'est pas transmises au terminal.

Scénario 2: Onglet "Accueil" de Google Wallet ou vue d'écran déverrouillée

Étape Rôle Description
1 Utilisateur Ouvrez l'onglet "Accueil" dans l'application Google Wallet ou déverrouillez l'appareil l'écran de l'appareil.
2 Utilisateur Appuyez sur un terminal compatible avec Smart Tap.
3 Terminal (Un seul ID de marchand valide correspond) La carte est transmis au terminal.
(Plusieurs ID de marchand valides correspondent) Afficher un carrousel valides et de transmettre celle sélectionnée utilisateur.

Remarque : La validité d'une carte dépend de sa configuration spécifique. . Veillez à vérifier les propriétés suivantes de l'objet de carte:

  • state
  • validTimeInterval

Exemple de collecte Smart Tap

Le tableau suivant décrit les émetteurs et les cartes qui seront utilisés dans ce Exemple:

Nom du marchand ILuvCoffee Café-Foo Mocha-R-Us
ID de l'émetteur 123 456 789
ID de marchand 11111111 44444444 77777777
Niveaux de fidélité R-Basic Mes récompenses
R-Gold

ILuvCoffee propose deux niveaux de fidélité différents: R-Basic et R-Gold. En attendant, Coffee-Foo dispose d'un programme de fidélité à un seul niveau, My Rewards, et Mocha-R-Us n'a pas de programme de fidélité.

Dans le cadre d'une campagne de promotion croisée, les marchands souhaitent que les les options suivantes à la disposition de leurs clients:

  • Les clients du niveau R-Basic peuvent utiliser Smart Tap pour profiter de leur programme de fidélité. adhésion à Coffee-Foo et Mocha-R-Us
  • Les clients du niveau R-Gold n'ont pas besoin d'utiliser Smart Tap.
  • Les clients My Rewards peuvent utiliser Smart Tap pour profiter de leur programme de fidélité. au Coffee-Foo uniquement

Pour que cette campagne fonctionne, les valeurs suivantes doivent être définies pour chaque classe de fidélité défini dans la propriété redemptionIssuers de la définition de classe.

Classe de fidélité ID d'émetteur d'offres
R-Basic ["456", "789"]
R-Gold []
Mes récompenses ["456"]

Avec cette configuration, tous les objets de carte qui font référence à ces classes auront les ID de marchand suivants:

  • R-Basic:44444444, 77777777
  • R-Gold:aucun ID de marchand ne sera inclus
  • Mes récompenses:44444444

Authentification du marchand au moment de la transaction

Dans le cadre de Issuer configuration (Configuration de l'émetteur) : Le compte d'émetteur peut être associé à plusieurs clés publiques. Ces adresses IP publiques sont stockées dans l'application Google Wallet, qui les utilise pour l'authentification Lorsqu'un utilisateur place son appareil sur un terminal compatible avec Smart Tap. Ce l'étape d'authentification a lieu une fois que l'application a trouvé un objet de carte émis à l'utilisateur dont l'ID de marchand correspond à la valeur annoncée par le du terminal.

En reprenant l'exemple de la section précédente, le tableau suivant décrit clés publiques associées à chaque émetteur.

Nom du marchand ILuvCoffee Café-Foo Mocha-R-Us
ID de l'émetteur 123 456 789
ID de marchand 11111111 44444444 77777777
Niveaux de fidélité R-Basic Mes récompenses
R-Gold
Clés publiques aaa bbb

Exemple de client ayant enregistré les cartes de fidélité suivantes dans son compte Google Wallet application:

  • ILuvCoffee:R-Basic
  • Coffee-Foo:My Rewards

Comme précédemment, les valeurs suivantes sont définies dans la propriété redemptionIssuers pour chaque classe de fidélité.

  • R-Basic:["456", "789"]
  • Mes récompenses:["456"]

Si l'utilisateur place son appareil sur le terminal de chaque marchand, trois options s'offrent à vous : résultats possibles:

Terminal du marchand Résultat
ILuvCoffee Comme ILuvCoffee (ID d'émetteur d'offres 123) n'est pas actuellement configuré pour utiliser sa propre classe de fidélité, R-Basic, rien n'est transmis.
Café-Foo L'application Google Wallet s'authentifie auprès du Coffee-Foo terminal à l'aide de la clé publique bbb. En fonction du l'écran actuel que l'utilisateur affiche sur son appareil, une des scénarios présentés dans le Section Expérience utilisateur se produira.
Mocha-R-Us Dans cet exemple, il n'existe pas de clé publique pour Mocha-R-Us. Même si le programme R-Basic peut être utilisé avec marchand ne peut pas s'authentifier auprès du terminal. rien ne sera transmis.

Limites de l'authentification

Lorsqu'une carte est synchronisée avec l'application Google Wallet d'un utilisateur, tous les émetteurs d'offres de qui sont recherchées dans le backend de Google Wallet. L'ID de marchand, public et versions de clé de chaque émetteur d'offres sont stockées localement dans la Application Google Wallet

Une carte peut avoir plusieurs ID d'émetteur d'offres. Chacune d'elles correspond ensuite à ID de marchand pour un marchand spécifique. De plus, de nombreuses options publiques clés et versions de clé pour un seul ID de marchand.

L'application Google Wallet ne tentera pas de s'authentifier auprès d'un terminal si elle qu'aucune carte ne peut être utilisée par ce terminal. Cette estimation est basée sur l'ID de marchand et la version de clé publique. Pour mettre à jour les clés publiques de votre carte, procédez comme suit : le terminal doit disposer d'une connexion Internet pour récupérer clés publiques depuis le backend Google Wallet.

Une même carte peut être associée à plusieurs clés publiques à la fois. Voir Configuration du marchand pour en savoir plus sur la définition de plusieurs clés publiques pour la même carte.

Transmission de valeur lors de la transaction

Afin d'envoyer les données d'une carte lors de la transaction, l'objet Vous devez définir smartTapRedemptionValue. Une fois que la classe correspondant au est activé pour Smart Tap, cette valeur sera envoyée au terminal.

Selon votre intégration et votre cas d'utilisation, cette valeur servira à identifier et d'exécuter toute logique de transaction nécessaire, par exemple:

  1. Mettre à jour le solde ou l'état de l'utilisateur
  2. Mettre à jour votre propre backend en fonction de la transaction
  3. Mettez à jour l'objet de carte à l'aide de l'API Google Wallet afin qu'il pour refléter les modifications apportées à l'état de l'utilisateur sur son appareil

Le terminal et l'application Google Wallet gèrent le chiffrement de toutes les données transmises via NFC. Le terminal gère le déchiffrement des données après le L'appui a lieu. Les données contiennent des enregistrements NDEF d'objet de service qui représentent chaque carte transmise. L'objet Service Service number NDEF Record a une charge utile qui contient la valeur définie dans le Propriété smartTapRedemptionValue de l'objet de carte. Cela signifie que la carte développeur n'a pas à gérer le chiffrement des données transmises.

Si vous souhaitez ajouter un niveau de sécurité supplémentaire, vous pouvez définir smartTapRedemptionValue afin que seul le système recevant la les données transmises (comme un point de vente) peuvent les déchiffrer. Toutefois, la carte le développeur et l'administrateur du point de vente seront responsables de chiffrement/déchiffrement.