Descripción general

La API Passes de Google Wallet permite a los socios especificar un extremo para la activación de un boleto de transporte público. Cuando se requiera la activación, se mostrará el botón “Activar” para el usuario que, cuando se presione, llamará al extremo especificado con los parámetros que se describen a continuación. El extremo debe asegurarse de que el pase tenga información de canje válida (ya sea un código de barras o inspección visual) antes de la devolución. A partir de ese momento, se actualizará el pase en la Billetera del usuario para mostrar la información de canje. Antes de la activación, cualquier canje existente esta información no se mostrará.

API de Activación

El extremo de activación se especifica en la API con activationOptions en el clase de transporte público. El socio es responsable de mantener un extremo de activación que funcione con una latencia razonable.

  activationOptions: {
    activationUrl: string
  }
Campo Descripción
activationUrl

string

URL del extremo del socio al que se llamaría para las solicitudes de activación. La URL debe estar alojados en HTTPS, y robots.txt debe permitir que los usuarios de UserAgent:Google-Valuables.

El estado de activación se almacena en el objeto mediante el campo activationStatus. Los estados válidos incluyen NOT_ACTIVATED y ACTIVATED. La activación extremo debe actualizar el objeto con el estado ACTIVATED y garantizar que tiene información de canje válida, como un código de barras o parámetros de inspección visual. El Se puede usar el campo deviceContext para fijar dispositivos.

  activationStatus: enum (ActivationStatus),
  deviceContext: {
    deviceToken: string
  },
  hasLinkedDevice: boolean
Campo Descripción
activationStatus

enum (ActivationStatus)

Estado de activación de este objeto de transporte público. Este estado cambiará la representación del el ticket y permitir que los usuarios realicen una acción; P. ej., se renderizará un botón Activar en los detalles del boleto si se configuró como NOT_ACTIVATED.

Los valores aceptables son:

  • NOT_ACTIVATED
  • ACTIVATED

deviceContext

object (DeviceContext)

Un contexto de dispositivo al que se asocia el objeto. Si se establece, la información de canje solo se devolverán al dispositivo determinado.

hasLinkedDevice

boolean

Indica si este objeto está vinculado actualmente a un solo dispositivo.

DeviceContext
Campo Descripción
deviceToken

string

Si se establece, solo se devolverá la información de canje al dispositivo determinado tras la activación. del objeto. No se puede usar como identificador estable para rastrear el dispositivo de un usuario. Integra pueden cambiar entre los diferentes pases del mismo dispositivo o incluso entre diferentes activaciones del mismo dispositivo. Cuando se configura esta opción, los emisores de la llamada también deben establecer hasLinkedDevice en el objeto que se activa

Ten en cuenta que se recibe el deviceToken de parámetros de activación Campo deviceContext

Fijación de dispositivos

La fijación de dispositivos es una función que permite a un usuario activar el ticket en un dispositivo y hacer que la información sobre el canje de boletos se mostrará solo en ese dispositivo. Esto es independiente del multipleDevicesAndHoldersAllowedStatus de ONE_USER_ONE_DEVICE, que solo permite que el ticket se muestre en un solo dispositivo. Se recomienda usar el atributo estado ONE_USER_ALL_DEVICES con fijación de dispositivos.

Antes de la activación, el usuario puede ver el ticket y activar el botón en cualquier dispositivo por sí solas. Una vez que se active y se fije a un dispositivo, este mostrará la información de canje y otros dispositivos mostrarán un botón de activación para permitir que el usuario mueva el ticket a otro dispositivo. Si no se desea la funcionalidad de mover el ticket, pero se puede activar en cualquier dispositivo, entonces es posible actualizar el ticket durante la activación a ONE_USER_ONE_DEVICE en lugar de que con la fijación de dispositivos.

Para implementar la fijación de dispositivos, el objeto debe actualizarse con el campo deviceToken que se recibe con los parámetros de activación, así como configurando hasLinkedDevice como verdadero en la misma llamada a la API Si lo deseas, el ticket puede Se puede desvincular de un dispositivo configurando hasLinkedDevice como falso en una futura llamada a la API.

diagrama de secuencia para fijar dispositivos

Parámetros de activación

La solicitud al extremo de activación contendrá los siguientes parámetros.

Ejemplo de JSON:

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

Identificador Descripción
classId

ID de clase completamente calificado. Usa el siguiente formato:

<issuer_id.class_id>
objectIds

Arreglo completamente calificado de IDs de objeto que usan el siguiente formato:

<issuer_id.object_id>
expTimeMillis Tiempo de vencimiento en milisegundos desde EPOCH. Después de la fecha de vencimiento, el mensaje debe considerarse no válido.
eventType Siempre "activate".
nonce Nonce para hacer un seguimiento de las entregas duplicadas.
deviceContext

Es un ID único generado por Google que representa el dispositivo en el que el usuario realiza una acción. Este ID se debe usar cuando se realizan actualizaciones que vinculan un objeto a un dispositivo.

Es posible que este ID no sea el mismo para futuras solicitudes de un dispositivo determinado.