Pular para o conteúdo
Criar conta
ou
Entrar
O logotipo da documentação da Stripe
/
Pergunte à IA
Criar conta
Login
Comece já
Pagamentos
Automação de finanças
Plataformas e marketplaces
Gestão de valores
Ferramentas para desenvolvedores
Comece já
Pagamentos
Automação de finanças
Comece já
Pagamentos
Automação de finanças
Plataformas e marketplaces
Gestão de valores
Visão geral
Sobre os pagamentos da Stripe
Atualize sua integração
Análise de pagamentos
Pagamentos online
Visão geralEncontre seu caso de usoPagamentos gerenciados
Usar Payment Links
Crie uma página de checkout
Criar uma integração avançada
Crie uma integração no aplicativo
Formas de pagamento
Adicionar formas de pagamento
    Visão geral
    Opções de integração de formas de pagamento
    Gerenciar formas de pagamento padrão no Dashboard
    Tipos de forma de pagamento
    Cartões
    Débitos bancários
    Redirecionamentos bancários
    Transferências bancárias
    Transferências de crédito (Sources)
    Compre agora e pague depois
    Pagamentos em tempo real
    Guias de pagamento
    Carteiras
      Alipay
      Amazon Pay
      Apple Pay
        Práticas recomendadas
        Cartes Bancaires com Apple Pay
        Transações recorrentes com Apple Pay
        Tokens de comerciante do Apple Pay
        Mudança de responsabilidade, contestações e reembolsos do Apple Pay
      Cash App Pay
      Google Pay
      GrabPay
      Link
      MB WAY
      MobilePay
      PayPal
      PayPay
      Revolut Pay
      Satispay
      Secure Remote Commerce
      Vipps
      WeChat Pay
    Habilitar formas de pagamento locais por país
    Formas de pagamento personalizadas
Gerenciar formas de pagamento
Checkout mais rápido com o Link
Interfaces de pagamento
Payment Links
Checkout
Web Elements
Elements no aplicativo
Cenários de pagamento
Fluxos de pagamento personalizados
Aquisição flexível
Orquestração
Pagamentos presenciais
Terminal
Outros produtos da Stripe
Financial Connections
Cripto
Climate
Página inicialPagamentosAdd payment methodsWallets

Apple Pay

Permita pagamentos seguros com Apple Pay no iPhone, iPad ou Apple Watch.

Copiar página

Dispositivos aceitos

Consulte a documentação de compatibilidade da Apple para saber quais dispositivos aceitam Apple Pay.

O Apple Pay é compatível com a maioria dos produtos e recursos da Stripe. Os usuários da Stripe podem aceitar Apple Pay em aplicativos iOS em iOS 9 e mais recentes, e na web com Safari iniciando por iOS 10 ou macOS Sierra. Não há tarifas adicionais para processar pagamentos com Apple Pay e os preços são os mesmos de outras transações com cartão.

O Apple Pay está disponível para titulares de cartão em bancos participantes de países aceitos. Para obter mais informações, consulte a documentação da Apple sobre bancos participantes.

  • Localização dos clientes

    Em todo o mundo, exceto Índia

  • Moeda de apresentação

    Ver moedas de apresentação aceitas

  • Confirmação do pagamento

    Iniciada pelo cliente

  • Família da forma de pagamento

    Carteira

  • Pagamentos recorrentes

    Sim (exceto México)

  • Frequência de repasses

    Cronograma de repasses padrão

  • Aceita Connect

    Sim

  • Aceita contestações

    Sim

  • Aceita captura manual

    Sim

  • Reembolsos totais/parciais

    Sim/Sim

Fluxo de pagamentos

Veja abaixo uma demonstração do fluxo de pagamento do Apple Pay na sua página de checkout:

Animação do fluxo de pagamento do Apple Pay mostrando a página de checkout da Stripe, o botão Apple Pay e a caixa de diálogo de confirmação durante o teste.

Usar a Stripe e Apple Pay x compras no aplicativo

Para vendas de produtos, serviços e outros itens físicos, seu aplicativo pode aceitar Apple Pay ou qualquer forma de pagamento aceita pela Stripe. Esses pagamentos são processados pela Stripe, e você só precisa pagar as tarifas de processamento da Stripe. No entanto, compras de produtos, conteúdos e outros itens digitais no aplicativo devem usar as compras no aplicativo da Apple. Esses pagamentos são processados pela Apple e estão sujeitos às tarifas de transação da Apple.

Para obter mais informações sobre quais vendas devem usar compras no aplicativo, consulte as Diretrizes de avaliação da App Store da Apple.

Aceitar Apple Pay

A Stripe oferece vários métodos para adicionar o Apple Pay como forma de pagamento. Para obter detalhes da integração, selecione o método de sua preferência:

Com o SDK da Stripe para iOS, você pode aceitar Apple Pay e pagamentos com cartão de crédito tradicionais. Antes de iniciar, você precisa se inscrever no Apple Developer Program. Em seguida, siga estas etapas:

  1. Configurar a Stripe
  2. Solicitar um ID de comerciante da Apple
  3. Criar um certificado Apple Pay
  4. Integrar com Xcode
  5. Verificar se Apple Pay é aceito
  6. Criar a solicitação de pagamento
  7. Apresentar a descrição da compra
  8. Enviar o pagamento à Stripe

Configurar a Stripe
Lado do servidor
Do lado do cliente

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

Lado do servidor

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

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# 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. In Xcode, select File > Add Package Dependencies… and enter https://github.com/stripe/stripe-ios-spm as the repository URL.
  2. Selecione o número da última versão da nossa página de lançamentos.
  3. Adicione o produto StripeApplePay ao alvo do seu aplicativo.

Observação

For details on the latest SDK release and past versions, see the Releases page on GitHub. To receive notifications when a new release is published, watch releases for the repository.

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 .

AppDelegate.swift
Swift
import UIKit import StripeApplePay @main class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { StripeAPI.defaultPublishableKey =
"pk_test_TYooMQauvdEDq54NiTphI7jx"
// do any other necessary launch configuration return true } }

Observação

Use your test keys while you test and develop, and your live mode keys when you publish your app.

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 do 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

Verificar se o Apple Pay é aceito

Observação

Se você estiver usando o PaymentSheet, a classe gerencia o resto para você.

Antes de mostrar o Apple Pay como forma de pagamento no aplicativo, verifique se o dispositivo do usuário aceita Apple Pay e se o usuário adicionou um cartão à sua carteira:

CheckoutViewController.swift
Swift
import StripeApplePay import PassKit class CheckoutViewController: UIViewController, ApplePayContextDelegate { let applePayButton: PKPaymentButton = PKPaymentButton(paymentButtonType: .plain, paymentButtonStyle: .black) override func viewDidLoad() { super.viewDidLoad() // Only offer Apple Pay if the customer can pay with it applePayButton.isHidden = !StripeAPI.deviceSupportsApplePay() applePayButton.addTarget(self, action: #selector(handleApplePayButtonTapped), for: .touchUpInside) } // ...continued in next step }

Criar a solicitação de pagamento

Quando o usuário toca no botão Apple Pay, chame StripeAPI paymentRequestWithMerchantIdentifier:country:currency: para criar um PKPaymentRequest.

Em seguida, configure PKPaymentRequest para exibir o nome da empresa e o total. Também é possível coletar informações, como dados de cobrança ou entrega.

Consulte a documentação da Apple para obter orientações completas sobre como personalizar a solicitação de pagamento.

CheckoutViewController.swift
Swift
func handleApplePayButtonTapped() { let merchantIdentifier = "merchant.com.your_app_name" let paymentRequest = StripeAPI.paymentRequest(withMerchantIdentifier: merchantIdentifier, country: "US", currency: "USD") // Configure the line items on the payment request paymentRequest.paymentSummaryItems = [ // The final line should represent your company; // it'll be prepended with the word "Pay" (that is, "Pay iHats, Inc $50") PKPaymentSummaryItem(label: "iHats, Inc", amount: 50.00), ] // ...continued in next step }

Apresentar a descrição da compra

Crie uma instância de STPApplePayContext com o PKPaymentRequest e use-a para apresentar a descrição de compra do Apple Pay:

CheckoutViewController.swift
Swift
func handleApplePayButtonTapped() { // ...continued from previous step // Initialize an STPApplePayContext instance if let applePayContext = STPApplePayContext(paymentRequest: paymentRequest, delegate: self) { // Present Apple Pay payment sheet applePayContext.presentApplePay(on: self) } else { // There is a problem with your Apple Pay configuration } }

A Apple exige que os gestos do usuário acionem o modal Apple Pay (por exemplo, clicando em um botão ou interagindo com o formulário). Verifique se o código está de acordo com os itens a seguir:

  • Invocar a descrição da compra diretamente com um evento de ativação do usuário.
  • Adicionar o código da descrição da compra na parte superior ou próxima ao seu gerenciador de eventos de gestos de usuário, antes de qualquer código assíncrono ou de longa execução.
  • Definir um limite de tempo razoável para chamar confirmPayment após o gesto do usuário.

Enviar o pagamento para a Stripe

Lado do servidor

Crie um endpoint que crie um PaymentIntent com um valor e uma moeda. Sempre decida quanto cobrar do lado do servidor, um ambiente seguro, em vez do lado do cliente. Isso evita que clientes mal-intencionados possam escolher os preços.

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd"

Do lado do cliente

Implemente applePayContext(_:didCreatePaymentMethod:completion:) para chamar o bloco de finalização com o segredo do cliente do PaymentIntent obtido do endpoint acima.

Depois de chamar o bloco de finalização, STPApplePayContext conclui o pagamento, descarta a descrição da compra do Apple Pay e chama applePayContext(_:didCompleteWithStatus:error:) com o status do pagamento. Implemente este método para mostrar um recibo ao cliente.

CheckoutViewController.swift
Swift
extension CheckoutViewController { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: StripeAPI.PaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { let clientSecret = ... // Retrieve the PaymentIntent client secret from your backend (see Server-side step above) // Call the completion block with the client secret or an error completion(clientSecret, error) } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPApplePayContext.PaymentStatus, error: Error?) { switch status { case .success: // Payment succeeded, show a receipt view break case .error: // Payment failed, show the error break case .userCancellation: // User canceled the payment break @unknown default: fatalError() } } }

Por fim, gerencie os eventos pós-pagamento para realizar ações como enviar um e-mail de confirmação de pedido ao cliente, registrar a venda em um banco de dados ou iniciar um fluxo de trabalho de entrega.

Solução de problemas

Quando ocorrem erros da API Stripe durante a criação de tokens, é provável que o problema esteja no certificado do Apple Pay. Gere um novo certificado e carregue-o na Stripe, como descrito nesta página. Use um CSR obtido do Dashboard (não use certificados gerados por você mesmo). Muitas vezes, o Xcode armazena incorretamente certificados antigos no cache. Por isso, além de gerar um novo certificado, a Stripe recomenda que você também crie outro ID de comerciante da Apple.

O erro:

Você não adicionou a conta de comerciante da Apple à Stripe

pode indicar que o aplicativo está enviando dados criptografados com um CSR/certificado anterior (que não é da Stripe). No seu ID de comerciante da Apple, revogue todos os certificados gerados por CSRs que não sejam da Stripe . Se o erro persistir, exclua o ID de comerciante da conta Apple e crie o ID novamente. Em seguida, crie um certificado baseado no mesmo CSR (fornecido pela Stripe) usando anteriormente. Não é necessário carregar esse novo certificado para a Stripe. Para concluir, desative e ative as credenciais do Apple Pay no aplicativo para atualizá-las.

Clipes de Apps

O módulo StripeApplePay é um SDK leve da Stripe, otimizado para uso em um Clipe de App. Siga as instruções acima para adicionar o módulo StripeApplePay ao destino do Clipe de App.

Observação

O módulo StripeApplePay é aceito apenas pelo Swift. Usuários de Objective-C precisam importar STPApplePayContext do módulo Stripe.

Migração do STPApplePayContext

Se você é um usuário atual do STPApplePayContext e quer mudar para o SDK leve do Apple Pay, siga estas instruções:

  1. Nas dependências do destino do Clipe de App, substitua o módulo Stripe pelo módulo StripeApplePay.
  2. Na programação, substitua import Stripe por import StripeApplePay.
  3. Substitua o uso de STPApplePayContextDelegate pelo novo protocolo ApplePayContextDelegate.
  4. Altere a implementação de applePayContext(_:didCreatePaymentMethod:completion:) para aceitar um StripeAPI.PaymentMethod.
  5. Altere sua implementação de applePayContext(_:didCompleteWith:error:) para aceitar um STPApplePayContext.PaymentStatus.
Antes
Depois
import Stripe class CheckoutViewController: UIViewController, STPApplePayContextDelegate { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: STPPaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { // ... } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPPaymentStatus, error: Error?) { // ... } }
import StripeApplePay class CheckoutViewController: UIViewController, ApplePayContextDelegate { func applePayContext(_ context: STPApplePayContext, didCreatePaymentMethod paymentMethod: StripeAPI.PaymentMethod, paymentInformation: PKPayment, completion: @escaping STPIntentClientSecretCompletionBlock) { // ... } func applePayContext(_ context: STPApplePayContext, didCompleteWith status: STPApplePayContext.PaymentStatus, error: Error?) { // ... } }

Pagamentos recorrentes

No iOS 16 ou posterior, você pode adotar tokens de comerciante definindo as propriedades recurringPaymentRequest ou automaticReloadPaymentRequest em PKPaymentRequest.

CheckoutViewController.swift
Swift
extension CheckoutViewController { func handleApplePayButtonTapped() { let request = StripeAPI.paymentRequest(withMerchantIdentifier: merchantIdentifier, country: "US", currency: "USD") let billing = PKRecurringPaymentSummaryItem(label: "My Subscription", amount: NSDecimalNumber(string: "59.99")) billing.startDate = Date() billing.endDate = Date().addingTimeInterval(60 * 60 * 24 * 365) billing.intervalUnit = .month request.recurringPaymentRequest = PKRecurringPaymentRequest(paymentDescription: "Recurring", regularBilling: billing, managementURL: URL(string: "https://my-backend.example.com/customer-portal")!) request.recurringPaymentRequest?.billingAgreement = "You'll be billed $59.99 every month for the next 12 months. To cancel at any time, go to Account and click 'Cancel Membership.'" request.paymentSummaryItems = [billing] } }

Para saber mais sobre como usar pagamentos recorrentes com o Apple Pay, consulte a documentação do PassKit da Apple.

Rastreamento de pedidos

Para adotar o rastreamento de pedidos no iOS 16 ou posterior, implemente a funçãoapplePayContext(context:willCompleteWithResult:handler:) em seu ApplePayContextDelegate. A Stripe chama sua implementação após a conclusão do pagamento, mas antes que o iOS ignore a descrição de compra do Apple Pay.

Em sua implementação:

  1. Obtenha em seu servidor os detalhes do pedido concluído.
  2. Adicione esses detalhes ao PKPaymentAuthorizationResult.
  3. Chame o gerenciador de conclusão informado na fila principal.

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

CheckoutViewController.swift
Swift
extension CheckoutViewController { func applePayContext(_ context: STPApplePayContext, willCompleteWithResult authorizationResult: PKPaymentAuthorizationResult, handler: @escaping (PKPaymentAuthorizationResult) -> Void) { // Fetch the order details from your service MyAPIClient.shared.fetchOrderDetails(orderID: myOrderID) { myOrderDetails authorizationResult.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 handler block on the main queue with your modified PKPaymentAuthorizationResult handler(authorizationResult) } } }

Testar Apple Pay

Para testar o Apple Pay, use um número de cartão de crédito real e suas chaves de API de teste. A Stripe reconhece que você está testando e retorna um token de cartão de teste para que possa fazer pagamentos de teste em um cartão em modo de produção sem cobrá-lo.

Não é possível salvar cartões de teste da Stripe ou cartões de teste da Apple Pay em carteiras da Apple Pay para testar o Apple Pay.

Veja também

  • Integração com iOS
  • Apple Pay na Web
  • Práticas recomendadas do Apple Pay
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