Visão geral

Com a API Google Wallet Passes, os parceiros podem especificar um endpoint para a ativação de um bilhete de transporte público. Quando a ativação for necessária, o botão "Ativar" vai aparecer. para o usuário que, quando tocado, chamará o endpoint especificado com os parâmetros descritos abaixo. O endpoint deve garantir que o cartão tenha informações de resgate válidas (código de barras ou inspeção visual) antes da devolução. Nesse momento, o cartão na Carteira do usuário será atualizado. para exibir as informações de resgate. Antes da ativação, qualquer resgate existente informações não serão exibidas.

API Activation

O endpoint de ativação é especificado na API usando activationOptions na classe de transporte público. O parceiro é responsável por manter um endpoint de ativação funcional com e uma latência razoável.

  activationOptions: {
    activationUrl: string
  }
Campo Descrição
activationUrl

string

URL do endpoint do parceiro que seria chamado para solicitações de ativação. O URL deve hospedado em HTTPS, e o robots.txt deve permitir que o caminho do URL possa ser UserAgent:Google-Valuables.

O estado de ativação é armazenado no objeto usando o campo activationStatus. Os status válidos incluem NOT_ACTIVATED e ACTIVATED. A ativação endpoint deve atualizar o objeto com o status ACTIVATED, bem como garantir que o tem informações de resgate válidas, como um código de barras ou parâmetros de inspeção visual. A O campo deviceContext pode ser usado para fixação no dispositivo.

  activationStatus: enum (ActivationStatus),
  deviceContext: {
    deviceToken: string
  },
  hasLinkedDevice: boolean
Campo Descrição
activationStatus

enum (ActivationStatus)

Status de ativação para este objeto de transporte público. Esse status alterará a representação da o tíquete e permitir que os usuários realizem ações, Por exemplo: um botão "Ativar" será renderizado detalhes do ingresso se ele estiver definido como NOT_ACTIVATED.

Os valores aceitáveis são:

  • NOT_ACTIVATED
  • ACTIVATED

deviceContext

object (DeviceContext)

Um contexto de dispositivo ao qual associar o objeto. Se definido, as informações de resgate serão só podem ser devolvidos ao dispositivo especificado.

hasLinkedDevice

boolean

Indica se esse objeto está vinculado a um único dispositivo no momento.

DeviceContext
Campo Descrição
deviceToken

string

Se definido, as informações de resgate só serão retornadas para o dispositivo fornecido após a ativação do objeto. Ele não pode ser usado como um identificador estável para rastrear o dispositivo de um usuário. Ela podem mudar para cartões diferentes no mesmo dispositivo ou até em ativações para o mesmo dispositivo. Ao configurar essa opção, os autores da chamada também precisam definir hasLinkedDevice no objeto que está sendo ativado.

O deviceToken é recebido parâmetros de ativação Campo deviceContext

Fixação no dispositivo

A fixação no dispositivo é um recurso que permite ao usuário ativar o ingresso em um dispositivo e ter a as informações de resgate de ingressos são exibidas apenas nesse dispositivo. Isso é separado do multipleDevicesAndHoldersAllowedStatus de ONE_USER_ONE_DEVICE, que permite que o ingresso seja exibido em um único dispositivo. Recomendamos usar o atributo de status ONE_USER_ALL_DEVICES com fixação no dispositivo.

Antes da ativação, o usuário pode ver o ingresso e o botão "Ativar" em qualquer dispositivo por conta própria. Depois de ativado e fixado em um dispositivo, o aparelho fixado vai mostrar informações de resgate e outros dispositivos exibirão um botão "Ativar" para permitir que o usuário mova o ingresso para outro dispositivo. Se mover a passagem não for uma funcionalidade desejada, mas a ativação em qualquer dispositivo for, é possível atualizar o tíquete durante a ativação para ONE_USER_ONE_DEVICE em vez do que usar a fixação no dispositivo.

Para implementar a fixação no dispositivo, o objeto precisa ser atualizado com o campo deviceToken. que é recebido com os parâmetros de ativação, bem como definindo hasLinkedDevice como verdadeiro na mesma chamada de API. Se quiser, o tíquete pode ser desvinculado de um dispositivo definindo hasLinkedDevice como falso em uma chamada de API futura.

diagrama de sequência para fixação no dispositivo

Parâmetros de ativação

A solicitação para o endpoint de ativação vai conter os parâmetros a seguir.

Exemplo 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 Descrição
classId

ID de classe totalmente qualificado. Usa o seguinte formato:

<issuer_id.class_id>
objectIds

Matriz totalmente qualificada de IDs de objetos que usam o seguinte formato:

<issuer_id.object_id>
expTimeMillis Prazo de validade em milissegundos desde EPOCH. Depois do prazo de validade, ela precisa ser considerada inválida.
eventType Sempre "activate".
nonce Valor de uso único para rastrear entregas duplicadas.
deviceContext

Um ID exclusivo gerado pelo Google que representa o dispositivo em que o usuário está realizando ações. Esse ID precisa ser usado ao fazer atualizações que vinculam um objeto a um dispositivo.

Esse ID pode não ser constante para solicitações futuras de um determinado dispositivo.