Visão geral

Com a API Google Wallet Passes, os parceiros salvam códigos de barras rotativos na Carteira do Google. Esses códigos de barras são válidos apenas por um curto período, o que aumenta a segurança porque reduz o risco de alguém fazer captura de tela deles. Os códigos de barras são gerados no dispositivo de acordo com a RFC 6238 (link em inglês), e o parceiro fornece a chave secreta. No entanto, o Google também oferece uma API para o upload em lote dos códigos de barra, caso o parceiro queira gerá-los por conta própria. Esses códigos de barras rotativos serão transmitidos para os smartphones dos usuários e exibidos por um curto período. Chamamos essa solução de códigos de barras rotativos gerados pelo parceiro.

API Partner-Generated Rotating Barcode

Os códigos de barras rotativos gerados pelo parceiro são criados usando o mesmo objeto RotatingBarcode. Apenas o tipo é necessário, mas também recomendamos criar um pequeno conjunto inicial de códigos de barras (cerca de 10 minutos) e enviá-los em initialRotatingBarcodeValues. O parceiro é responsável por garantir que sempre haja um código de barras válido pronto para o usuário, e initialRotatingBarcodeValues permite que a chamada de upload em lote subsequente seja assíncrona.

  rotatingBarcode {
    initialRotatingBarcodeValues: object (RotatingBarcodeValues),
    type: enum (BarcodeType),
  }
Campo Descrição
initialRotatingBarcodeValues

object (RotatingBarcodeValues)

Os valores a serem codificados no código de barras. Ao menos um valor é obrigatório. Esses códigos de barras iniciais devem preencher a lacuna entre o momento em que o usuário adquire o cartão e o momento em que a próxima chamada de upload em lote é feita.

type

enum (BarcodeType)

Obrigatório. O tipo do código de barras.

Os valores aceitáveis são:

  • QR_CODE
  • PDF_417

RotatingBarcodeValues
Campo Descrição
startDateTime

string

A data/hora em que o primeiro código de barras é válido. Os códigos de barras serão alternados usando periodMillis.

É uma data/hora em formato estendido ISO 8601, com compensação.

values[]

string

Os valores a serem codificados no código de barras. Ao menos um valor é obrigatório.

Não há um número máximo de valores, mas o tamanho do corpo da solicitação não pode exceder 5 MB.

periodMillis

number

O período de validade de cada código de barras.

Atualização em lote de valores de código de barras

Depois da criação do objeto RotatingBarcode, recomendamos fazer upload de códigos de barras de um dia, todos os dias, até que o cartão do usuário expire. Isso pode ser feito com o endpoint da API REST a seguir.

Método: transitobject.uploadrotatingbarcodevalues

Faz upload dos valores de códigos de barras rotativos no objeto de transporte público indicado pelo ID de objeto fornecido.

Solicitação HTTP

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

Parâmetros de caminho

Parâmetro Descrição
resourceId

string

O identificador exclusivo de um objeto.

Corpo da solicitação

O corpo da solicitação (não pode exceder 5 MB) contém uma instância de RotatingBarcodeValues.

Método: transitobject.downloadrotatingbarcodevalues

Faz o download dos valores de códigos de barras rotativos referentes ao objeto de transporte público referenciado pelo código informado. Isso é útil quando os parceiros querem verificar o lote mais recente.

Solicitação HTTP

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

Parâmetros de caminho

Parâmetro Descrição
resourceId

string

O identificador exclusivo de um objeto.

Mecanismos substitutos

Se um RotatingBarcode válido não tiver códigos de barras válidos para exibir (eles ainda não foram enviados ou todos os códigos de barras atuais foram usados), uma mensagem de erro será exibida ao usuário.