Descripción general

La API Passes de Google Wallet les permite a los socios guardar códigos de barras rotativos en la Billetera de Google. Estos códigos de barras solo son válidos durante un período breve, lo que proporciona seguridad adicional para reducir el riesgo de capturas de pantalla de códigos de barras. Los códigos de barras se generan en el dispositivo de acuerdo con RFC 6238, y el socio proporciona la clave secreta. Sin embargo, si un socio prefiere generar los códigos de barras en sí, Google proporciona una API para que los códigos de barras se puedan subir por lotes a Google. Luego, estos códigos de barras se enviarán a los teléfonos de los usuarios, en los que actuarán como códigos de barras rotativos, y se mostrarán durante un período breve. Nos referimos a esta solución como códigos de barras rotativas generados por socios.

API de código de barras rotativas generada por socios

Los códigos de barras rotativos generados por el socio se crean con el mismo objeto RotatingBarcode. Solo el tipo es obligatorio, aunque también recomendamos crear un pequeño conjunto inicial de códigos de barras (valor aproximado de 10 minutos) y enviarlos en initialRotatingBarcodeValues. El socio es responsable de garantizar que siempre haya un código de barras válido listo para el usuario y que initialRotatingBarcodeValues permita que la llamada de carga por lotes posterior sea asíncrona.

  rotatingBarcode {
    initialRotatingBarcodeValues: object (RotatingBarcodeValues),
    type: enum (BarcodeType),
  }
Campo Descripción
initialRotatingBarcodeValues

object (RotatingBarcodeValues)

Los valores que se deben codificar en el código de barras. Debes ingresar al menos un valor. Estos códigos de barras iniciales están diseñados para cerrar la brecha entre el momento en que el usuario adquiere su pase por primera vez y el momento en que se realiza la llamada de carga por lotes posterior.

type

enum (BarcodeType)

Obligatorio. Es el tipo de código de barras.

Los valores aceptables son:

  • QR_CODE
  • PDF_417

Rotar los valores de código de barras
Campo Descripción
startDateTime

string

Fecha y hora de la validez del primer código de barras. Los códigos de barras se rotarán mediante periodMillis.

Esta es una fecha/hora de formato extendido ISO 8601, con desplazamiento.

values[]

string

Los valores que se deben codificar en el código de barras. Debes ingresar al menos un valor.

No hay una cantidad máxima de valores, pero ten en cuenta que el tamaño del cuerpo de la solicitud no puede exceder los 5 MB.

periodMillis

number

La cantidad de tiempo de validez de cada código de barras.

Actualización por lotes de valores de códigos de barras

Después de crear el objeto RotatingBarcode, te recomendamos subir los códigos de barras diarios de un día a día hasta que venza el pase del usuario. Esto se puede hacer con el siguiente extremo de la API de REST.

Método: transitobject.uploadrotatingbarcodevalues

Sube valores de códigos de barras rotativos al objeto de transporte público al que hace referencia el ID de objeto especificado.

Solicitud HTTP

POST https://walletobjects.googleapis.com/upload/walletobjects/v1/transitObject/{resourc eId}/uploadRotatingBarcodeValues

Parámetros de ruta de acceso

Parámetro Descripción
resourceId

string

El identificador único de un objeto.

Cuerpo de la solicitud

El cuerpo de la solicitud (que no puede superar los 5 MB) contiene una instancia de RotatingBarcodeValues.

Método: transitobject.downloadrotatingbarcodevalues

Descarga los valores rotativos del código de barras para el objeto de transporte público al que hace referencia el ID de objeto determinado. Esto es útil si los socios quieren verificar el lote más reciente.

Solicitud HTTP

GET https://walletobjects.googleapis.com/walletobjects/v1/transitObject/{resourceId}/do wnloadRotatingBarcodeValues?alt=media

Parámetros de ruta de acceso

Parámetro Descripción
resourceId

string

El identificador único de un objeto.

Mecanismos de resguardo

Ten en cuenta que, si un objeto RotatingBarcode no válido no tiene códigos de barras para mostrar (aún no se subieron o se usaron todos los códigos de barras actuales), se mostrará un mensaje de error al usuario.