spatie/laravel-mobile-pass
Generate Apple Wallet and Google Wallet passes in Laravel (tickets, boarding passes, coupons, membership cards). Create and sign pass files, serve them to users, and push updates to installed passes to keep details current across devices.
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.7.0...1.7.1
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.6.0...1.7.0
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.5.0...1.6.0
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.4.0...1.5.0
Apple pass builders can now set a background image, matching what the docs and Apple's pass spec describe for event tickets. Previously only setStripImage and setThumbnailImage were available.
EventTicketPassBuilder::make()
// ...
->setBackgroundImage(public_path('images/background.png'))
->save();
A remote variant, setRemoteBackgroundImage(), is available as well. The image (along with its @2x and @3x densities) is bundled into the generated .pkpass.
Implemented in #50, closes #49.
Google Wallet pass classes now support the shared building blocks that the Google Pay & Wallet console exposes: geographic locations, the links module (the "main page URL" and any other URIs), text modules, and image modules.
These are available on every class type (GenericPassClass, LoyaltyPassClass, OfferPassClass, EventTicketPassClass, BoardingPassClass):
EventTicketPassClass::make('beatles-shea-1965')
->setEventName('The Beatles | Live at Shea')
->addLocation(40.7569, -73.8458)
->addLink('https://fabfour.example.com', 'Official site')
->addTextModule('Doors', 'Doors open at 18:30')
->addImageModule('https://example.com/seating-chart.png', 'seating')
->save();
Values hydrate back when fetching a class through find() or all(), readable via getLocations(), getLinks(), getTextModules(), and getImageModules(). The change is fully backwards compatible.
Implemented in #48, closes #47.
mobile_pass model in the Apple pass builder and the check-for-updates request, so overriding mobile-pass.models.mobile_pass (e.g. to use a custom table) is honored throughout the package by @freekmurze in https://github.com/spatie/laravel-mobile-pass/pull/43Fixes #42
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.2.0...1.2.1
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.1.0...1.2.0
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.5...1.1.0
pass_serial by @freekmurze in https://github.com/spatie/laravel-mobile-pass/pull/34MobilePass model by https://github.com/spatie/laravel-mobile-pass/pull/35\$keyType = 'string' so Apple device can resolve id by @pmartelletti in https://github.com/spatie/laravel-mobile-pass/pull/36PR #34 includes a required schema migration. See UPGRADING.md for the paste-in migration.
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.4...1.0.5
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.3...1.0.4
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.2...1.0.3
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.1...1.0.2
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.0...1.0.1
mobile-pass.apple.webservice.host now throws InvalidConfig::webserviceHostMustBeHttps instead of silently producing a pass that Apple Wallet rejects (Apple requires webServiceURL to be HTTPS).pkpass downloads are now served with Content-Disposition: inline instead of attachment, so Safari opens the Wallet preview directly (other browsers still download the file, as they have no Wallet handler)pass.json now includes webServiceURL derived from mobile-pass.apple.webservice.host, so iOS can register devices and receive pass updates$pass->addToWalletUrl() unified across Apple and Google$pass->expire() unified across Apple and GoogleNotifyGoogleOfPassUpdateAction automatically PATCHes Google-side objects when MobilePass is updated/mobile-pass/google/callbacks with GoogleMobilePassSaved / GoogleMobilePassRemoved Laravel events$pass->googleEvents relation and $pass->isCurrentlySavedToGoogleWallet() helperPushPassUpdateJob queueing opt-in via MOBILE_PASS_QUEUE_CONNECTION.pkpass download route backing addToWalletUrl()EventTicketPassBuilder on the Apple side (previously missing)docs/basic-usage/ and docs/advanced-usage/MobilePass::boot() is now platform-aware and dispatches a PushPassUpdateJob (previously called NotifyAppleOfPassUpdateAction synchronously)Image::fromUrl() is the supported path)Full Changelog: https://github.com/spatie/laravel-mobile-pass/commits/0.0.1
How can I help you explore Laravel packages today?