La API de la Billetera de Google proporciona un conjunto predefinido de objetos Passes Classes y Passes Objects que puedes crear instancias y, luego, usar para crear un pase que se emite para un usuario, como GiftCardClass
y GiftCardObject
, GenericClass
y GenericObject
, entre otros.
Cada instancia de clase Passes y Passes Object se define como un objeto JSON, que tiene un conjunto de propiedades obligatorias y opcionales que corresponden al caso de uso específico destinado a ese tipo de pase.
Clases de aprobación
Piensa en una clase Passes como una plantilla compartida que se usa para crear uno o más pases que les enviarás a los usuarios. Una clase Passes define un conjunto común de propiedades que se incluirá 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 próximo evento(lugar, 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 Passes 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 una nueva instancia de objeto Passes.
Pasa objetos
Mientras que una instancia de una clase Passes especifica un conjunto de propiedades compartidas para usar en uno o más pases, un objeto Passes especifica los detalles únicos de un pase específico que se emite a un usuario específico.
Por ejemplo, cuando se crea un pase de entrada para evento con la API de la Billetera de Google, una instancia de EventTicketObject
incluye propiedades para el asiento asignado a ese ticket, ya que esos valores serán únicos para cada entrada emitida.
{ "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 actúa 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 instancia de clase Passes y Passes Object significa que puedes establecer y actualizar propiedades que son comunes a todos los pases emitidos mediante la instancia de clase Passes y propiedades únicas de un pase individual en la instancia de objeto Passes.
Por ejemplo, en el siguiente diagrama de un pase simple de entrada de evento, se muestra cómo se combinan los campos que se definen en el EventTicketClass
compartido y los campos para un boleto específico definido en EventTicketObject
para construir el pase emitido final. 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 la clase Passes se propagarán de inmediato por todas las instancias de objetos Passes que hagan referencia a ella. La próxima vez que se sincronicen, los usuarios verán los cambios que realices en una instancia de clase Passes reflejados en el pase en la app de la Billetera de Google.
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 los reclamos que tú (la entidad emisora) estás haciendo sobre la instancia de Objeto de Pases que se guardará en la Billetera de Google del usuario; lo más importante es el ID de objeto de la instancia de Objeto de Pases que le estás emitiendo al usuario. El JWT se entrega al usuario a través del botón Agregar a la Billetera de Google o el vínculo Agregar a la Billetera de Google.
Cuando un usuario hace clic en el botón o vínculo para agregar un pase emitido a su Billetera de Google, se vincula la instancia del objeto de pases codificada en el JWT 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 Pasar, por lo que no se agregarán copias duplicadas a la billetera del usuario.
Si un usuario quita un pase de la app de la Billetera de Google, la instancia correspondiente del objeto Passes se desvincula automáticamente del usuario, pero no se borra. Esto significa que un usuario puede volver a hacer clic en el botón o vínculo Agregar a la Billetera de Google para guardar el pase sin necesidad de crear una nueva instancia de objeto de pase o JWT.