La API de pases de la Billetera de Google permite a los socios especificar un extremo para activar un boleto de transporte público. Cuando se necesite la activación, se mostrará al usuario el botón "Activar" que, cuando lo 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 una inspección visual) antes de devolverlo. En ese momento, se actualizará el pase en la Billetera del usuario para mostrar la información de canje. Ten en cuenta que, antes de la activación, no se mostrará la información de canje existente.
API de activación
El extremo de activación se especifica en la API con activationOptions
en la 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 |
Es la URL del extremo del socio al que se llamaría para las solicitudes de activación. La URL debe estar alojada en HTTPS, y robots.txt debe permitir que UserAgent:Valuables pueda acceder a la ruta de URL. |
El estado de activación se almacena en el objeto mediante el campo activationStatus
.
Los estados válidos incluyen NOT_ACTIVATED
y ACTIVATED
. El extremo de activación debe actualizar el objeto con el estado ACTIVATED
y debe asegurarse de que el objeto tenga información de canje válida, como un código de barras o parámetros de inspección visual. El campo deviceContext
se puede usar 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 ticket y permitirá que los usuarios realicen acciones. Por ejemplo, se renderizará un botón Activar en los detalles del ticket si se establece como Los valores aceptables son:
|
deviceContext |
Un contexto de dispositivo con el que se asociará el objeto. Si se configura, la información de canje solo se devolverá al dispositivo determinado. |
hasLinkedDevice |
Indica si este objeto está vinculado actualmente a un solo dispositivo. |
Campo | Descripción |
---|---|
deviceToken |
Si se configura, la información de canje solo se devolverá al dispositivo determinado cuando se active el objeto. No se puede usar como un identificador estable para rastrear el dispositivo de un usuario. Puede cambiar entre diferentes pases para el mismo dispositivo o incluso entre diferentes activaciones para el mismo dispositivo. Cuando se configura esto, los emisores también deben establecer Ten en cuenta que la |
Fijación de dispositivos
La fijación de dispositivos es una función que le permite al usuario activar el boleto en un dispositivo y que la información de canje de entradas se muestre solo en ese dispositivo. Es independiente de la multipleDevicesAndHoldersAllowedStatus
de ONE_USER_ONE_DEVICE
, que solo permite que el ticket se muestre en un solo dispositivo. Se recomienda usar el estado ONE_USER_ALL_DEVICES
con la fijación del dispositivo.
Antes de la activación, el usuario puede ver el ticket y el botón de activación en cualquier dispositivo que posea. Una vez activado y fijado a un dispositivo, este mostrará la información de canje y en otros dispositivos se mostrará un botón de activación para permitir que el usuario mueva el boleto a otro dispositivo. Si mover el ticket no es la funcionalidad deseada, pero sí la activación en cualquier dispositivo, es posible actualizarlo durante la activación a ONE_USER_ONE_DEVICE
en lugar de usar la fijación del dispositivo.
Para implementar la fijación de dispositivos, el objeto se debe actualizar con el campo deviceToken
, que se recibe con los parámetros de activación, y se debe configurar hasLinkedDevice
como verdadero en la misma llamada a la API. Si lo deseas, se puede desvincular el ticket de un dispositivo si se configura hasLinkedDevice
como falso en una llamada futura 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 |
Es un array completamente calificado de IDs de objetos que usan el siguiente formato: <issuer_id.object_id> |
expTimeMillis |
Hora de vencimiento en milisegundos desde EPOCH. Luego de la fecha de vencimiento, el mensaje se debe considerar no válido. |
eventType |
Siempre "activate" .
|
nonce |
Nonce para hacer un seguimiento de las entregas duplicadas |
deviceContext |
Es un ID único que genera Google y que representa el dispositivo en el que el usuario realiza la acción. Este ID se debe usar cuando se realicen actualizaciones que vinculen un objeto a un dispositivo. Es posible que este ID no se mantenga constante en las solicitudes futuras de un dispositivo determinado. |