Pular para o conteúdo
Criar conta
ou
Entrar
O logotipo da documentação da Stripe
/
Pergunte à IA
Criar conta
Login
Comece já
Pagamentos
Receita
Plataformas e marketplaces
Gestão de valores
Recursos para desenvolvedores
Visão geral
Sobre os pagamentos da Stripe
Atualize sua integração
Análise de pagamentos
Pagamentos online
Visão geralEncontre seu caso de usoUsar o Managed Payments
Usar Payment Links
Usar uma página de checkout predefinida
Criar uma integração personalizada com o Elements
Crie uma integração no aplicativo
    Visão geral
    Descrição da compra
      Aceite pagamentos no aplicativo
      Adicione formas de pagamento personalizadas
      Personalizar a aparência
      Finalizar pagamentos no servidor
      Salvar dados de pagamento durante o pagamento
      Configurar pagamentos futuros
      Filtrar bandeiras de cartão
    Element Pagamento
    Link para compras no aplicativo
    Solicitar endereços
    Gerenciar formas de pagamento nas configurações
    Cartões dos EUA e Canadá
Formas de pagamento
Adicionar formas de pagamento
Gerenciar formas de pagamento
Checkout mais rápido com o Link
Interfaces de pagamento
Payment Links
Checkout
Web Elements
Pagamentos no aplicativo
Cenários de pagamento
Gerenciar várias moedas
Fluxos de pagamento personalizados
Aquisição flexível
Orquestração
Pagamentos presenciais
Terminal
Muito mais que pagamentos
Abra sua empresa
Cripto
Comércio agêntico
Financial Connections
Climate
Entenda as fraudes
Proteção contra fraudes do Radar
Gerenciar contestações
Verificar identidades
Página inicialPagamentosBuild an in-app integrationPayment Sheet

Salvar dados de pagamento durante um pagamento no aplicativo

Salve dados de pagamento durante um pagamento no seu aplicativo móvel.

Use a API Payment Intents para salvar os dados de pagamento de uma compra. São diversos casos de uso:

  • Cobre um cliente por um pedido de e-commerce e armazene os dados para compras futuras.
  • Inicie o primeiro pagamento de uma série de pagamentos recorrentes.
  • Cobre um depósito e armazene os dados para cobrar o valor total depois.

Transações com apresentação de cartão

Transações com apresentação de cartão, como pagamentos usando o Stripe Terminal, usam um processo diferente para salvar a forma de pagamento. Para obter mais informações, consulte a documentação do Terminal.

conformidade

Você é responsável por cumprir todas as leis, regulamentos e regras da bandeira em vigor ao salvar os dados de pagamento de um cliente. Esses requisitos geralmente se aplicam quando você quer salvar a forma de pagamento do cliente para uso futuro, como exibir a forma de pagamento de um cliente para ele no fluxo de checkout para uma compra futura ou cobrá-lo quando não estiver usando seu site ou aplicativo. Adicione termos ao seu site ou aplicativo que definam como você planeja salvar os dados da forma de pagamento e permitir que os clientes aceitem.

Quando salva uma forma de pagamento, você só pode usá-la para o uso específico incluído nos seus termos. Para cobrar uma forma de pagamento quando o cliente está offline e salvá-la como opção para compras futuras, não se esqueça de obter o consentimento do cliente para esse uso específico. Por exemplo, inclua a caixa de seleção “Salvar minha forma de pagamento para uso futuro” para coletar consentimento.

Para cobrar os clientes quando eles estiverem offline, certifique-se de que seus termos incluam o seguinte:

  • A concordância do cliente para que você inicie um pagamento ou uma série de pagamentos em nome dele para transações específicas.
  • O momento e a frequência previstos para os pagamentos (por exemplo, se são cobranças de parcelas agendadas, pagamentos de assinatura ou recargas não agendadas).
  • Como você determina o valor do pagamento.
  • Sua política de cancelamento, se a forma de pagamento for usada em um serviço de assinatura.

Não se esqueça de manter um registro por escrito da concordância do cliente com esses termos.

Configuração da Stripe
Lado do servidor
Lado do cliente

Primeiro, você precisa de uma conta Stripe. Inscreva-se agora.

Lado do servidor

Esta integração exige que os endpoints do seu servidor se comuniquem com a API da Stripe. Use nossas bibliotecas oficiais para acessar a API da Stripe partir do seu servidor:

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Lado do cliente

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.

Para instalar o SDK, siga estas etapas:

  1. No Xcode, selecione Arquivo > Adicionar dependências de pacote… e insira https://github.com/stripe/stripe-ios-spm como URL do repositório.
  2. Selecione o número da última versão da nossa página de lançamentos.
  3. Adicione o produto StripePaymentSheet ao alvo do seu aplicativo.

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.

Habilitar formas de pagamento

Os pagamentos com cartão são habilitados por padrão. Veja as configurações de formas de pagamento para habilitar outras formas de pagamento que você quer aceitar.

Adicione um endpoint
Lado do servidor

Nota

Para exibir o PaymentSheet antes de criar um PaymentIntent, consulte Colete os dados de pagamento antes de criar um Intent.

Esta integração usa três objetos da API da Stripe:

  1. PaymentIntent: A Stripe usa isso para representar sua intenção de coletar o pagamento de um cliente, acompanhando suas tentativas de cobrança e alterações no estado do pagamento durante todo o processo.

  2. Customer: Para configurar uma forma de pagamento para pagamentos futuros, vincule-a a um Customer. Crie um objeto Customer quando o cliente abrir uma conta na sua empresa. Se o cliente pagar como convidado, você pode criar o objeto Customer antes do pagamento e associá-lo à sua representação interna da conta do cliente, mais tarde.

  3. Chave Efêmera de Cliente: as informações sobre o objeto Customer são confidenciais e não podem ser obtidas diretamente por um apliativo. Uma Chave Efêmera concede acesso temporário ao Cliente para o SDK.

Por motivos de segurança, seu aplicativo não pode criar esses objetos. Em vez disso, adicione um endpoint ao seu servidor que:

  1. Recuperar ou criar um Customer.
  2. Criar uma chave efêmera para o Customer.
  3. Cria um PaymentIntent com o valor, a moeda e o cliente, bem como o setup_future_usage . Também é possível incluir opcionalmente o parâmetro automatic_payment_methods. A Stripe habilita sua funcionalidade por padrão na versão mais recente da API.
  4. Retorna o segredo do cliente do Payment Intent, o secret da chave efêmera, o id do cliente e sua chave publicável ao aplicativo.

Observação

O Element Pagamento para dispositivos móveis só aceita setup_future_usage com cartões e contas bancárias dos EUA.

As formas de pagamento mostradas aos clientes durante o processo de checkout também são incluídas no PaymentIntent. Você pode permitir que a Stripe obtenha as formas de pagamento das configurações do Dashboard ou listá-las manualmente. Independentemente da opção escolhida, saiba que a moeda passada no PaymentIntent filtra as formas de pagamento mostradas para o cliente. Por exemplo, se você passar EUR no eur e a OXXO estiver ativada no Dashboard, a OXXO não será exibida ao cliente porque a OXXO não aceita pagamentos em eur.

Se sua integração não exige uma opção baseada em código para oferecer formas de pagamento, a Stripe recomenda a opção automática. Isso ocorre porque a Stripe avalia a moeda, as restrições de forma de pagamento e outros parâmetros para determinar a lista de formas de pagamento aceitas. Priorizamos as formas de formas de pagamento que aumentam a conversão e que são mais relevantes para a moeda e a localização do cliente.

Observação

Você pode clonar e executar uma implementação de exemplo deste endpoint diretamente no CodeSandbox para testar o comportamento.

Você pode gerenciar formas de pagamento no Dashboard. A Stripe processa a devolução de formas de pagamento qualificadas com base em fatores como valor, moeda e fluxo de pagamento da transação. O PaymentIntent é criado usando as formas de pagamento configuradas no Dashboard. Se não quiser usar o Dashboard ou se quiser especificar formas de pagamento manualmente, você pode listá-las usando o atributo payment_method_types.

Command Line
curl
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Create a Customer (use an existing Customer ID if this is a returning customer) curl https://api.stripe.com/v1/customers \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST" # Create an Ephemeral Key for the Customer curl https://api.stripe.com/v1/ephemeral_keys \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -H "Stripe-Version: 2025-09-30.clover" \ -X "POST" \ -d "customer"="{{CUSTOMER_ID}}" \ # Create a PaymentIntent curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "amount"=1099 \ -d "currency"="eur" \ -d "setup_future_usage"="off_session" \ # In the latest version of the API, specifying the `automatic_payment_methods` parameter # is optional because Stripe enables its functionality by default. -d "automatic_payment_methods[enabled]"=true \

Coletar dados de pagamento
Lado do cliente

Para exibir o Payment Element para dispositivos móveis na tela de checkout, não se esqueça de:

  • Mostrar os produtos que o cliente está comprando e o valor total
  • Usar o Address Element para coletar todos os dados de envio necessários do cliente
  • Adicionar um botão de checkout para exibir a IU da Stripe

No checkout do seu aplicativo, obtenha o segredo do cliente do PaymentIntent, o segredo da chave efêmera, o ID do cliente e a chave publicável do endpoint que você criou na etapa anterior. Defina a chave publicável usando StripeAPI.shared e inicialize PaymentSheet.

import UIKit import StripePaymentSheet class CheckoutViewController: UIViewController { @IBOutlet weak var checkoutButton: UIButton! var paymentSheet: PaymentSheet? let backendCheckoutUrl = URL(string: "Your backend endpoint/payment-sheet")! // Your backend endpoint override func viewDidLoad() { super.viewDidLoad() checkoutButton.addTarget(self, action: #selector(didTapCheckoutButton), for: .touchUpInside) checkoutButton.isEnabled = false // MARK: Fetch the PaymentIntent client secret, Ephemeral Key secret, Customer ID, and publishable key var request = URLRequest(url: backendCheckoutUrl) request.httpMethod = "POST" let task = URLSession.shared.dataTask(with: request, completionHandler: { [weak self] (data, response, error) in guard let data = data, let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String : Any], let customerId = json["customer"] as? String, let customerEphemeralKeySecret = json["ephemeralKey"] as? String, let paymentIntentClientSecret = json["paymentIntent"] as? String, let publishableKey = json["publishableKey"] as? String, let self = self else { // Handle error return } STPAPIClient.shared.publishableKey = publishableKey // MARK: Create a PaymentSheet instance var configuration = PaymentSheet.Configuration() configuration.merchantDisplayName = "Example, Inc." configuration.customer = .init(id: customerId, ephemeralKeySecret: customerEphemeralKeySecret) // Set `allowsDelayedPaymentMethods` to true if your business handles // delayed notification payment methods like US bank accounts. configuration.allowsDelayedPaymentMethods = true self.paymentSheet = PaymentSheet(paymentIntentClientSecret: paymentIntentClientSecret, configuration: configuration) DispatchQueue.main.async { self.checkoutButton.isEnabled = true } }) task.resume() } }

Quando o cliente toca no botão Checkout, invoque present para apresentar a PaymentSheet. Após o cliente concluir o pagamento, a descrição é descartada e o bloco de conclusão é invocado com PaymentSheetResult.

@objc func didTapCheckoutButton() { // MARK: Start the checkout process paymentSheet?.present(from: self) { paymentResult in // MARK: Handle the payment result switch paymentResult { case .completed: print("Your order is confirmed") case .canceled: print("Canceled!") case .failed(let error): print("Payment failed: \(error)") } } }

Se PaymentSheetResult for .completed, informe ao usuário (por exemplo, exibindo uma tela de confirmação de pedido).

Configurar allowsDelayedPaymentMethods como verdadeiro permite formas de pagamento de notificação assíncrona como contas bancárias dos EUA. Para essas formas de pagamento, o status final do pagamento não é conhecido quando o PaymentSheet é concluído, sendo efetivado ou não posteriormente. Se você aceitar esses tipos de formas de pagamento, informe o cliente que seu pedido está confirmado e somente processe o pedido (por exemplo, fazendo o envio do produto) quando o pagamento for bem-sucedido.

Configurar um URL de retorno
Lado do cliente

O cliente pode sair do seu aplicativo para autenticar (por exemplo, no Safari ou no aplicativo bancário). Para permitir que eles voltem ao seu aplicativo após a autenticação, configure um esquema de URL personalizado e configure seu aplicativo delegado para encaminhar o URL ao SDK. A Stripe não aceita links universais.

SceneDelegate.swift
Swift
No results
// This method handles opening custom URL schemes (for example, "your-app://stripe-redirect") func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { guard let url = URLContexts.first?.url else { return } let stripeHandled = StripeAPI.handleURLCallback(with: url) if (!stripeHandled) { // This was not a Stripe url – handle the URL normally as you would } }

Além disso, defina o returnURL no seu objeto PaymentSheet.Configuration para o URL do seu aplicativo.

var configuration = PaymentSheet.Configuration() configuration.returnURL = "your-app://stripe-redirect"

Gerenciar eventos pós-pagamento
Lado do servidor

Stripe envia um evento payment_intent.succeeded quando o pagamento é concluído. Use a ferramenta Dashboard webhook ou siga o guia de webhooks para receber esses eventos e executar ações, como enviar um e-mail de confirmação do pedido ao cliente, registrar a venda em um banco de dados ou iniciar um fluxo de trabalho de envio.

Escute esses eventos em vez de aguardar um retorno de chamada do cliente. No cliente, o consumidor pode fechar a janela do navegador ou sair do aplicativo antes da execução do retorno de chamada, o que permite que clientes mal-intencionados manipulem a resposta. Configurar sua integração para escutar eventos assíncronos é o que permite a você aceitar diferentes tipos de formas de pagamento com uma única integração.

Além de gerenciar o evento payment_intent.succeeded, recomendamos gerenciar esses outros eventos ao coletar pagamentos com o Element Pagamento:

EventoDescriçãoAção
payment_intent.succeededEnviado quando um cliente conclui um pagamento com êxito.Envie ao cliente uma confirmação de pedido e processe o pedido.
payment_intent.processingEnviado quando um cliente inicia um pagamento, mas o pagamento ainda precisa ser concluído. Esse evento costuma ser enviado quando um cliente inicia um débito bancário. Ele é seguido por um evento payment_intent.succeeded ou payment_intent.payment_failed no futuro.Envie ao cliente uma confirmação do pedido que indica que o pagamento está pendente. Para produtos digitais, pode ser necessário executar o pedido antes de aguardar a conclusão do pagamento.
payment_intent.payment_failedEnviado quando um cliente tenta fazer um pagamento, mas o pagamento falha.Se um pagamento passa de processing para payment_failed, ofereça ao cliente outra tentativa para pagar.

Cobrar mais tarde a forma de pagamento salva
Lado do servidor

Conformidade

Você é responsável por cumprir todas as leis, regulamentos e regras de rede aplicáveis ao salvar os dados de pagamento de um cliente. Quando exibir formas de pagamento passadas ao seu cliente final para compras futuras, liste as formas de pagamento para as quais obteve consentimento do cliente para salvar os dados para esse uso futuro específico. Para diferenciar entre formas de pagamento vinculadas a clientes que podem e não podem ser apresentados ao seu cliente final como uma forma de pagamento salva para compras futuras, use o parâmetro allow_redisplay.

Quando estiver pronto para cobrar do cliente fora da sessão, use os IDs do cliente e do PaymentMethod para criar uma PaymentIntent. Para encontrar uma forma de pagamento para cobrar, liste as formas de pagamento associadas ao seu cliente. Este exemplo lista cartões, mas você pode listar qualquer tipo aceito.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -G https://api.stripe.com/v1/payment_methods \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}
\ -d type=card

Quando tiver os IDs de Customer e PaymentMethod, crie um PaymentIntent com o valor e moeda do pagamento. Outros parâmetros que precisam ser definidos para o pagamento fora de sessão:

  • Defina off_session como true para indicar que o cliente não está em seu fluxo de checkout durante uma tentativa de pagamento e não pode executar uma solicitação de autenticação feita por um parceiro, como emissor de cartão, banco ou outra instituição de pagamento. Se, durante o fluxo de checkout, um parceiro solicitar autenticação, a Stripe solicitará isenções usando informações do cliente de uma transação na sessão anterior. Se as condições de isenção não forem atendidas, o PaymentIntent pode gerar um erro.
  • Defina o valor da propriedade confirm do PaymentIntent como true, para que a confirmação ocorra imediatamente após a criação do PaymentIntent.
  • Defina payment_method com o ID do PaymentMethod e customer com o ID do Cliente.
Command Line
curl
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d amount=1099 \ -d currency=usd \ # In the latest version of the API, specifying the `automatic_payment_methods` parameter is optional because Stripe enables its functionality by default. -d "automatic_payment_methods[enabled]"=true \ -d customer="{{CUSTOMER_ID}}" \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ -d return_url="https://example.com/order/123/complete" \ -d off_session=true \ -d confirm=true

Teste a integração

Forma de pagamentoCenárioComo testar
Cartão de créditoA configuração do cartão é realizada e não precisa de autenticação.Preencha o formulário do cartão de crédito usando o número de cartão de crédito 4242 4242 4242 4242 com qualquer validade, CVC e código postal.
Cartão de créditoO cartão precisa de autenticação para a configuração inicial e depois pode ser utilizado em pagamentos subsequentes.Preencha o formulário do cartão de crédito usando o número do cartão de crédito 4000 0025 0000 3155 com qualquer validade, CVC e código postal.
Cartão de créditoO cartão precisa de autenticação para a configuração inicial e também precisa de autenticação para pagamentos subsequentes.Preencha o formulário do cartão de crédito usando o número do cartão de crédito 4000 0027 6000 3184 com qualquer validade, CVC e código postal.
Cartão de créditoO cartão é recusado durante a configuração.Preencha o formulário do cartão de crédito usando o número do cartão de crédito 4000 0000 0000 9995 com qualquer validade, CVC e código postal.

OpcionalAtivar Apple Pay

Observação

Se sua tela de checkout tiver um botão da Apple Pay exclusivo, siga o guia da Apple Pay e use a ApplePayContext para coletar pagamento do seu botão Apple Pay. Você pode usar PaymentSheet para processar outros tipos de forma de pagamento.

Solicitar um ID de comerciante da Apple

Obtenha um ID de comerciante da Apple solicitando um novo identificador no site de desenvolvedores da Apple.

Preencha o formulário com descrição e identificador. A descrição é para seu controle e pode ser modificada no futuro. A Stripe recomenda que você use o nome do aplicativo como identificador (por exemplo, merchant.com.{{YOUR_APP_NAME}}).

Criar um certificado Apple Pay

Crie um certificado para criptografia de dados de pagamento pelo aplicativo.

Vá até Configurações de certificado do iOS no Dashboard, clique em Adicionar novo aplicativo e siga o guia.

Baixe um arquivo de solicitação de assinatura de certificado (CSR) para obter um certificado seguro da Apple que permite usar o Apple Pay.

Um arquivo CSR deve ser usado para emitir exatamente um certificado. Se você trocar seu ID de comerciante da Apple, acesse as Configurações de certificado do iOS no Dashboard para obter um novo CSR e certificado.

Integrar com Xcode

Adicione as funções do Apple Pay ao aplicativo. No Xcode, abra as configurações do projeto, clique na guia Signing & Capabilities e adicione o recurso Apple Pay. Talvez seja necessário fazer login na sua conta de desenvolvedor. Selecione o ID de comerciante criado anteriormente e o aplicativo já pode aceitar Apple Pay.

Habilitar o recurso Apple Pay no Xcode

Adicionar Apple Pay

Para adicionar Apple Pay à PaymentSheet, defina applePay após inicializar PaymentSheet.Configuration com seu ID de comerciante Apple e o código de país da sua empresa.

var configuration = PaymentSheet.Configuration() configuration.applePay = .init( merchantId: "merchant.com.your_app_name", merchantCountryCode: "US" )

Rastreamento de pedidos

Para adicionar informações de rastreamento de pedidos no iOS 16 ou posterior, configure um authorizationResultHandler em seu PaymentSheet.ApplePayConfiguration.Handlers. A Stripe invoca sua implementação após a conclusão do pagamento, mas antes que o iOS descarte a descrição Apple Pay.

Na implementação authorizationResultHandler, obtenha os detalhes do pedido concluído no seu servidor. Adicione os detalhes ao PKPaymentAuthorizationResult informado e chame o gerenciador de conclusão informado.

Para saber mais sobre o rastreamento de pedidos, consulte a documentação de pedidos da carteira da Apple.

let customHandlers = PaymentSheet.ApplePayConfiguration.Handlers( authorizationResultHandler: { result, completion in // Fetch the order details from your service MyAPIClient.shared.fetchOrderDetails(orderID: orderID) { myOrderDetails result.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 completion block on the main queue with your modified PKPaymentAuthorizationResult completion(result) } } ) var configuration = PaymentSheet.Configuration() configuration.applePay = .init(merchantId: "merchant.com.your_app_name", merchantCountryCode: "US", customHandlers: customHandlers)

OpcionalHabilitar leitura de cartões

Para habilitar o suporte à leitura de cartão, defina a NSCameraUsageDescription (Privacidade - Descrição de uso de câmera) no Info.plist do seu aplicativo e informe um motivo para acessar a câmera (por exemplo, “Para ler cartões”). Dispositivos com iOS 13 ou versão mais recente aceitam a leitura de cartões.

OpcionalPersonalizar a descrição

Toda personalização é configurada usando o objeto PaymentSheet.Configuration.

Aparência

Personalize cores, fontes e outros atributos de acordo com a aparência do aplicativo usando a API Appearance.

Layout da forma de pagamento

Configure o layout das formas de pagamento na planilha usando paymentMethodLayout. Você pode exibi-los horizontalmente, verticalmente ou deixar a Stripe otimizar o layout automaticamente.

var configuration = PaymentSheet.Configuration() configuration.paymentMethodLayout = .automatic

Coletar endereços de usuários

Colete endereços de entrega ou cobrança locais e internacionais de seus clientes usando o Address Element.

Nome de exibição do comerciante

Especifique o nome da empresa exibido para o cliente definindo merchantDisplayName. Por padrão, esse é o nome do seu aplicativo.

var configuration = PaymentSheet.Configuration() configuration.merchantDisplayName = "My app, Inc."

Modo escuro

A PaymentSheet se adapta automaticamente às configurações de aparência do sistema do usuário (modos claro e escuro). Se o seu aplicativo não aceitar o modo escuro, defina estilo como modo alwaysLight ou alwaysDark.

var configuration = PaymentSheet.Configuration() configuration.style = .alwaysLight

Dados de faturamento 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"

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.attachDefaultsToPaymentMethod como verdadeiro. Nesse caso, PaymentSheet.Configuration.defaultBillingDetails 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.attachDefaultsToPaymentMethod 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.

OpcionalConclua o pagamento em sua IU

Você pode exibir o Payment Sheet apenas para coletar dados da forma de pagamento e depois chamar um método confirm para concluir o pagamento na IU do aplicativo. Isso é útil quando você tem um botão de compra personalizado ou precisa de mais etapas após a coleta dos dados do pagamento.

Conclua o pagamento na IU do aplicativo

As etapas a seguir mostram como concluir o pagamento na IU do aplicativo. Veja nosso exemplo de integração no GitHub.

  1. Primeiro, inicialize PaymentSheet.FlowController em vez de PaymentSheet e atualize a IU com sua propriedade paymentOption. Essa propriedade contém uma imagem e um rótulo que representam a forma de pagamento padrão selecionada inicialmente pelo cliente.
PaymentSheet.FlowController.create(paymentIntentClientSecret: paymentIntentClientSecret, configuration: configuration) { [weak self] result in switch result { case .failure(let error): print(error) case .success(let paymentSheetFlowController): self?.paymentSheetFlowController = paymentSheetFlowController // Update your UI using paymentSheetFlowController.paymentOption } }
  1. Em seguida, chame presentPaymentOptions para coletar os detalhes do pagamento. Quando terminar, atualize sua IU novamente com a propriedade paymentOption.
paymentSheetFlowController.presentPaymentOptions(from: self) { // Update your UI using paymentSheetFlowController.paymentOption }
  1. Por fim, chame confirm.
paymentSheetFlowController.confirm(from: self) { paymentResult in // MARK: Handle the payment result switch paymentResult { case .completed: print("Payment complete!") case .canceled: print("Canceled!") case .failed(let error): print(error) } }

Configurar allowsDelayedPaymentMethods como verdadeiro permite formas de pagamento de notificação assíncrona como contas bancárias dos EUA. Para essas formas de pagamento, o status final do pagamento não é conhecido quando o PaymentSheet é concluído, sendo efetivado ou não posteriormente. Se você aceitar esses tipos de formas de pagamento, informe o cliente que seu pedido está confirmado e somente processe o pedido (por exemplo, fazendo o envio do produto) quando o pagamento for bem-sucedido.

Esta página foi útil?
SimNão
  • Precisa de ajuda? Fale com o suporte.
  • Participe do nosso programa de acesso antecipado.
  • Confira nosso changelog.
  • Dúvidas? Fale com a equipe de vendas.
  • LLM? Read llms.txt.
  • Powered by Markdoc