Stars: 844
Forks: 204
Pull Requests: 45
Issues: 87
Watchers: 55
Last Updated: 2023-07-27 06:24:05
💳 PHP class for creating passes for Wallet on iOS.
License: MIT License
Languages: PHP
This class provides the functionality to create passes for Wallet in Apple's iOS. It creates,
signs and packages the pass as a .pkpass
file according to Apple's documentation.
Simply run the following command in your project's root directory to install via Composer:
composer require pkpass/pkpass
Or add to your composer.json: "pkpass/pkpass": "^2.0.0"
Please take a look at the examples/example.php file for example usage. For more info on the JSON for the pass and how to style it, take a look at the docs at developers.apple.com.
addFile
: add a file without locale like icon.png
addRemoteFile
: add a file from a url without locale like https://xyz.io/icon.png
addLocaleFile
: add a localized file like strip.png
addLocaleRemoteFile
: add a localized file from a url like https://xyz.io/strip.png
Export 2 items…
..p12
) as described above and upload it to your server.passTypeIdentifier
and teamIndentifier
to the correct values on lines 29
and 31 (teamIndentifier
can be found on
the Developer Portal).After completing these steps, you should be ready to go. Upload all the files to your server and navigate to the address of the examples/example.php file on your iPhone.
If you aren't able to open your pass on an iPhone, plug the iPhone into a Mac and open the 'Console' application. On the left, you can select your iPhone. You will then be able to inspect any errors that occur while adding the pass:
Trust evaluate failure: [leaf TemporalValidity]
: If you see this error, your pass was signed with an outdated
certificate.Trust evaluate failure: [leaf LeafMarkerOid]
: You did not leave the name of the certificate empty while creating it
in the developer portal.Version 2.1.0 - April 2023
Version 2.0.2 - October 2022
ZipArchive::OVERWRITE
method of opening ZIP due to PHP 8 deprecation (#120).Version 2.0.1 - October 2022
Version 2.0.0 - September 2022
$json
parameter.setJSON()
method.checkError()
and getError()
methods in favor of exceptions.Please read the instructions above and consult the Wallet Documentation before submitting tickets or requesting support. It might also be worth to check Stackoverflow, which contains quite a few questions about this library.