Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Ask AI
Créez un compte
Connectez-vous
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Outils de développement
Démarrer
Paiements
Automatisation des opérations financières
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageManaged Payments
Utiliser Payment Links
Créer une page de paiement
Développer une intégration avancée
Développer une intégration dans l'application
Moyens de paiement
Ajouter des moyens de paiement
    Présentation
    Options d'intégration des moyens de paiement
    Gérer les moyens de paiement par défaut dans le Dashboard
    Types de moyens de paiement
    Cartes bancaires
    Prélèvements bancaires
    Virements avec redirection bancaire
    Virements bancaires
    Virements (Sources)
    Achetez maintenant, payez plus tard
    Paiements en temps réel
    Coupons
    Portefeuilles
      Alipay
      Amazon Pay
      Apple Pay
        Bonnes pratiques
        Cartes bancaires avec Apple Pay
        Transactions récurrentes avec Apple Pay
        Tokens de marchand Apple Pay
        Transfert de responsabilité, litiges et remboursements Apple Pay
      Cash App Pay
      Google Pay
      GrabPay
      Link
      MB WAY
      MobilePay
      PayPal
      PayPay
      Revolut Pay
      Satispay
      Secure Remote Commerce
      Vipps
      WeChat Pay
    Activer des moyens de paiement locaux par pays
    Moyens de paiement personnalisés
Gérer les moyens de paiement
Paiement accéléré avec Link
Interfaces de paiement
Payment Links
Checkout
Web Elements
Elements intégrés à l'application
Scénarios de paiement
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Paiements par TPE
Terminal
Autres produits Stripe
Financial Connections
Cryptomonnaies
Climate
AccueilPaiementsAdd payment methodsWallets

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.

Copier la page

Appareils pris en charge

Reportez-vous à la documentation sur la compatibilité d’Apple pour savoir quels appareils prennent en charge Apple Pay.

Apple Pay est compatible avec la plupart des produits et fonctionnalités Stripe. Les utilisateurs Stripe peuvent accepter Apple Pay dans les applications iOS à partir d’iOS 9 et sur le Web dans Safari à partir d’iOS 10 ou macOS Sierra. Le traitement des paiements Apple Pay ne facture aucuns frais supplémentaires et la tarification est la même que pour les 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.

  • Localisation des clients

    Dans le monde entier, sauf en Inde

  • Devise de présentation

    Voir Devises de présentation prises en charge

  • Confirmation du paiement

    Initié par le client

  • Catégorie de moyens de paiement

    Portefeuille

  • Paiements récurrents

    Oui (sauf le Mexique)

  • Délai de virement

    Les délais de virement standard s’appliquent

  • Prise en charge de Connect

    Oui

  • Prise en charge des litiges

    Oui

  • Prise en charge des captures manuelles

    Oui

  • Remboursements complets/partiels

    Oui/oui

Tunnel de paiement

La démonstration ci-dessous illustre le tunnel de paiement Apple Pay depuis votre page de paiement :

Animation du tunnel de paiement Apple Pay montrant la page de paiement Stripe, le bouton Apple Pay et la boîte de dialogue de confirmation pendant le test.

Utilisation de Stripe et Apple Pay, et achats dans les applications

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

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 :

  1. Configurer Stripe
  2. Demander un ID de marchand Apple
  3. Créer un certificat Apple Pay
  4. Réaliser une intégration avec Xcode
  5. Vérifier si Apple Pay est pris en charge
  6. Créer la requête de paiement
  7. Présenter le formulaire de paiement
  8. Envoyer le paiement à Stripe

Configurer Stripe
Côté serveur
Côté client

Pour commencer, vous devez créer un compte Stripe. Inscrivez-vous maintenant.

Côté serveur

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 :

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Côté client

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.

Pour installer le SDK, veuillez suivre les étapes ci-dessous :

  1. In Xcode, select File > Add Package Dependencies… and enter https://github.com/stripe/stripe-ios-spm as the repository URL.
  2. Sélectionnez le dernier numéro de version, visible sur notre page des versions.
  3. Ajoutez le produit StripeApplePay à la cible de votre application.

Remarque

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.

AppDelegate.swift
Swift
import UIKit import StripeApplePay @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { StripeAPI.defaultPublishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
// do any other necessary launch configuration return true } }

Remarque

Use your test keys while you test and develop, and your live mode keys when you publish your app.

Demander un ID de marchand Apple

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.com.{{YOUR_APP_NAME}}).

Créer un certificat Apple Pay

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

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.

Activez la fonctionnalité Apple Pay dans Xcode

Vérifier si Apple Pay est pris en charge

Remarque

Si vous utilisez PaymentSheet, 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 :

CheckoutViewController.swift
Swift
import StripeApplePay import PassKit class CheckoutViewController: UIViewController, ApplePayContextDelegate { let applePayButton: PKPaymentButton = PKPaymentButton(paymentButtonType: .plain, paymentButtonStyle: .black) override func viewDidLoad() { super.viewDidLoad() // Only offer Apple Pay if the customer can pay with it applePayButton.isHidden = !StripeAPI.deviceSupportsApplePay() applePayButton.addTarget(self, action: #selector(handleApplePayButtonTapped), for: .touchUpInside) } // ...continued in next step }

Créer la requête de paiement

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.

CheckoutViewController.swift
Swift
func handleApplePayButtonTapped() { let merchantIdentifier = "merchant.com.your_app_name" let paymentRequest = StripeAPI.paymentRequest(withMerchantIdentifier: merchantIdentifier, country: "US", currency: "USD") // Configure the line items on the payment request paymentRequest.paymentSummaryItems = [ // The final line should represent your company; // it'll be prepended with the word "Pay" (that is, "Pay iHats, Inc $50") PKPaymentSummaryItem(label: "iHats, Inc", amount: 50.00), ] // ...continued in next step }

Présenter le formulaire de paiement

Créez une instance STPApplePayContext avec le PKPaymentRequest et utilisez-le pour présenter la fiche Apple Pay :

CheckoutViewController.swift
Swift
func handleApplePayButtonTapped() { // ...continued from previous step // Initialize an STPApplePayContext instance if let applePayContext = STPApplePayContext(paymentRequest: paymentRequest, delegate: self) { // Present Apple Pay payment sheet applePayContext.presentApplePay(on: self) } else { // There is a problem with your Apple Pay configuration } }

Apple exige que les actions de l’utilisateur déclenchent la fenêtre modale d’Apple Pay (par exemple, le fait de cliquer sur un bouton ou d’interagir avec le formulaire). Assurez-vous que votre code respecte les conditions suivantes :

  • Appelez directement le formulaire de paiement avec un événement d’activation de l’utilisateur.
  • Ajoutez le code du formulaire de paiement en haut ou à proximité du haut de votre gestionnaire d’événements d’actions de l’utilisateur, avant tout code asynchrone ou de longue durée.
  • Définissez une limite de temps raisonnable pour appeler confirmPayment après le l’action de l’utilisateur.

Envoyer le paiement à Stripe

Côté serveur

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.

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd"

Côté client

Implémentez applePayContext(_:didCreatePaymentMethod:completion:) pour appeler le bloc de finalisation avec la clé secrète du client du PaymentIntent récupérée auprès du endpoint ci-dessus.

Une fois que vous avez appelé le bloc de finalisation, STPApplePayContext finalise le paiement, ferme la fiche Apple Pay et appelle applePayContext(_:didCompleteWithStatus:error:) avec l’état du paiement. Implémentez cette méthode pour présenter un reçu au client.

CheckoutViewController.swift
Swift
extension CheckoutViewController { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: StripeAPI.PaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { let clientSecret = ... // Retrieve the PaymentIntent client secret from your backend (see Server-side step above) // Call the completion block with the client secret or an error completion(clientSecret, error) } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPApplePayContext.PaymentStatus, error: Error?) { switch status { case .success: // Payment succeeded, show a receipt view break case .error: // Payment failed, show the error break case .userCancellation: // User canceled the payment break @unknown default: fatalError() } } }

Enfin, gérez les événements postpaiement pour effectuer des opérations telles que l’envoi d’un e-mail de confirmation de commande à votre client, l’enregistrement de la vente dans une base de données ou le lancement d’un flux d’expédition.

Résolution des problèmes

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

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.

Remarque

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

Si vous utilisez déjà STPApplePayContext et souhaitez passer au SDK Apple Pay simplifié, suivez ces étapes :

  1. Dans les dépendances de la cible de votre App Clip, remplacez le module Stripe par le module StripeApplePay.
  2. Dans votre code, remplacez import Stripe par import StripeApplePay.
  3. Remplacez votre utilisation de STPApplePayContextDelegate par le nouveau protocole ApplePayContextDelegate.
  4. Modifiez votre implémentation de Change your implementation of applePayContext(_:didCreatePaymentMethod:completion:) pour accepter un StripeAPI.PaymentMethod.
  5. Modifiez votre implémentation de applePayContext(_:didCompleteWith:error:) de manière à accepter un STPApplePayContext.PaymentStatus.
Avant
Après
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

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.

CheckoutViewController.swift
Swift
extension CheckoutViewController { func handleApplePayButtonTapped() { let request = StripeAPI.paymentRequest(withMerchantIdentifier: merchantIdentifier, country: "US", currency: "USD") let billing = PKRecurringPaymentSummaryItem(label: "My Subscription", amount: NSDecimalNumber(string: "59.99")) billing.startDate = Date() billing.endDate = Date().addingTimeInterval(60 * 60 * 24 * 365) billing.intervalUnit = .month request.recurringPaymentRequest = PKRecurringPaymentRequest(paymentDescription: "Recurring", regularBilling: billing, managementURL: URL(string: "https://my-backend.example.com/customer-portal")!) request.recurringPaymentRequest?.billingAgreement = "You'll be billed $59.99 every month for the next 12 months. To cancel at any time, go to Account and click 'Cancel Membership.'" request.paymentSummaryItems = [billing] } }

Pour en savoir plus sur l’utilisation des paiements récurrents avec Apple Pay, consultez la documentation d’Apple sur PassKit.

Suivi des commandes

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 :

  1. Récupérez les détails de la commande terminée sur votre serveur.
  2. Ajoutez ces informations au PKPaymentAuthorizationResult fourni.
  3. 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.

CheckoutViewController.swift
Swift
extension CheckoutViewController { func applePayContext(_ context: STPApplePayContext, willCompleteWithResult authorizationResult: PKPaymentAuthorizationResult, handler: @escaping (PKPaymentAuthorizationResult) -> Void) { // Fetch the order details from your service MyAPIClient.shared.fetchOrderDetails(orderID: myOrderID) { myOrderDetails authorizationResult.orderDetails = PKPaymentOrderDetails( orderTypeIdentifier: myOrderDetails.orderTypeIdentifier, // "com.myapp.order" orderIdentifier: myOrderDetails.orderIdentifier, // "ABC123-AAAA-1111" webServiceURL: myOrderDetails.webServiceURL, // "https://my-backend.example.com/apple-order-tracking-backend" authenticationToken: myOrderDetails.authenticationToken) // "abc123" // Call the handler block on the main queue with your modified PKPaymentAuthorizationResult handler(authorizationResult) } } }

Tester Apple Pay

Pour tester Apple Pay, vous devez utiliser un vrai numéro de carte et vos clés API de test. Stripe reconnaît que vous êtes en mode test et renvoie un token de carte de test que vous pouvez utiliser afin d’effectuer des paiements de test sur une carte active sans la débiter.

Vous ne pouvez pas enregistrer les cartes de test Stripe ou les cartes de test Apple dans les wallets Apple Pay pour tester Apple Pay.

Voir aussi

  • Intégration iOS
  • Apple Pay sur le Web
  • Bonnes pratiques pour Apple Pay
Cette page vous a-t-elle été utile ?
OuiNon
Besoin d'aide ? Contactez le service Support.
Rejoignez notre programme d'accès anticipé.
Consultez notre log des modifications.
Des questions ? Contactez l'équipe commerciale.
LLM ? Lire llms.txt.
Propulsé par Markdoc