The files in this directory each implement a demo class for a specific Google Wallet pass type. Each class implements methods for performing tasks such as creating a pass class, updating issuer permissions, and more.
Pass type | File |
---|---|
Event tickets | demo_eventticket.py |
Flight boarding passes | demo_flight.py |
Generic passes | demo_generic.py |
Gift cards | demo_giftcard.py |
Loyalty program membership | demo_loyalty.py |
Offers and promotions | demo_offer.py |
Transit passes | demo_transit.py |
- Python 3.x
- The
pipenv
library - Follow the steps outlined in the Google Wallet prerequisites to create the Google Wallet issuer account and Google Cloud service account
The following environment variables must be set. Alternatively, you can update the code files to set the values directly. They can be found in the constructor for each class file.
Enviroment variable | Description | Example |
---|---|---|
GOOGLE_APPLICATION_CREDENTIALS |
Path to a Google Cloud service account key file | /path/to/key.json |
-
Create a virtual environment in your workspace
# This creates a .venv directory in the current working path python3 -m venv .venv
-
Activate the virtual environment
# This must be run in the same location as the .venv directory source .venv/bin/activate
-
Use
pipenv
to install the dependencies in the Pipfile# This must be run from the same location as the Pipfile pipenv install
-
In your Python code, import a demo class and call its method(s). An example can be found below
# Import the demo class from .demo_eventticket import DemoEventTicket # Create a demo class instance # Creates the authenticated HTTP client demo = DemoEventTicket() # Create a pass class demo.create_class(issuer_id='issuer_id', class_suffix='class_suffix') # Update a pass class demo.update_class(issuer_id='issuer_id', class_suffix='class_suffix') # Patch a pass class demo.patch_class(issuer_id='issuer_id', class_suffix='class_suffix') # Add a message to a pass class demo.add_class_message(issuer_id='issuer_id', class_suffix='class_suffix', header='header', body='body') # Create a pass object demo.create_object(issuer_id='issuer_id', class_suffix='class_suffix', object_suffix='object_suffix') # Update a pass object demo.update_object(issuer_id='issuer_id', object_suffix='object_suffix') # Patch a pass object demo.patch_object(issuer_id='issuer_id', object_suffix='object_suffix') # Add a message to a pass object demo.add_object_message(issuer_id='issuer_id', object_suffix='object_suffix', header='header', body='body') # Expire a pass object demo.expire_object(issuer_id='issuer_id', object_suffix='object_suffix') # Create an "Add to Google Wallet" link # that generates a new pass class and object demo.create_jwt_new_objects(issuer_id='issuer_id', class_suffix='class_suffix', object_suffix='object_suffix') # Create an "Add to Google Wallet" link # that references existing pass classes and objects demo.create_jwt_existing_objects(issuer_id='issuer_id') # Create pass objects in batch demo.batch_create_objects(issuer_id='issuer_id', class_suffix='class_suffix')