Coletar endereços físicos e números de telefone
Saiba como coletar endereços e número de telefone em seu aplicativo móvel.
To collect complete addresses for billing or shipping, use the Address Element.
Você também pode usar o Address Element para:
- Coletar números de telefone dos clientes
- Utilizar preenchimento automático (habilitado por padrão no iOS)
- Preencher previamente os dados de cobrança no Payment Element passando um endereço de entrega
A Stripe combina os dados de endereço coletados e a forma de pagamento para criar um PaymentIntent.

Configurar a StripeLado do servidorLado do cliente
Primeiro, você precisa de uma conta Stripe. Cadastre-se agora.
O SDK da Stripe para iOS é de código aberto, totalmente documentado e compatível com aplicativos que aceitam iOS 13 ou versões mais recentes.
Observação
Para obter mais informações sobre a versão mais recente e as versões anteriores do SDK, consulte a página Lançamentos no GitHub. Para receber notificações quando um novo lançamento for publicado, assista aos lançamentos do repositório.
Configure o SDK com sua chave publicável da Stripe na inicialização do aplicativo. Isso permite que seu aplicativo faça solicitações à API da Stripe .
Observação
Use suas chaves de teste enquanto testa e desenvolve, e suas chaves de modo de produção quando publicar seu aplicativo.
Configurar sugestões de preenchimento automático de endereços
O preenchimento automático é habilitado por padrão no iOS.
Configurar o Address Element
Você pode configurar o Address Element com detalhes como exibir valores padrão, definir países permitidos, personalizar a aparência e assim por diante. Consulte AddressViewController.Configuration para obter a lista completa de opções de configuração.
let addressConfiguration = AddressViewController.Configuration( additionalFields: .init(phone: .required), allowedCountries: ["US", "CA", "GB"], title: "Shipping Address" )
Recuperar detalhes do endereço
Recupere os detalhes do endereço em conformidade com AddressViewControllerDelegate e usando addressViewControllerDidFinish para descartar o controlador de exibição. O valor do endereço é um endereço válido ou nulo.
extension MyViewController: AddressViewControllerDelegate { func addressViewControllerDidFinish(_ addressViewController: AddressViewController, with address: AddressViewController.AddressDetails?) { addressViewController.dismiss(animated: true) self.addressDetails = address } }
Apresentar o Address Element
Crie um AddressViewController usando a configuração de endereço e delegar das etapas anteriores. Você pode apresentá-lo em um controlador de navegação ou empurrá-lo para um controlador de navegação.
self.addressViewController = AddressViewController(configuration: addressConfiguration, delegate: self) let navigationController = UINavigationController(rootViewController: addressViewController) present(navigationController, animated: true)
OpcionalPreencha previamente os endereços de entrega no Payment Element
Se você usar o Payment Element para celular, defina PaymentSheet.Configuration.shippingDetails para o endereço coletado pelo elemento de endereço. Quando shippingDetails é preenchido, os usuários recebem o endereço de cobrança pré-preenchido e veem uma caixa de seleção O endereço de cobrança é o mesmo que o endereço de entrega. PaymentIntents confirmados com shippingDetails preenchido também têm a propriedade de intenção shipping preenchida quando o PaymentIntent é confirmado.
var configuration = PaymentSheet.Configuration() // ... configuration.shippingDetails = { [weak self] in return self?.addressDetails }
OpcionalPersonalize a aparência
Agora que você adicionou o Address Element ao seu aplicativo, pode personalizar a aparência para se ajustar ao design do restante do seu aplicativo. Você pode configurar a aparência com a API Appearance usando AddressViewController.Configuration.appearance.
OpcionalDefinir dados de cobrança padrão
Para definir valores padrão para dados de faturamento coletados na descrição da compra, configure a propriedade defaultBillingDetails. A PaymentSheet preenche previamente seus campos com os valores que você informou.
var configuration = PaymentSheet.Configuration() configuration.defaultBillingDetails.address.country = "US" configuration.defaultBillingDetails.email = "foo@bar.com"
OpcionalPersonalize a coleta de dados de faturamento
Use billingDetailsCollectionConfiguration para especificar como você deseja coletar dados de faturamento na página de pagamento.
Você pode coletar o nome, e-mail, número de telefone e endereço do cliente.
Se você quiser apenas os dados de faturamento exigidos pela forma de pagamento, defina billingDetailsCollectionConfiguration. como verdadeiro. Nesse caso, PaymentSheet. são definidos como os detalhes de faturamento da forma de pagamento.
Se você quiser coletar dados de faturamento adicionais que não são necessariamente exigidos pela forma de pagamento, defina billingDetailsCollectionConfiguration. como falso. Nesse caso, os dados de faturamento coletados por meio da PaymentSheet são definidos como os dados de faturamento da forma de pagamento.
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
Observação
Consulte seu jurídico sobre as leis que se aplicam à coleta de dados. Só colete números de telefone se precisar deles para a transação.