Gestion des moyens de paiement dans les paramètres
Utilisez la feuille de réglages des moyens de paiement pour permettre à vos clients de gérer leurs moyens de paiement dans la page des paramètres de votre application.
Remarque
La feuille des paramètres des moyens de paiement est destinée à être utilisée sur une page de paramètres de l’application. Pour le checkout et les paiements, utilisez lesPaiements dans l’application, qui disposent également d’une prise en charge intégrée pour l’enregistrement et l’affichage des moyens de paiement et prend en charge davantage de moyens de paiement que la feuille des paramètres des moyens de paiement.
Remarque
Dans le code, ce composant est appelé CustomerSheet pour des raisons historiques. Dans la documentation, lorsque vous voyez CustomerSheet dans les exemples de code, cela fait référence à la feuille de paramètres des moyens paiements.
La feuille de paramètres des moyens de paiement est un composant d’interface utilisateur préconstruit qui permet à vos clients de gérer les moyens de paiement qu’ils ont enregistrés. Vous pouvez utiliser l’interface utilisateur de la feuille de configuration des moyens de paiement en dehors d’un tunnel de paiement, et l’apparence et le style sont personnalisables pour correspondre à l’apparence et à l’esthétique de votre application. Les clients peuvent ajouter et supprimer des moyens de paiement, qui sont sauvegardés dans l’objet Customer, et définir leur moyen de paiement par défaut sauvegardé localement sur l’appareil. Utilisez à la fois les paiements dans l’application et la feuille des paramètres des moyens de paiement pour offrir à vos clients une solution cohérente de bout en bout pour les moyens de paiement enregistrés.

CustomerAdapter utilise les clés éphémères de l’objet Customer et permet aux utilisateurs des anciens produits de faire la transition vers CustomerSheet plus rapidement. Si vous démarrez une nouvelle intégration, nous vous recommandons d’adopter CustomerSession plutôt que les clés éphémères pour l’objet Customer.
Configurer Stripe
Pour commencer, vous devez créer un compte Stripe. S’inscrire.
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.
Remarque
Pour obtenir de plus amples informations sur la version la plus récente du SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour recevoir une notification lors de la publication d’une nouvelle version, surveillez les versions à partir du référentiel.
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.
Remarque
Utilisez vos clés de 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.
Activer des moyens de paiement
Affichez vos paramètres des moyens de paiement et activez les moyens de paiement que vous souhaitez prendre en charge. Vous devez activer au moins un moyen de paiement pour créer un SetupIntent.
Par défaut, Stripe active les cartes bancaires et les autres moyens de paiement courants qui peuvent vous permettre d’atteindre davantage de clients. Nous vous recommandons toutefois d’activer d’autres moyens de paiement pertinents pour votre entreprise et vos clients. Consultez la page Prise en charge des moyens de paiement pour en savoir plus sur la prise en charge des produits et des moyens de paiement, et notre page des tarifs pour prendre connaissance des frais que nous appliquons.
Remarque
CustomerSheet prend uniquement en charge les cartes, les comptes bancaires américains et les prélèvements automatiques SEPA.
Ajouter des endpoints CustomerCôté serveur
Créez deux endpoints sur votre serveur : l’un pour récupérer la clé éphémère d’un client et l’autre pour créer un SetupIntent afin d’enregistrer un nouveau moyen de paiement dans l’objet Customer.
- Créez un endpoint pour renvoyer un ID de client et une clé éphémère associée. Vous pouvez consulter la version API utilisée par le SDK ici.
- Créez un endpoint pour renvoyer un SetupIntent configuré avec l’ID du Client.
Si vous prévoyez uniquement d’utiliser le moyen de paiement pour des paiements ultérieurs lorsque votre client est dans le tunnel de paiement, définissez le paramètre usage sur on_session pour améliorer les taux d’autorisation.
Créer un CustomerAdapterCôté client
Un StripeCustomerAdapter permet à une CustomerSheet de communiquer avec Stripe. Sur le client, configurez un StripeCustomerAdapter avec des prestataires qui envoient des requêtes à ces endpoints sur votre serveur.
import StripePaymentSheet let customerAdapter = StripeCustomerAdapter(customerEphemeralKeyProvider: { let json = await myBackend.getCustomerEphemeralKey() return CustomerEphemeralKey(customerId: json["customerId"]!, ephemeralKeySecret: json["ephemeralKeySecret"]!) }, setupIntentClientSecretProvider: { let json = await myBackend.getSetupIntentForCustomer() return json["setupIntentClientSecret"]! })
Configurer la fiche
Ensuite, configurez la feuille de paramètres des moyens de paiement en utilisant la classe CustomerSheet avec votre StripeCustomerAdapter et un CustomerSheet.Configuration.
var configuration = CustomerSheet.Configuration() // Configure settings for the CustomerSheet here. For example: configuration.headerTextForSelectionScreen = "Manage your payment method" let customerSheet = CustomerSheet(configuration: configuration, customer: customerAdapter)
FacultatifActiver les paiements ACH
Pour activer les paiements par prélèvements ACH :
- Incluez
StripeFinancialConnectionsen tant que dépendance pour votre application. - Activez le compte bancaire aux États-Unis comme moyen de paiement dans les paramètres du Dashboard.
FacultatifRécupérer le moyen de paiement sélectionné
Pour récupérer le moyen de paiement par défaut sans présenter la feuille des paramètres des moyens de paiement, appelez retrievePaymentOptionSelection() sur StripeCustomerAdapter.
let paymentMethodOption = try await customerAdapter.retrievePaymentOptionSelection() // Configure your UI based on the payment option self.paymentLabel.text = paymentOption?.displayData().label ?? "None" // Send the selected payment method ID to your backend switch paymentOption { case .paymentMethod(paymentMethod: let paymentMethod, paymentOptionDisplayData: let paymentOptionDisplayData): try await MyBackend.setDefaultPaymentMethod(paymentMethod.stripeId) case .applePay(paymentOptionDisplayData: let paymentOptionDisplayData): try await MyBackend.setDefaultPaymentMethodIsApplePay() }
FacultatifPersonnaliser le formulaire
Apparence
Personnalisez les couleurs, les polices et d’autres attributs d’apparence pour les adapter à l’apparence de votre application à l’aide de l’API Appearance.
Comportement
Pour ajouter un comportement personnalisé permettant de rattacher, de détacher et de répertorier les moyens de paiement enregistrés, utilisez en sous-classe StripeCustomerAdapter ou implémentez votre propre adaptateur conforme à CustomerAdapter.
class MyCustomerAdapter: StripeCustomerAdapter { override func fetchPaymentMethods() async throws -> [STPPaymentMethod] { let pms = try await super.fetchPaymentMethods() // Only return debit cards return pms.filter { $0.card?.funding == "debit" } } }
Remarque
fetchPaymentMethods permet de filtrer l’affichage des moyens de paiement enregistrés, mais n’aura pas d’impact sur le type de moyens de paiement pouvant être ajoutés.
Informations de facturation par défaut
Si vous souhaitez définir des valeurs par défaut pour les informations de facturation collectées dans le formulaire de paiement, configurez la propriété defaultBillingDetails. La CustomerSheet préremplit ses champs avec les valeurs que vous fournissez.
var configuration = CustomerSheet.Configuration() configuration.defaultBillingDetails.address.country = "US" configuration.defaultBillingDetails.email = "foo@bar.com"
Collecte des informations de facturation
Utilisez billingDetailsCollectionConfiguration pour spécifier la manière dont vous souhaitez collecter les informations de facturation dans le PaymentSheet.
Vous pouvez récupérer le nom, l’adresse e-mail, le numéro de téléphone et l’adresse de votre client.
Pour associer des valeurs non collectées par la CustomerSheet, ajoutez-les à la propriété defaultBillingDetails et définissez billingDetailsCollectionConfiguration. sur true. Assurez-vous de suivre cette étape si vous ne prévoyez pas de collecter les valeurs requises par le moyen de paiement.
var configuration = CustomerSheet.Configuration() configuration.defaultBillingDetails.email = "foo@bar.com" configuration.billingDetailsCollectionConfiguration.name = .always configuration.billingDetailsCollectionConfiguration.email = .never configuration.billingDetailsCollectionConfiguration.address = .full configuration.billingDetailsCollectionConfiguration.attachDefaultsToPaymentMethod = true
Remarque
Consultez votre équipe juridique au sujet des lois qui s’appliquent à la collecte d’informations. Ne recueillez les numéros de téléphone que si vous en avez besoin pour la transaction.