Robotics and Intelligent Systems
Using the Ios Passkit API for Boarding Pass and Ticket Management in Apps
Table of Contents
Qu'est-ce que l'API PassKit ?
Le cadre PassKit d'Apple est un ensemble complet d'outils et de services qui permettent aux développeurs iOS de créer, distribuer et gérer des cartes numériques pour Apple Wallet. Un laissez-passer peut être une carte d'embarquement, un billet d'événement, une carte de fidélité, une carte cadeau, un coupon ou tout autre type de justificatif qui bénéficie d'un stockage sécurisé sur un appareil Utilisateur. L'API PassKit gère tout de la génération de passes et de la signature aux mises à jour en temps réel via des notifications push.
Chaque passe est empaqueté sous forme de fichier , une archive ZIP signée contenant des données, des images et des chaînes de localisation JSON. Lorsqu'un utilisateur ouvre ce fichier (via un lien, un courriel ou un téléchargement dans l'application), iOS valide la signature et présente le passe dans Wallet. À partir de ce moment, le passe vit sur l'appareil, peut être mis à jour en direct et fonctionne même lorsque les informations critiques comme les codes barres ou les codes QR sont hors ligne.
Comment fonctionne l'API PassKit
Passer la structure du fichier
Un fichier est une archive ZIP standard qui doit contenir au moins un manifeste , un (une liste de tous les fichiers avec leurs hachages SHA‐1 et un fichier signature (). Le fichier définit tous les contenus de la passe : champs d'en-tête, champs primaires, champs secondaires, champs auxiliaires, codes-barres et type de transit pour les cartes d'embarquement. Les images (logo, icône, fond, bande, etc.) sont placées dans des sous-répertoires pour chaque résolution d'affichage (p. ex., pour 1x, pour 2x, pour 3x).
Signature et distribution
Apple exige que tous les passes soient signés cryptographiquement à l'aide d'un certificat émis par un développeur (obtenu par le portail Apple Developer). La signature vérifie l'authenticité et l'intégrité des passes. Une fois signé, le passe peut être hébergé sur un serveur et distribué via une URL qui déclenche l'installation du Wallet.
Mises à jour en temps réel via Push
L'une des caractéristiques les plus puissantes de PassKit est la possibilité de mettre à jour les passes après leur délivrance. Lorsqu'un vol change de grilles ou un ticket est mis à niveau, le serveur peut envoyer une notification de poussée silencieuse au périphérique utilisateur. Le périphérique récupère ensuite un nouveau fichier de l'URL du service Web enregistré. Le passage dans Wallet est remplacé sans heurts, et l'utilisateur voit immédiatement les informations mises à jour.
Le flux de mise à jour de push nécessite un service web qui respecte les spécifications d'Apple: le service doit exposer les paramètres pour obtenir les derniers passages, numéros de série et enregistrement de périphérique à distance. Ceci est généralement implémenté sur votre moteur en utilisant Node.js, PHP, Python, ou toute pile qui peut gérer les requêtes HTTP.
Avantages clés pour la gestion des cartes d'embarquement et des billets
Commodité de l'utilisateur et Friction réduite
Entreposer une carte d'embarquement ou un billet dans Apple Wallet élimine la nécessité de faire défiler une version papier ou de garder une application tierce ouverte. Les laissez-passer sont accessibles depuis l'écran de verrouillage (par géofençage, notification temporelle ou robinet manuel) et peuvent être rapidement balayés aux portes, aux tourniquets ou aux points d'entrée.
Données fiables, toujours disponibles
Une fois que le passe est téléchargé, l'image du code à barres et les informations clés sont stockées localement. Même si l'appareil perd la connectivité cellulaire, le passe reste scannable. Ceci est critique dans les aéroports, les stades et les centres de transit où la couverture réseau peut être spotty. Le passage apparaît également sur l'écran de verrouillage lorsque la date/heure pertinente approche, grâce à l'intelligence Apple.
Mises à jour dynamiques sans action de l'utilisateur
Pour un retard de vol, l'heure de départ prévue dans les mises à jour de la carte de voyage; pour un festival, un changement d'étape apparaît sur le billet. Les utilisateurs n'ont pas à actualiser ou télécharger manuellement quoi que ce soit. Cela réduit les demandes de soutien et améliore l'expérience globale.
Sécurité et lutte antifraude accrues
Les passes de portefeuille Apple sont signées avec un certificat de développeur, de sorte que la manipulation peut être détectée. De plus, les passes peuvent comprendre un numéro de série unique que vous pouvez valider côté serveur. Pour les événements de grande valeur, vous pouvez combiner PassKit avec des vérifications côté serveur. Par exemple, invalider un passe à distance s'il est remboursé, puis pousser une version mise à jour avec un statut --évité.
Passer la création et le design
Définition des champs de passe
Le contenu du Pass est divisé en groupes logiques : champs d'en-tête (p. ex., -Boarding Pass), champs primaires (p. ex., -Gate A12), champs secondaires (p. ex., -Saut 23A), champs auxiliaires (p. ex., -Frequent Flyer Number), et champs de retour (p. ex., termes et conditions). Chaque champ possède une clé, une étiquette, une valeur et des attributs optionnels comme le style de date, le style de nombre ou le style de devise.
Codes barres et codes QR
Chaque passe doit comprendre au moins un objet code-barres. Vous pouvez utiliser , , , ou (les deux derniers étant courants pour l'embarquement des compagnies aériennes). La valeur du code-barres, qui est typiquement le numéro de billet ou un code de confirmation, est encodée dans l'image au moment de la génération de passes. Pour une sécurité accrue, vous pouvez générer un code-barres unique sur le serveur et l'inclure dans le passe, puis pousser la mise à jour pour invalider l'ancien après la numérisation.
Lignes directrices pour la conception visuelle
Apple fournit des lignes directrices de conception solides pour assurer la cohérence des passes sur les appareils. Le logo doit être simple et centré, l'arrière-plan doit compléter le code à barres, et les images de bande (facultatif) peuvent ajouter du style de marque. Vous devez fournir des images à plusieurs résolutions (1x, 2x, 3x) pour toutes les densités d'écran.
Pour un exemple pratique d'un laissez-passer bien structuré JSON, voir Apples officiel Créer un laissez-passer documentation.
Localisation
Les passes peuvent être localisées en incluant des sous-répertoires linguistiques (par exemple, , ) dans le paquet . Le peut référencer ces chaînes localisées pour les étiquettes et les valeurs de terrain.
Distribution des laissez-passer aux utilisateurs
Ajout direct dans l'application
Si votre application est le point de contact principal, vous pouvez ajouter programmatiquement un passe à Wallet en utilisant (iOS 6+) ou le plus moderne (iOS 12+). Le fichier passe doit d'abord être téléchargé de votre serveur (comme NSData) puis présenté à l'utilisateur. Un flux standard : l'utilisateur achète un ticket ou s'y enregistre, votre application récupère le signe , et affiche un bouton -Ajouter au Wallet.
Distribution des courriels et des sites Web
Pour les utilisateurs qui ne disposent pas de votre application (ou qui préfèrent ne pas l'utiliser pour la gestion des passes), vous pouvez envoyer un lien vers le fichier ou placer un lien de téléchargement direct sur un site Web. Lorsque l'utilisateur touche le lien sur un appareil iOS, Safari ouvre automatiquement Wallet et invite à ajouter le passe. Vous pouvez également utiliser Universal Links pour améliorer l'expérience.
Scannage du code QR ou du code à barres
Un autre motif courant est d'intégrer une URL pointant vers le fichier dans un code QR. Lorsqu'on la scanne avec l'application Caméra, iOS affiche une bannière Wallet en haut de l'écran. La tapotation ajoute le passage. Ceci est idéal pour la billetterie à pied dans les guichets d'événements ou les kiosques en libre-service aux aéroports. Pour plus de détails sur cette approche, consultez le ].
Mise à jour des passages en temps réel
Architecture de mise à jour par Push
Pour activer les mises à jour automatiques, vous devez mettre en place un simple service web que Apple Wallet peut appeler. Le service doit exposer trois paramètres :
- Obtenez la dernière version d'un passe (appelé par Wallet quand il reçoit une notification de poussée).
- Obtenez les numéros de série d'un appareil (utilisés lors de l'enregistrement initial et pour détecter les changements).
- Enregistrement et désenregistrement[ (soulève les jetons de périphérique pour les notifications de poussée).
Lorsqu'un passe a besoin d'être mis à jour, votre serveur envoie une notification de poussée (en utilisant les APN) aux appareils enregistrés. L'appareil interroge alors le service web pour un nouveau fichier . Si la version de passe a changé, Wallet télécharge et remplace l'ancien passe silencieusement. Le contenu mis à jour (par exemple, nouvelle porte, nouvel heure de départ, statut de vide) est instantanément visible par l'utilisateur.
Quand utiliser les mises à jour
Les cas d'utilisation courante comprennent:
- Changements, retards ou annulations de la porte de vol
- Replanification ou changement de lieu
- Améliorations ou déclassements des sièges
- Validation du billet (par exemple, balayage à l'entrée marque le laissez-passer tel qu'utilisé)
- Mises à jour de sécurité (p. ex., remplacement d'un code-barres après une tentative de numérisation)
Notez que chaque passe ne peut être mise à jour qu'en utilisant le même certificat utilisé pour signer à l'origine. Vous ne pouvez pas changer le type de passe ou l'identificateur de l'organisation après l'émission.
Meilleures pratiques de mise en œuvre
Sécurité et confiance
- Gardez votre certificat de signature et votre clé privée dans un environnement de serveur sécurisé, jamais dans le code client.
- Valider toutes les demandes d'enregistrement de poussée entrantes pour éviter l'injection de jeton.
- Utilisez HTTPS pour toutes les interactions entre votre serveur et Apple Wallet.
- Envisager d'utiliser des codes-barres uniques ou des ID de courte durée pour les événements de haute sécurité.
- Mettre en œuvre une limitation des tarifs sur vos paramètres de service Web.
Expérience utilisateur
- Afficher l'option -Ajouter au portefeuille au moment le plus pertinent – après la confirmation d'achat, après l'enregistrement ou au début d'une journée d'événement.
- Utilisez un style clair et contrasté pour les codes-barres et assurez-vous qu'ils répondent aux exigences de taille minimale (au moins 2 pouces de large en équivalents-imprimés).
- Gardez le passage simple : évitez les encombrements avec des champs inutiles. La vue de l'écran de verrouillage devrait montrer les trois éléments les plus critiques de l'information.
- Test passe sur les appareils réels avec différentes versions iOS. Simulator peut rendre des passes, mais vous ne pouvez pas tester les mises à jour de poussée ou de numérisation réelle là.
Intégration des moteurs de recherche
Utilisez une base de données pour cartographier chaque utilisateur. Vous devez stocker les jetons de périphérique pour les mises à jour de push. De nombreuses équipes utilisent des bibliothèques comme Swift‐Protobuf ou des aides-serveurs existants (p. ex. La bibliothèque de PHP de Passbook[) pour gérer la génération .pkpass. Quelle que soit la langue, validez toujours que le fichier ZIP généré, une fois signé, s'ouvre correctement sur un appareil de test.
Essais et QA
Apple fournit un outil de test de passe de Wallet dans Xcode qui peut valider la structure de votre . Utilisez-le avant de distribuer des passes. En outre, testez le cycle de vie complet: ajoutez pass → update via push → remove pass. Testez avec des conditions réseau médiocres pour assurer que l'affichage de code-barres hors ligne fonctionne.
Exemples et cas d'utilisation dans le monde réel
Lignes aériennes et aéroports
Les passagers peuvent s'enregistrer via l'application de la compagnie aérienne, ajouter la carte d'embarquement à Wallet et l'utiliser tout au long de leur voyage. Les changements de porte et les réaffectations de sièges sont automatiquement poussés. Certaines compagnies utilisent même la carte pour afficher l'accès au salon ou le statut d'embarquement prioritaire. La carte peut également être utilisée pour la validation des étiquettes de bagages lors des chutes de sacs en libre-service.
Billetterie événement
Les fans achètent un billet, reçoivent un laissez-passer avec un code QR tournant (pour prévenir la fraude) et l'utilisent pour l'entrée. Le laissez-passer peut également inclure des achats supplémentaires comme des mises à niveau de stationnement ou VIP. Pendant l'événement, les organisateurs peuvent pousser des mises à jour sur les changements d'horaire, les cartes de lieu ou les alertes météorologiques.
Transport en commun et stationnement
Les agences de transport urbain (comme MTA à New York ou TfL à Londres) ont expérimenté PassKit pour des laissez-passer mensuels ou des billets à simple tour. Certaines applications de stationnement utilisent des laissez-passer de Wallet comme permis de stationnement numérique qui peuvent être validés par les agents d'exécution.
Limites et considérations
Bien que PassKit soit puissant, il a des contraintes que les développeurs doivent planifier pour:
- iOS seulement: Les passes ne peuvent pas être ajoutées aux appareils Android. Si votre public est multiplateforme, vous devez offrir une alternative (p. ex. un PDF ou un billet mobile Web).
- Aucune interaction Bluetooth ou NFC (par défaut):[ Les passes ne prennent en charge NFC que si vous intégrez une session NFC native. Pour un vrai tap-and-go, vous devez utiliser le Core NFC séparément.
- Mise à jour de la machine à la mode :[ Bien que les notifications de poussée soient rapides, le périphérique doit être en ligne pour recevoir le déclencheur. Si un utilisateur est hors ligne pendant une mise à jour, le passage restera bloqué jusqu'à ce qu'il se connecte.
- Mémoire et stockage: Chaque passe est petite (généralement 30–80 KB), mais si vous délivrez des millions de passes, votre service web de poussée doit gérer une grande concordance.
- Renouvellement du certificat:[ Les certificats de signature de laissez-passer expirent chaque année ou deux. Vous devez vous assurer que votre serveur met à jour le certificat avant l'expiration, sinon tous les laissez-passer signés avec l'ancien certificat cesseront d'être à jour (ils fonctionneront toujours, mais de nouvelles poussées échouent).
Conclusion
L'API PassKit iOS offre une façon robuste, sécurisée et conviviale de gérer les cartes d'embarquement et les billets dans Apple Wallet. En tirant parti de la création de cartes de passage, de la signature, de la distribution et des mises à jour en temps réel, les développeurs peuvent offrir une expérience de voyage ou d'événement sans faille qui tient les utilisateurs informés sans nécessiter d'engagements d'applications constants.
Pour plus de détails, reportez-vous à Apples PassKit documentation[ et PassKit Programming Guide[. Ces ressources couvrent passer les clés JSON, les spécifications d'image, et le protocole de mise à jour de push en détail exhaustive.