Vue d'ensemble

L'API Google Wallet Passes permet aux partenaires de spécifier un point de terminaison pour l'activation d'un titre de transport. Lorsque l'utilisateur doit procéder à l'activation, un bouton "Activer" s'affiche. Lorsqu'il appuie dessus, il appelle le point de terminaison spécifié avec les paramètres décrits ci-dessous. Le point de terminaison doit s'assurer que la carte dispose d'informations d'utilisation valides (code-barres ou inspection visuelle) avant de la renvoyer. La carte dans le Wallet de l'utilisateur sera alors mise à jour pour afficher les informations d'utilisation. Notez qu'avant l'activation, aucune information d'utilisation ne sera affichée.

API d'activation

Le point de terminaison d'activation est spécifié dans l'API en utilisant activationOptions sur la classe de transports en commun. Il incombe au partenaire de maintenir un point de terminaison d'activation fonctionnel avec une latence raisonnable.

  activationOptions: {
    activationUrl: string
  }
Champ Description
activationUrl

string

URL du point de terminaison du partenaire appelé pour les requêtes d'activation. L'URL doit être hébergée sur HTTPS et le fichier robots.txt doit permettre à UserAgent:Google-Valuables d'accéder au chemin de l'URL.

L'état d'activation est stocké sur l'objet à l'aide du champ activationStatus. Les états valides sont NOT_ACTIVATED et ACTIVATED. Le point de terminaison d'activation doit mettre à jour l'objet avec l'état ACTIVATED et s'assurer que l'objet dispose d'informations d'utilisation valides, telles qu'un code-barres ou des paramètres d'inspection visuelle. Le champ deviceContext peut être utilisé pour l'épinglage à un appareil.

  activationStatus: enum (ActivationStatus),
  deviceContext: {
    deviceToken: string
  },
  hasLinkedDevice: boolean
Champ Description
activationStatus

enum (ActivationStatus)

État d'activation de cet objet de la classe de transports en commun. Cet état modifie la représentation du billet et permet aux utilisateurs d'effectuer certaines actions. Par exemple, un bouton d'activation s'affiche dans les détails du billet si la valeur définie est NOT_ACTIVATED.

Les valeurs acceptées sont les suivantes :

  • NOT_ACTIVATED
  • ACTIVATED

deviceContext

object (DeviceContext)

Contexte d'appareil auquel associer l'objet. Si ce champ est défini, les informations d'utilisation ne sont renvoyées qu'à l'appareil en question.

hasLinkedDevice

boolean

Indique si cet objet est actuellement associé à un seul appareil.

DeviceContext
Champ Description
deviceToken

string

Si ce champ est défini, les informations d'utilisation ne sont renvoyées qu'à l'appareil en question lors de l'activation de l'objet. Il ne peut pas être utilisé comme identifiant stable pour suivre l'appareil d'un utilisateur. Elle peut varier d'une carte à l'autre d'un même appareil, voire lors de différentes activations sur un même appareil. Lorsque ce paramètre est défini, les appelants doivent également définir hasLinkedDevice sur l'objet en cours d'activation.

Notez que la valeur deviceToken est reçue du champ deviceContext des paramètres d'activation.

Épinglage à un appareil

L'épinglage à un appareil est une fonctionnalité qui permet à un utilisateur d'activer un titre de transport sur un appareil et de n'afficher les informations d'utilisation du titre de transport que sur cet appareil. Ceci est distinct du multipleDevicesAndHoldersAllowedStatus de ONE_USER_ONE_DEVICE, qui ne permet d'afficher le billet que sur un seul appareil. Nous vous recommandons d'utiliser l'état ONE_USER_ALL_DEVICES avec l'épinglage à un appareil.

Avant l'activation, l'utilisateur peut voir le titre de transport et le bouton d'activation sur tous ses appareils. Une fois activé et épinglé à un appareil, l'appareil épinglé affiche les informations d'utilisation et les autres appareils affichent un bouton d'activation permettant à l'utilisateur de transférer le titre de transport vers un autre appareil. Si vous ne souhaitez pas déplacer le billet, mais que vous l'activez sur n'importe quel appareil, vous pouvez définir le billet sur ONE_USER_ONE_DEVICE lors de l'activation plutôt que d'utiliser l'épinglage à un appareil.

Pour épingler un appareil, l'objet doit être mis à jour avec le champ deviceToken reçu avec les paramètres d'activation et la valeur hasLinkedDevice doit être définie sur "true" dans le même appel d'API. Si vous le souhaitez, le billet peut ensuite être dissocié de l'appareil en définissant hasLinkedDevice sur "false" dans un prochain appel d'API.

schéma de séquence pour l'épinglage à un appareil

Paramètres d'activation

La requête envoyée au point de terminaison d'activation contiendra les paramètres suivants.

Exemple JSON :

  {
    classId: “123.classId”,
    objectIds: [ “123.objectId” ],
    expTimeMillis: 1669671940735,
    eventType: “activate”,
    nonce: “1c6fccce-6f66-11ed-a1eb-0242ac120002”,
    deviceContext: “6fba937a-6f6e-11ed-a1eb-0242ac120002”
  }

Identifiant Description
classId

ID complet de la classe. Utilise le format suivant:

<issuer_id.class_id>
objectIds

Tableau complet des ID d'objet au format suivant:

<issuer_id.object_id>
expTimeMillis Délai d'expiration en millisecondes depuis EPOCH. Passé ce délai, le message doit être considéré comme non valide.
eventType Toujours "activate".
nonce Nonce de suivi des diffusions en double.
deviceContext

Identifiant unique généré par Google et qui représente l'appareil sur lequel l'utilisateur effectue l'action. Cet ID doit être utilisé lorsque vous effectuez des mises à jour qui associent un objet à un appareil.

Il est possible que cet ID ne soit pas constant et varie pour les futures requêtes provenant d'un même appareil.