Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Support for Digital Tickets in Phone Wallets #182

Open
Corborax opened this issue Sep 25, 2024 · 1 comment
Open

Add Support for Digital Tickets in Phone Wallets #182

Corborax opened this issue Sep 25, 2024 · 1 comment

Comments

@Corborax
Copy link
Member

Corborax commented Sep 25, 2024

Description:

We need to implement the functionality to store the Data Matrix or QR code in the user’s phone wallet (e.g., Apple Wallet, Google Pay). This will allow users to access their digital tickets easily without needing to open the app every time.

  • Users should have the option to save their event QR/Data Matrix code in their phone’s wallet.
  • Ensure that the digital ticket can be scanned from the wallet for all relevant event activities.
  • Investigate compatibility with common mobile wallet apps (Apple Wallet, Google Pay, etc.).

Tasks:

  • Create an option for users to add their digital QR/Data Matrix code to their phone wallet as a digital Eurofurence Event ticket.
  • Ensure cross-platform support for both iOS and Android.
  • Test the scannability and usability of the digital ticket for event-related activities.

(from the BOD)

@Rain336
Copy link

Rain336 commented Nov 27, 2024

Here a quick rundown on how Apple Wallet/Google Pay work:

Apple Wallet (PKPass)

Apple Wallet works by the user clicking a link that downloads a .pkpass file which is then imported.
A .pkpass is just a zip file with a certain folder structure and json files describing how the ticket should look.
The finished .pkpass file then need to be signed using a signing key created in the Apple Developer Portal, else the Apple Wallet won't accept it.
Google Pay also accepts .pkpass files, they don't require the singing of cause.

Google Pay (JWT/API)

Google Pay works using a special link (https://pay.google.com/gp/v/save/) with a signed JWT at the end, the singing key for that JWT is provided by Google with the JWT containing pass classes and pass objects.
A pass class defines the design of a ticket and the pass object the actual per person data of the ticket.
The interesting part now is that either of these can be defined using an API call, in the case of the pass class, Google also provides a visual designer. So instead of providing the whole pass class/object json, only the Id is provided.

Updating Passes

Since Google Pay also supports .pkpass one way would be to just provide .pkpass files, but this would mean we cannot update the pass in Google Pay, due to the way that .pkpass files are updated over APNS. So if updating passes is needed, we have to support both methods.

Integration

Since the passes are not necessarily dependent on the App, I would suggest we also provide a way to download a pass on the registration website, with a Add to Google Wallet and Add to Apple Wallet button. The registration just would have to save two links that could be generated by the App's backend. That way the registration backend team wouldn't have to maintain it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants