Recopila las direcciones físicas y los números de teléfono
Descubre cómo recopilar direcciones y números de teléfono en tu aplicación móvil.
To collect complete addresses for billing or shipping, use the Address Element.
También puedes usar el Address Element para:
- Recopila los números de teléfono de los clientes
- Utilizar la función de autocompletar (habilitada de forma predeterminada en iOS)
- Rellena automáticamente los datos de facturación en el Payment Element introduciendo una dirección de envío
Stripe combina la información recopilada sobre la dirección y el método de pago para crear un PaymentIntent.

Configura StripeLado del servidorLado del cliente
Primero, necesitas una cuenta de Stripe. Regístrate ahora.
El SDK para iOS de Stripe es de código abierto, está plenamente documentado y es compatible con aplicaciones que admiten iOS 13 o posterior.
Nota
Para obtener más información sobre la versión más reciente y sobre versiones anteriores del SDK, consulta la página Versiones en GitHub. Para recibir notificaciones cuando se publica una nueva versión, consulta las versiones del repositorio.
Configura el SDK con tu clave publicable de Stripe al iniciar la aplicación para que tu aplicación haga solicitudes a la API de Stripe.
Nota
Usa las claves de prueba durante las pruebas y las tareas de desarrollo, y las claves del modo activo cuando publiques tu aplicación.
Configura sugerencias para autocompletar la dirección
La función de autocompletar está habilitada de forma predeterminada en iOS.
Configura el Address Element
Puedes configurar el Address Element con detalles como la visualización de los valores predeterminados, la configuración de los países permitidos, la personalización de la apariencia, etc. Consulta AddressViewController.Configuration para obtener la lista completa de opciones de configuración.
let addressConfiguration = AddressViewController.Configuration( additionalFields: .init(phone: .required), allowedCountries: ["US", "CA", "GB"], title: "Shipping Address" )
Recupera los datos de la dirección
Recupera los detalles de la dirección cumpliendo con AddressViewControllerDelegate y, a continuación, usando addressViewControllerDidFinish para descartar el controlador de vista. El valor de la dirección es una dirección válida o nula.
extension MyViewController: AddressViewControllerDelegate { func addressViewControllerDidFinish(_ addressViewController: AddressViewController, with address: AddressViewController.AddressDetails?) { addressViewController.dismiss(animated: true) self.addressDetails = address } }
Presenta el Address Element
Crea un AddressViewController con la configuración de direcciones y el delegado de los pasos anteriores. Puedes presentarlo en un controlador de navegación o insertarlo en un controlador de navegación.
self.addressViewController = AddressViewController(configuration: addressConfiguration, delegate: self) let navigationController = UINavigationController(rootViewController: addressViewController) present(navigationController, animated: true)
OpcionalRellena automáticamente las direcciones de envío en el Payment Element
Si usas el Payment Element en el móvil, indica los PaymentSheet.Configuration.shippingDetails en la dirección del elemento dirección. Cuando se cubren los shippingDetails, se indica previamente la dirección de facturación de los usuarios y se ve una casilla de verificación La dirección de facturación es la misma que la de envío. Los pagos confirmados con los shippingDetails cubiertos también tienen la propiedad intento de envío cubierta cuando se confirma el PaymentIntent.
var configuration = PaymentSheet.Configuration() // ... configuration.shippingDetails = { [weak self] in return self?.addressDetails }
OpcionalPersonaliza el diseño
Ahora que has añadido el Address Element a tu aplicación, puedes personalizar la apariencia para que se ajuste al diseño del resto de tu aplicación. Puedes configurar la apariencia con la API Appearance mediante AddressViewController.Configuration.appearance.
OpcionalEstablece datos de facturación predeterminados
Para establecer los valores predeterminados para los datos de facturación recopilados en la hoja de pago, configura la propiedad defaultBillingDetails. Los campos de la PaymentSheet se rellenan automáticamente con los valores que proporcionas.
var configuration = PaymentSheet.Configuration() configuration.defaultBillingDetails.address.country = "US" configuration.defaultBillingDetails.email = "foo@bar.com"
OpcionalPersonalizar la recopilación de datos de facturación
Utiliza billingDetailsCollectionConfiguration para especificar cómo deseas recopilar los detalles de facturación en la hoja de pago.
Puedes recopilar el nombre, el correo electrónico, el número de teléfono y la dirección del cliente.
Si solo quieres los datos de facturación requeridos por el método de pago, establece billingDetailsCollectionConfiguration. como verdadero. En ese caso, los PaymentSheet. se establecen como los detalles de facturación del método de pago.
Si quieres recolectar detalles de facturación adicionales que no son necesariamente requeridos por el método de pago, establece billingDetailsCollectionConfiguration. como falso. En ese caso, los detalles de facturación recolectados a través de la PaymentSheet se establecen como los detalles de facturación del método de pago.
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
Nota
Consulta a tu asesor legal sobre las leyes que se aplican a la recopilación de información. Recopila los números de teléfono solo si los necesitas para la transacción.