Apple Pay
Donnez à votre clientèle la possibilité de régler ses achats de manière sécurisée avec Apple Pay sur son iPhone, iPad ou Apple Watch.
Apple Pay est compatible avec la plupart des produits et fonctionnalités Stripe. Les utilisateurs de Stripe peuvent accepter Apple Pay dans les applications sous iOS 9 et versions ultérieures, ainsi que sur le Web, dans Safari, à partir d’iOS 10 et de macOS Sierra. Le traitement des paiements via Apple Pay n’entraîne aucuns frais supplémentaires et les tarifs sont identiques à ceux des autres transactions par carte.
Apple Pay est disponible pour les titulaires de cartes émises par des banques participantes, dans les pays pris en charge. Pour en savoir plus, reportez-vous à la liste des banques participantes établie par Apple pour connaître les banques et pays pris en charge.
![Apple pay payment flow animation showing the Stripe checkout page, the Apple Pay button, and the confirmation dialog in test mode.](https://b.stripecdn.com/docs-statics-srv/assets/apple-pay.3447ce2deeaab40d6d231eed4dc34644.gif)
Utilisation de Stripe et Apple Pay, et achats dans les applications![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Pour la vente de biens physiques, de services et autres, votre application peut accepter Apple Pay ou tout autre moyen de paiement pris en charge par Stripe. Ces paiements sont traités par Stripe et vous n’avez qu’à payer les frais de traitement de Stripe. Cependant, la vente de produits numériques, de contenu numérique et autres doit se faire par le biais des achats dans les applications d’Apple. Ces paiements sont traités par Apple et sont soumis aux frais de transaction de l’entreprise.
Pour en savoir plus sur les ventes qui doivent faire l’objet d’achats dans les applications, consultez les instructions de vérification de l’App Store d’Apple.
Accepter Apple Pay![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Stripe met à votre disposition différentes méthodes pour ajouter Apple Pay aux moyens de paiement que vous proposez. Pour plus d’informations sur l’intégration à mettre en place, sélectionnez la méthode qui vous intéresse :
Avec le SDK iOS de Stripe, vous pouvez accepter Apple Pay et les cartes bancaires traditionnelles. Avant de commencer, vous devez vous inscrire au programme Apple Developer. Ensuite, suivez les étapes ci-dessous :
- Configurer Stripe
- Demander un ID de marchand Apple
- Créer un certificat Apple Pay
- Réaliser une intégration avec Xcode
- Vérifier si Apple Pay est pris en charge
- Créer la requête de paiement
- Présenter le formulaire de paiement
- Envoyer le paiement à Stripe
Configurer StripeCôté serveurCôté client![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Pour commencer, vous devez créer un compte Stripe. Inscrivez-vous maintenant.
Côté serveur![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Cette intégration exige des endpoints sur votre serveur qui communiquent avec l’API Stripe. Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre serveur :
Côté client![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Le SDK iOS de Stripe est disponible en open source et fait l’objet d’une documentation complète. Il est également compatible avec les applications prenant en charge iOS 13 et les versions ultérieures.
Note
For details on the latest SDK release and past versions, see the Releases page on GitHub. To receive notifications when a new release is published, watch releases for the repository.
Configurez le SDK avec votre clé publiable Stripe au démarrage de votre application. Cela lui permet d’envoyer des requêtes à l’API Stripe.
Note
Utilisez vos clés du mode test lors de vos activités de test et de développement et vos clés du mode production pour la publication de votre application.
Demander un ID de marchand Apple![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Pour obtenir un ID de marchand Apple, demandez un nouvel identifiant sur le site Web Apple Developer.
Renseignez le formulaire en indiquant une description et un identifiant. La description n’est destinée qu’à votre propre information et vous pourrez la modifier ultérieurement au besoin. En ce qui concerne l’identifiant, Stripe vous recommande d’utiliser le nom de votre application (par exemple, merchant.
).
Créer un certificat Apple Pay![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Créez un certificat permettant à votre application de chiffrer les données de paiement.
Accédez aux paramètres des certificats iOS dans le Dashboard, cliquez sur Ajouter une nouvelle application et suivez le guide.
Téléchargez un fichier CSR (Certificate Signing Request) pour obtenir d’Apple un certificat sécurisé vous autorisant à utiliser Apple Pay.
Un fichier CSR peut émettre exactement un certificat. Si vous changez d’ID de marchand Apple, vous devez accéder aux paramètres des certificats iOS dans le Dashboard pour obtenir un nouveau fichier CSR et un nouveau certificat.
Réaliser une intégration avec Xcode![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Ajoutez la fonctionnalité Apple Pay à votre application. Dans Xcode, ouvrez vos paramètres de projet, cliquez sur l’onglet Signature et fonctionnalités, puis ajoutez Apple Pay. Vous serez peut-être alors invité(e) à vous connecter à votre compte développeur. Sélectionnez l’ID du marchand créé plus tôt. Il est désormais possible d’utiliser Apple Pay sur votre application.
![](https://b.stripecdn.com/docs-statics-srv/assets/xcode.a701d4c1922d19985e9c614a6f105bf1.png)
Activez la fonctionnalité Apple Pay dans Xcode
Vérifier si Apple Pay est pris en charge![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Note
Si vous utilisez PaymentSheet ou STPPaymentContext, cette classe s’occupe automatiquement du reste.
Avant d’afficher Apple Pay comme option de paiement dans votre application, déterminez si l’appareil de l’utilisateur prend en charge Apple Pay et s’il a ajouté une carte bancaire à son portefeuille :
Créer la requête de paiement![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Lorsque l’utilisateur appuie sur le bouton Apple Pay, appelez StripeAPI paymentRequestWithMerchantIdentifier:country:currency: pour créer une PKPaymentRequest.
Ensuite, configurez la PKPaymentRequest
de sorte à afficher le nom de votre entreprise et le total de la transaction. Vous pouvez également collecter des informations comme les détails de facturation ou les données de livraison.
Consultez la documentation d’Apple pour obtenir des instructions sur la personnalisation de la demande de paiement.
Présenter le formulaire de paiement![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Créez une instance STPApplePayContext avec le PKPaymentRequest
et utilisez-le pour présenter la fiche Apple Pay :
Envoyer le paiement à Stripe![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Côté serveur![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Créez un endpoint qui génère un PaymentIntent avec un montant et une devise. Décidez toujours du montant à débiter côté serveur, un environnement sécurisé, à la différence du côté client. Cette précaution empêchera les éventuels clients malveillants de fixer leurs propres tarifs.
Côté client![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Résolution des problèmes![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Si l’API Stripe génère des erreurs lors de la tentative de création de tokens, il est probable que votre certificat Apple Pay pose problème. Solution : générer un nouveau certificat et l’envoyer à Stripe, comme expliqué sur cette page. Veillez à utiliser une demande de signature de certificat (CSR) obtenue depuis votre Dashboard et non pas une CSR que vous avez générée vous-même. Xcode met souvent en cache de manière incorrecte d’anciens certificats. En plus de générer un nouveau certificat, Stripe vous recommande donc de créer aussi un nouvel ID de marchand Apple.
Si vous recevez l’erreur :
Vous n’avez pas ajouté votre compte de marchand Apple à Stripe
Il est probable que votre application envoie des données chiffrées avec une ancienne CSR/un ancien certificat (non générés par Stripe). Vérifiez que tout certificat généré par des CSR autres que Stripe est révoqué pour votre ID de marchand Apple. Si cette mesure ne résout pas le problème, supprimez l’ID de marchand dans votre compte Apple et recréez-le. Ensuite, créez un nouveau certificat basé sur la même CSR (fournie par Stripe) que celle utilisée précédemment. Vous n’avez pas besoin de charger ce nouveau certificat sur Stripe. Une fois ces opérations effectuées, désactivez les identifiants Apple Pay dans votre application et réactivez-les pour vous assurer qu’ils sont bien actualisés.
App Clips![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Le module StripeApplePay
est un SDK Stripe simplifié, optimisé pour être utilisé dans un App Clip. Suivez les étapes ci-dessus pour ajouter le module StripeApplePay
à la cible de votre App Clip.
Note
Le module StripeApplePay
n’est pris en charge que dans Swift. Les utilisateurs d’Objective-C doivent importer STPApplePayContext
depuis le module Stripe
.
Migration depuis STPApplePayContext![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Si vous utilisez déjà STPApplePayContext
et souhaitez passer au SDK Apple Pay simplifié, suivez ces étapes :
- Dans les dépendances de la cible de votre App Clip, remplacez le module
Stripe
par le moduleStripeApplePay
. - Dans votre code, remplacez
import Stripe
parimport StripeApplePay
. - Remplacez votre utilisation de
STPApplePayContextDelegate
par le nouveau protocoleApplePayContextDelegate
. - Modifiez votre implémentation de Change your implementation of
applePayContext(_
pour accepter un:didCreatePaymentMethod:completion:) StripeAPI.
.PaymentMethod - Modifiez votre implémentation de
applePayContext(_
de manière à accepter un:didCompleteWith:error:) STPApplePayContext.
.PaymentStatus
import Stripe class CheckoutViewController: UIViewController, STPApplePayContextDelegate { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: STPPaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { // ... } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPPaymentStatus, error: Error?) { // ... } }
import StripeApplePay class CheckoutViewController: UIViewController, ApplePayContextDelegate { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: StripeAPI.PaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { // ... } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPApplePayContext.PaymentStatus, error: Error?) { // ... } }
Paiements récurrents![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Sur iOS 16 ou les versions ultérieures, vous pouvez adopter des tokens de marchand en définissant les propriétés recurringPaymentRequest
ou automaticReloadPaymentRequest
sur PKPaymentRequest
.
Pour en savoir plus sur l’utilisation des paiements récurrents avec Apple Pay, consultez la documentation d’Apple sur PassKit.
Suivi des commandes![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Pour adopter le suivi des commandes dans iOS 16 ou une version ultérieure, implémentez la fonction applePayContext(context:willCompleteWithResult:handler:) dans votre ApplePayContextDelegate
. Stripe appelle votre implémentation une fois le paiement effectué, mais avant qu’iOS ne ferme la fiche Apple Pay.
Dans votre implémentation :
- Récupérez les détails de la commande terminée sur votre serveur.
- Ajoutez ces informations au PKPaymentAuthorizationResult fourni.
- Appelez le gestionnaire d’exécution fourni dans la file d’attente principale.
Pour en savoir plus sur le suivi des commandes, consultez la documentation d’Apple sur les commandes Wallet.
Tester Apple Pay![](https://b.stripecdn.com/docs-statics-srv/assets/fcc3a1c24df6fcffface6110ca4963de.svg)
Il n’est pas possible d’enregistrer les informations des cartes de test Stripe dans Wallet sous iOS. Néanmoins, Stripe reconnaît l’utilisation de vos clés API de test et renvoie un token de carte de test valide. Ce token vous permet de réaliser des paiements à l’aide d’une carte en mode production sans qu’elle soit débitée.