Introduction
Les codes-barres rotatifs ressemblent à des codes-barres standards, mais changent régulièrement, généralement toutes les minutes. Le terminal ou lecteur est programmé pour n'accepter que la dernière version. Cette mesure de sécurité réduit les risques associés à la capture d'écran de codes-barres, en particulier le vol de billets ou la revente de billets non autorisée. La rotation des codes-barres peut également faire office de solution de remplacement pour les appareils qui ne peuvent pas bénéficier de la fonctionnalité Smart Tap, car ils ne sont pas compatibles avec la technologie NFC (incompatibilité matérielle ou logiciel désactivé).
Documentation de référence de l'API
Pour plus de détails techniques sur la rotation des codes-barres, reportez-vous à la
Type RotatingBarcode
.
Exemple de charge utile
JSON | |
---|---|
{ "rotatingBarcode": { "type": "QR_CODE", "valuePattern": "MyRotatingBarcode-{totp_timestamp_seconds}-{totp_value_0}", "alternateText": "Ticket#: 1234567890", "totpDetails": { "algorithm": "TOTP_SHA1", "periodMillis": "3000", "parameters": [ { "key": "3132333435363738393031323334353637383930", "valueLength": "8" } ] } } } |
Mécanismes de remplacement
Sur l'appareil de l'utilisateur, un seul mécanisme d'utilisation est utilisé à la fois, en fonction de la configuration de la carte et des capacités de l'appareil. Les types d'utilisation suivants sont utilisés par ordre de priorité:
-
Smart Tap: si une charge utile Smart Tap est spécifiée et si l'appareil prend en charge
NFC/HCE
<ph type="x-smartling-placeholder">
- </ph>
- Notez que l'utilisateur peut la remplacer en cliquant sur "Afficher le code", ce qui force l'affichage du code-barres rotatif/statique.
- Code-barres rotatif : si une charge utile de code-barres rotatif est spécifiée
- Code-barres statique : si une charge utile de code-barres est spécifiée
La spécification de plusieurs charges utiles permet de garantir la disponibilité pour tous les utilisateurs, mais peut avoir des implications en termes de sécurité. En particulier, l'utilisation d'un code-barres statique en remplacement d'un code-barres rotatif annule la plupart des avantages liés à ce dernier. Les codes-barres statiques de remplacement ne s'affichent que dans les vues Web ou sur des clients qui ne prennent pas en charge les codes-barres rotatifs. À ce jour, nous prévoyons tous les clients Google Wallet sont compatibles avec les codes-barres rotatifs.
Enregistrer le flux
L'API Google Wallet propose plusieurs flux, y compris :
- Créer les classes de cartes cadeaux au moment de la sauvegarde ou à l'avance
- Envoyer les objets complets dans votre JWT ou enregistrer les objets à l'avance, puis les référencer par ID dans votre JWT
- Mettre à jour les objets après leur enregistrement
Le champ "rotatingBarcode" proposé est compatible avec tous ces flux, Toutefois, pour améliorer la sécurité, nous vous suggérons de procéder comme suit:
-
Appelez l'API
object:insert
pour insérer la carte dans la Serveur Google Wallet et configurez le bouton "Ajouter à Google Wallet" pour référencer l'objet spécifique par son ID dans votre jeton JWT. Ainsi, le JWT obtenu n'inclut pas la clé secrète du code-barres rotatif. - Utilisez une clé secrète OTP limitée à une seule carte.
- À moins qu'elle ne soit mise à jour, la clé doit être valide pendant toute la durée de vie la carte. Cette clé ne devrait pas être mise à jour selon une fréquence donnée pendant au cours du fonctionnement normal.
Le schéma séquentiel suivant illustre le flux entre les différents acteurs pour une intégration classique:
