Apple Pay
Permita pagamentos seguros com Apple Pay no iPhone, iPad ou Apple Watch.
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 no iOS 9 e mais recentes, e na web pelo Safari a partir do 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 por 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.
Fluxo de pagamentos
Veja abaixo uma demonstração do fluxo de pagamento do Apple Pay na sua página de checkout:
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:
- Configurar a Stripe
- Solicitar um ID de comerciante da Apple
- Criar um certificado Apple Pay
- Integrar com Xcode
- Verificar se Apple Pay é aceito
- Criar a solicitação de pagamento
- Apresentar a descrição da compra
- Enviar o pagamento à Stripe
Configurar a StripeLado do servidorDo 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:
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.
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 .
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.
).
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:
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.
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:
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.
Do lado do cliente
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:
- Nas dependências do destino do Clipe de App, substitua o módulo
Stripe
pelo móduloStripeApplePay
. - Na programação, substitua
import Stripe
porimport StripeApplePay
. - Substitua o uso de
STPApplePayContextDelegate
pelo novo protocoloApplePayContextDelegate
. - Altere a implementação de
applePayContext(_
para aceitar um:didCreatePaymentMethod:completion:) StripeAPI.
.PaymentMethod - Altere sua implementação de
applePayContext(_
para aceitar um:didCompleteWith:error:) STPApplePayContext.
.PaymentStatus
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
.
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:
- Obtenha em seu servidor os detalhes do pedido concluído.
- Adicione esses detalhes ao PKPaymentAuthorizationResult.
- 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.
Testar o Apple Pay
As informações do cartão de teste da Stripe não podem ser salvas no Wallet no iOS. O que a Stripe faz é reconhecer que você está usando as chaves de API de teste e retornar um token de cartão de teste bem-sucedido para seu uso. Assim, é possível fazer pagamentos de teste com um cartão em modo de produção, sem cobrá-lo.