mirror of
https://github.com/google-wallet/rest-samples.git
synced 2026-01-09 05:28:11 -05:00
Updated URL from: https://pipenv.pypa.io/en/latest/install/ To: https://pipenv.pypa.io/en/latest/installation/
127 lines
4.6 KiB
Markdown
127 lines
4.6 KiB
Markdown
# Google Wallet Python samples
|
|
|
|
## Overview
|
|
|
|
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`](./demo_eventticket.py) |
|
|
| Flight boarding passes | [`demo_flight.py`](./demo_flight.py) |
|
|
| Generic passes | [`demo_generic.py`](./demo_generic.py) |
|
|
| Gift cards | [`demo_giftcard.py`](./demo_giftcard.py) |
|
|
| Loyalty program membership | [`demo_loyalty.py`](./demo_loyalty.py) |
|
|
| Offers and promotions | [`demo_offer.py`](./demo_offer.py) |
|
|
| Transit passes | [`demo_transit.py`](./demo_transit.py) |
|
|
|
|
## Prerequisites
|
|
|
|
* Python 3.x
|
|
* The [`pipenv` library](https://pipenv.pypa.io/en/latest/installation/)
|
|
* Follow the steps outlined in the
|
|
[Google Wallet prerequisites](https://developers.google.com/wallet/generic/web/prerequisites)
|
|
to create the Google Wallet issuer account and Google Cloud service account
|
|
|
|
## Environment variables
|
|
|
|
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` |
|
|
|
|
## How to use the code samples
|
|
|
|
1. Create a [virtual environment](https://docs.python.org/3/library/venv.html)
|
|
in your workspace
|
|
|
|
```bash
|
|
# This creates a .venv directory in the current working path
|
|
python3 -m venv .venv
|
|
```
|
|
|
|
2. Activate the virtual environment
|
|
|
|
```bash
|
|
# This must be run in the same location as the .venv directory
|
|
source .venv/bin/activate
|
|
```
|
|
|
|
3. Use `pipenv` to install the dependencies in the [Pipfile](./Pipfile)
|
|
|
|
```bash
|
|
# This must be run from the same location as the Pipfile
|
|
pipenv install
|
|
```
|
|
|
|
4. In your Python code, import a demo class and call its method(s). An example
|
|
can be found below
|
|
|
|
```python
|
|
# 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')
|
|
```
|