This class provides the functionality to create an Pass for Passbook in Apple's iOS 6 and newer on-the-fly. It creates, signs and packages the Pass as a .pkpass file according to Apple's documentation.
Please also take a look at my repository PHP-Passkit, which includes the PKTemplate and PKValidate classes, to easily manage templates and validate pass files.
- PHP 5
- PHP ZIP Support (May be installed by default)
- Access to filesystem (Script must be able to create temporary folders)
Please take a look at the 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.
Demo:
- Simple example (example.php): http://apps.tomttb.com/pkpass/example.php
- Full example (full_sample/index.php): http://apps.tomttb.com/pkpass/full_sample
- Starbucks example (starbucks_sample/index.php): http://apps.tomttb.com/pkpass/starbucks_sample
- Go to the iOS Provisioning portal
- Create a new Pass Type ID
- Request the certificate like shown
- Download the .cer file and drag it into Keychain Access
- Right click the certificate in Keychain Access and choose
Export 'pass.<id>'…
- Choose a password and export the file to a folder
- Request the Pass certificate (
.p12
) and upload it to your server - Set the correct path and password on line 6 and 7
- Download and import your WWDR Intermediate certificate to Keychain, export as
.pem
and set the correct path on line 8 - Change the
passTypeIdentifier
andteamIndentifier
to the correct values, which can be found on the iOS Provisioning portal after clicking on 'Configure' next to the Pass ID, on line 11 and 15
After completing these steps, you should be ready to go. Upload all the files to your server and navigate to the address of the example.php file on your iPhone.
Please add an Issue to this Github repository, mail me at tom [at] tomttb.com or tweet me @tschoffelen.