Collecter les adresses physiques et les numéros de téléphone
Comment collecter des adresses et des numéros de téléphone dans votre application mobile
To collect complete addresses for billing or shipping, use the Address Element.
Vous pouvez également utiliser l’Address Element pour :
- Collectez les numéros de téléphone des clients
- Utiliser la saisie semi-automatique (activée par défaut dans iOS)
- Remplissez automatiquement des informations de facturation dans Payment Element en transmettant une adresse de livraison
Stripe combine les informations d’adresse collectées et le moyen de paiement pour créer un PaymentIntent.

Configurer StripeCôté serveurCôté client
Tout d’abord, il vous faut un compte Stripe. Inscrivez-vous.
La trousse SDK iOS de Stripe est à code source libre et possède une documentation complète. Il est également compatible avec les applications prenant en charge iOS 13 et les versions ultérieures.
Remarques
Pour plus de détails sur la version la plus récente de la trousse SDK et ses versions antérieures, consultez la page des versions sur GitHub. Pour recevoir des notifications lors de la publication d’une nouvelle version, suivez les versions du référentiel.
Configurez la trousse SDK avec votre clé publique Stripe au démarrage de l’application. Cela permet à votre application d’envoyer des requêtes à l’API Stripe.
Remarques
Utilisez vos clés de test lors de vos activités de test et de développement et vos clés de production pour la publication de votre application.
Configurer les suggestions de saisie semi-automatique des adresses
La saisie semi-automatique est activée par défaut sur iOS.
Configurer l'Address Element
Vous pouvez configurer l’Element Address avec des détails tels que l’affichage des valeurs par défaut, la définition des pays autorisés, la personnalisation de l’apparence, etc. Reportez-vous à AddressViewController.Configuration pour consulter la liste complète des options de configuration.
let addressConfiguration = AddressViewController.Configuration( additionalFields: .init(phone: .required), allowedCountries: ["US", "CA", "GB"], title: "Shipping Address" )
Récupérer les informations de l'adresse
Récupérez les détails de l’adresse en vous conformant à AddressViewControllerDelegate, puis en utilisant addressViewControllerDidFinish pour fermer le contrôleur d’affichage. La valeur de l’adresse est une adresse valide ou nulle.
extension MyViewController: AddressViewControllerDelegate { func addressViewControllerDidFinish(_ addressViewController: AddressViewController, with address: AddressViewController.AddressDetails?) { addressViewController.dismiss(animated: true) self.addressDetails = address } }
Présenter l'Address Element
Créez un AddressViewController à l’aide de la configuration de l’adresse et le délégué des étapes précédentes. Vous pouvez le présenter dans un contrôleur de navigation ou le pousser sur un contrôleur de navigation.
self.addressViewController = AddressViewController(configuration: addressConfiguration, delegate: self) let navigationController = UINavigationController(rootViewController: addressViewController) present(navigationController, animated: true)
FacultatifRemplissez automatiquement les adresses de livraison dans le Payment Element
Si vous utilisez le composant Element Payment mobile, définissez PaymentSheet.Configuration.shippingDetails sur l’adresse collectée par le composant Element address. Lorsque shippingDetails est renseigné, les utilisateurs ont leur adresse de facturation préremplie et ils voient une case à cocher Billing address is the same as shipping. Les PaymentIntents confirmés avec shippingDetails renseignés ont également la propriété shipping intent renseigné lorsque le PaymentIntent est confirmé.
var configuration = PaymentSheet.Configuration() // ... configuration.shippingDetails = { [weak self] in return self?.addressDetails }
FacultatifPersonnaliser l'apparence
Maintenant que vous avez ajouté l’Element Address à votre application, vous pouvez personnaliser son apparence pour qu’il s’intègre harmonieusement à votre application. Vous pouvez configurer l’apparence à l’aide de l’API Appearance via AddressViewController.Configuration.appearance.
FacultatifDéfinir les informations de facturation par défaut
Pour définir des valeurs par défaut pour les informations de facturation collectées dans la feuille de paiement, configurez la propriété defaultBillingDetails. PaymentSheet pré-remplit ses champs avec les valeurs que vous fournissez.
var configuration = PaymentSheet.Configuration() configuration.defaultBillingDetails.address.country = "US" configuration.defaultBillingDetails.email = "foo@bar.com"
FacultatifPersonnaliser la collecte des données de facturation
Utilisez billingDetailsCollectionConfiguration pour spécifier la façon dont vous souhaitez collecter les informations de facturation dans le formulaire de paiement.
Vous pouvez recueillir le nom, l’adresse de courriel, le numéro de téléphone et l’adresse de votre client.
Si vous souhaitez uniquement indiquer les informations de facturation requises par le mode de paiement, définissez billingDetailsCollectionConfiguration. à true. Dans ce cas, le paramètre PaymentSheet. est défini comme les informations de facturation du mode de paiement.
Si vous souhaitez collecter des informations de facturation supplémentaires qui ne sont pas nécessairement requises pour le moyen de paiement, définissez billingDetailsCollectionConfiguration. sur false. Dans ce cas, les informations de facturation collectées via la PaymentSheet sont définies comme les informations de facturation du moyen de paiement.
var configuration = PaymentSheet.Configuration() configuration.defaultBillingDetails.email = "foo@bar.com" configuration.billingDetailsCollectionConfiguration.name = .always configuration.billingDetailsCollectionConfiguration.email = .never configuration.billingDetailsCollectionConfiguration.address = .full configuration.billingDetailsCollectionConfiguration.attachDefaultsToPaymentMethod = true
Remarques
Consultez votre conseiller juridique au sujet des lois qui s’appliquent à la collecte de renseignements. Ne collectez les numéros de téléphone que si vous en avez besoin pour la transaction.