Laravel Passgenerator
Open Source – Ohne frei verfügbare Software wäre der technologische Fortschritt heute nicht, wo er ist – davon sind wir überzeugt. Aus diesem Grunde stellten wir im Juli unser erstes Package zur freien Nutzung unter der GPL 3.0 zur Verfügung. Damit ist der Laravel Passgenerator das erste von vielen weiteren Packages, die wir in Zukunft zur freien Nutzung veröffentlichen werden – seid gespannt! In diesem Artikel zeigen wir euch, wie ihr den Laravel Passgenerator installieren und einrichten könnt und wie euren ersten Pass für die Apple Wallet generiert.
Für den weiteren Ablauf müssen Zertifikate erstellt und konvertiert werden. Da dieser Prozess je nach Betriebssystem unterschiedliche Tools erfordert, zeigen wir hier exemplarisch die Schritte unter macOS.
Benötigt wird ein Laravel Projekt ab Version 7. Außerdem müssen die PHP-Erweiterungen ext-json, ext-zip, sowie ext-openssl installiert sein. Zudem muss ein Apple Developer Account vorhanden sein, um ein Zertifikat zu generieren, mit dem Apple Geräte den Ersteller eines Wallet Passes verifizieren können.
Für die erfolgreiche Erstellung eines Apple Wallet Passes benötigen wir eine Pass Type ID, sowie zwei verschiedene Zertifikate. Eines müssen wir selbst generieren, und das andere können wir direkt von Apple herunterladen.
Nachfolgend geben wir eine Anleitung zu den nötigen Schritten.
Zuerst müssen wir ein Certificate Signing Request (CSR) erstellen, mit dem wir unser Zertifikat generieren können. Das CSR teilt Apple essenziell mit, wer wir sind. Mit dieser Info kann dann bei der Certificate Authority ein Zertifikat generiert werden.
Wie das geht, findet ihr in der Dokumentation von Apple.
1. Auf die Apple Developer Certificates & Identifiers-Verwaltung gehen. Hierfür müsst ihr euch mit eurem Apple Developer Account anmelden.
2. Links auf Identifiers klicken und ein neues erstellen
3. „Pass Type IDs“ auswählen
4. Hier muss ein Identifier und eine Beschreibung vergeben werden. Der Identifier sollte im „Reverse-Domain“ Stil sein, wie wir es von App Identifiern kennen. Wenn unsere Domain beispielsweise byte5.de ist, können wir hier z.B. pass.de.byte5.coupon verwenden.
5. Nun klicken wir auf „Register“ und unser Pass Type Identifier ist erstellt.
1. Jetzt wählen wir auf der „Identifiers“-Seite oben rechts „Pass Type IDs“ aus und klicken auf unseren eben erstellten Pass Type Identifier.
2. Hier klicken wir auf „Create Certificate“ und laden unser eben erstelltes CSR hoch.
3. Anschließend können wir mit einem Klick auf den „Download“ Button unser Pass Type Zertifikat herunterladen.
Das Zertifikat liegt nun als .cer-Datei vor, wir benötigen es allerdings als .p12 Datei. Um es umzuwandeln, können wir das Zertifikat einfach in das Mac-Programm „Keychain Access“ ziehen.
Mit einem Rechtsklick auf unser Zertifikat wählen wir nun „Export“ und können es als .p12 abspeichern. Hier muss ein Passwort gesetzt werden, es ist wichtig sich dieses zu merken, es wird später benötigt!
Das zweite Zertifikat kann ganz einfach auf der Apple PKI-Seite heruntergeladen werden. Dieses importieren wir wieder in Keychain Access und exportieren es wie beschrieben, dieses Mal allerdings als .pem Datei.
Da wir jetzt alle erforderlichen Zertifikate haben, können wir den Laravel Passgenerator installieren. Dazu führen wir folgenden Command aus:
Nun müssen folgende Variablen in unsere .env Datei eingefügt werden. Die Pfade und das Disk können selbstverständlich angepasst werden.
Die Variablen oben gehen von folgender Dateistruktur aus:
Jetzt sind wir startklar!
Wir wollen hier ein Eventticket für unser nächstes Event erstellen, die Laravel Night! In dem Bild oben sehen wir alle Bereiche, die wir dafür nutzen können. Jeder Pass benötigt eine sogenannte Pass Definition, das sind Attribute, die definieren welche Infos auf einem Pass angezeigt werden. Im nachfolgenden Code zeigen wir, was benötigt wird, um unser Event Ticket zu generieren. In den Kommentaren über den jeweiligen Zeilen findet ihr Erklärungen.
Und schon ist unser Event Ticket Pass fertig. Die .pkpass Datei können Nutzer:innen jetzt ganz einfach in ihre Wallet integrieren. Die hier generierten Passes werden außerdem von Google Wallet unterstützt!
Da ihr hiermit nun euer Ticket für die Laravel Night erhalten habt, könnt ihr euch gerne hier noch kostenlos dafür anmelden. Kommen könnt ihr selbstverständlich auch ohne dieses Event-Ticket!
Wir freuen uns auf euch!
Senior PHP-Entwickler
Laurent Goerres
Laurent bringt als PHP-Entwickler nicht nur technisches Know-how, sondern auch eine große Portion Genauigkeit und Teamgeist mit. Er liebt es, sich tief in Code einzudenken – am liebsten mit einer Tasse richtig gutem Kaffee aus seiner Siebträgermaschine.
Lerne die Community kennen
Wir veranstalten regelmäßige Meetups und tauschen uns aus.
Zum Meetup