Casi todos los pases que puedes emitir para que un usuario final los guarde en su Billetera de Google se definen en función de dos componentes: una clase Passes y un objeto Passes. Cada vez que emitas un pase a un usuario, necesitarás una instancia de una clase Passes y un objeto Passes, que le indique a la API de la Billetera de Google qué tipo de pase debe construir y los detalles que se mostrarán en el pase, como el valor de la tarjeta de regalo o el nombre del titular de la entrada.
La API de la Billetera de Google proporciona un conjunto predefinido de clases Passes y objetos Passes de los que creas instancias y que luego usas para crear un pase que se emite a un usuario, como GiftCardClass
y GiftCardObject
, GenericClass
y GenericObject
, entre otros.
Cada instancia de clase Passes y objeto Passes se define como un objeto JSON, que tiene un conjunto de propiedades obligatorias y opcionales que corresponden al caso de uso específico para ese tipo de pase.
Clases de pases
Piensa en una clase Passes como una plantilla compartida que se usa para crear uno o más pases. que emitirás a tus usuarios. La clase Passes define un conjunto común de propiedades que se incluirán en todos los pases que hagan referencia a él.
Por ejemplo, la siguiente instancia de EventTicketClass
define los campos que son comunes a todas las entradas emitidas para un evento próximo(establecimiento, nombre del evento, entidad emisora, fecha y hora).
{ "id": "ISSUER_ID.EVENT_CLASS_ID", "issuerName": "[TEST ONLY] Heraldic Event", "localizedIssuerName": { "defaultValue": { "language": "en-US", "value": "[TEST ONLY] Heraldic Event" } }, "eventName": { "defaultValue": { "language": "en-US", "value": "Google Live" } }, "venue": { "name": { "defaultValue": { "language": "en-US", "value": "Shoreline Amphitheater" } }, "address": { "defaultValue": { "language": "en-US", "value": "ADDRESS_OF_THE_VENUE" } } }, "dateTime": { "start": "2023-04-12T11:30" }, "reviewStatus": "UNDER_REVIEW" }
Cada instancia de una clase Pases requiere una propiedad id
, que debes especificar. Este ID de clase
actúa como un identificador único al que harás referencia cada vez que lo uses para crear un nuevo objeto Passes
instancia.
Pasa objetos
Mientras que una instancia de una clase Pases especifica un conjunto de propiedades compartidas para usar en una o más un objeto Passes especifica los detalles únicos de un pase específico que se emite a un usuario determinado.
Por ejemplo, cuando se crea un Pase de entrada para evento con la API de la Billetera de Google, se crea un evento EventTicketObject
incluye propiedades para la licencia asignada a ese ticket, ya que esos valores serán únicos para cada
boleto emitido.
{ "id": "ISSUER_ID.OBJECT_ID", "classId": "ISSUER_ID.EVENT_CLASS_ID", "state": "ACTIVE", "seatInfo": { "seat": { "defaultValue": { "language": "en-us", "value": "9" } }, "row": { "defaultValue": { "language": "en-us", "value": "L" } }, "section": { "defaultValue": { "language": "en-us", "value": "45" } }, "gate": { "defaultValue": { "language": "en-us", "value": "7C" } } }, "barcode": { "type": "BARCODE_TYPE_UNSPECIFIED", "value": "BARCODE_VALUE", "alternateText": "" } }
Cada instancia de un objeto Passes requiere una propiedad id
, que debes especificar. Este ID de objeto
funciona como un identificador único al que harás referencia cuando emitas el pase a un usuario.
Cómo funcionan las clases Passes con los objetos Passes
Los objetos Passes deben extender una instancia de una clase Passes, ya sea haciendo referencia a su ID de clase o incluyendo la definición completa de la clase Passes. Esta relación entre una clase Passes y una instancia de objeto Passes significa que puedes establecer y actualizar las propiedades que son comunes a todos los pases emitidos a través de la instancia de la clase Passes, y propiedades únicas de un pase individual en la instancia del objeto Passes.
Por ejemplo, en el siguiente diagrama de un pase simple de Event Ticket, se muestra cómo los campos que se definen en el EventTicketClass
compartido y los campos para un ticket específico definidos en EventTicketObject
se combinan para construir el pase final emitido. Observa cómo se hace referencia al ID de la clase Passes en la propiedad classId
del objeto Passes.
Los cambios realizados en una instancia de clase Passes se propagarán de inmediato en todas las instancias de objetos Passes. que hacen referencia a él. Los usuarios verán los cambios que realices en una instancia de la clase Pases reflejados en el pase en la app de la Billetera de Google la próxima vez que se sincronicen.
Agrega un pase a la Billetera de Google de un usuario
Para agregar un pase a la Billetera de Google de un usuario, debes crear un token web JSON (JWT) que contenga reclamaciones que usted (la entidad emisora) realiza en relación con la instancia de Objeto Passes que se guardará en la Billetera de Google del usuario Lo más importante es el ID de objeto de la instancia de objeto Passes que emites al usuario. El token JWT se envía al usuario mediante el botón Agregar a la Billetera de Google o Agregar a la Billetera de Google. enlace.
Después de que un usuario hace clic en el botón o vínculo para agregar un pase emitido a su Billetera de Google, aparece un vínculo Pasa la instancia de objeto codificado en JWT y está vinculada a la Cuenta de Google de ese usuario. Esto significa que cuando el usuario vuelve a hacer clic en el botón, ya existe un vínculo a ese objeto Passes, así que duplica las copias no se agregarán a la billetera del usuario.
Si un usuario quita un pase de la app de la Billetera de Google, se aplica la siguiente instancia del Objeto Passes se desvincula automáticamente del usuario, pero no se borra. Esto significa que un usuario puede hacer clic en el Vuelve a agregar a la Billetera de Google para guardar el pase sin necesidad de una nueva instancia de objeto Passes o JWT que se creará.