Conversation
Contributor
|
All contributors have signed the CLA ✍️ ✅ |
Author
|
I have read the CLA Document and I hereby sign the CLA |
zigman79
force-pushed
the
feat/ticket-wallet-passes
branch
from
September 15, 2026 09:56
5ebe428 to
1088154
Compare
Public endpoints let active attendees download an Apple Wallet .pkpass or open a signed Google Wallet save link. The ticket page shows a button per provider when its credentials are configured. - Credentials are supplied as base64 env values for both providers and documented for the all-in-one image - ext-zip is added to every PHP image since pkpass needs ZipArchive - Backend and frontend translations for all supported locales
zigman79
force-pushed
the
feat/ticket-wallet-passes
branch
from
September 15, 2026 09:57
1088154 to
828d55a
Compare
Author
|
recheck |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes I've made
GET /public/events/{event_id}/attendees/{attendee_short_id}/wallet/applereturns a signed.pkpass,.../wallet/googleredirects to a signed Google Wallet save link. Both are rate limited and return a translated 404 for unknown, cancelled or unpaid attendees.AttendeeResourcePublicexposeswallet_passes.apple/wallet_passes.googleflags derived from configuration. The attendee ticket page shows "Add to Apple Wallet" / "Add to Google Wallet" buttons for non-void tickets when the provider is configured.APPLE_WALLET_*,GOOGLE_WALLET_*) so they work with Docker Compose secrets and single-line env files. Wired throughconfig/services.php,.env.example, the all-in-one compose file and README.pkpass/pkpassandfirebase/php-jwt;ext-zipadded to all PHP images because pkpass needsZipArchive.The feature is opt-in: without credentials nothing changes in the UI or API responses beyond the two
falseflags.Why I've made these changes
Attendees expect to add tickets to their phone wallet. A wallet pass keeps the QR code available offline and surfaces it on the lock screen around event time, without a separate app. Closes #189.
How I've tested these changes
tests/Unit/Services/Domain/Wallet; full unit suite, Pint,scramble:analyzeand the OpenAPI generation test pass.Accept-Language: de); with test credentials the Apple endpoint returns a.pkpasswhose manifest hashes and PKCS7 signature verify, and the Google endpoint redirects topay.google.comwith an RS256 JWT whose signature and payload (class, object, barcode, valid time interval, ticket link) verify.Checklist
🤖 Generated with Claude Code