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 |
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 |
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 Los valores aceptables son:
|
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 |
Indica si este objeto está vinculado actualmente a un solo dispositivo. |
| Campo | Descripción |
|---|---|
deviceToken |
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
Ten en cuenta que se recibe el |
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.

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. |