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:
Você pode usar o SDK React Native da Stripe para aceitar Apple Pay e pagamentos com cartão de crédito tradicionais. Antes de iniciar, você precisa se inscrever no Programa de Desenvolvedores da Apple e configurar a Stripe no seu servidor e aplicativo. Em seguida, siga estas etapas:
- Solicitar um ID de comerciante da Apple
- Criar um certificado Apple Pay
- Integrar com Xcode
- Configurar o ID de comerciante da Apple no StripeProvider
- Verificar se Apple Pay é aceito
- Apresentar a descrição da compra
- Enviar o pagamento à 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
Configurar o ID de comerciante da Apple no StripeProvider
No componente StripeProvider
, especifique o ID de comerciante da Apple que você solicitou:
import { StripeProvider } from '@stripe/stripe-react-native'; function App() { return ( <StripeProvider publishableKey="
" merchantIdentifier="merchant.com.{{YOUR_APP_NAME}}" > // Your app code here </StripeProvider> ); }pk_test_TYooMQauvdEDq54NiTphI7jx
Verificar se o Apple Pay é aceito
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:
import { PlatformPayButton, isPlatformPaySupported } from '@stripe/stripe-react-native'; function PaymentScreen() { const [isApplePaySupported, setIsApplePaySupported] = useState(false); useEffect(() => { (async function () { setIsApplePaySupported(await isPlatformPaySupported()); })(); }, [isPlatformPaySupported]); // ... const pay = async () => { // ... }; // ... return ( <View> {isApplePaySupported && ( <PlatformPayButton onPress={pay} type={PlatformPay.ButtonType.Order} appearance={PlatformPay.ButtonStyle.Black} borderRadius={4} style={{ width: '100%', height: 50, }} /> )} </View> ); }
Criar o Payment Intent
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
Crie um método que solicite um PaymentIntent do seu servidor:
function PaymentScreen() { // ... const fetchPaymentIntentClientSecret = async () => { const response = await fetch(`${API_URL}/create-payment-intent`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ some: 'value', }), }); const { clientSecret } = await response.json(); return clientSecret; }; // ... }
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.
Apresentar a descrição da compra
Na propriedade onPress
do PlatformPayButton
, chame confirmPlatformPayPayment
para abrir uma planilha do Apple Pay. Para exibir os itens do carrinho do cliente na descrição do pagamento, passe os itens como argumento.
Observação
No código que gerencia a ação do cliente, não inclua ações complexas ou assíncronas antes de exibir a descrição do pagamento. Se a ação do usuário não invocar diretamente a descrição do pagamento, o Apple Pay retorna um erro.
import { confirmPlatformPayPayment } from '@stripe/stripe-react-native'; function PaymentScreen() { // ... see above const pay = async () => { const clientSecret = await fetchPaymentIntentClientSecret() const { error } = await confirmPlatformPayPayment( clientSecret, { applePay: { cartItems: [ { label: 'Example item name', amount: '14.00', paymentType: PlatformPay.PaymentType.Immediate, }, { label: 'Total', amount: '12.75', paymentType: PlatformPay.PaymentType.Immediate, }, ], merchantCountryCode: 'US', currencyCode: 'USD', requiredShippingAddressFields: [ PlatformPay.ContactField.PostalAddress, ], requiredBillingContactFields: [PlatformPay.ContactField.PhoneNumber], }, } ); if (error) { // handle error } else { Alert.alert('Success', 'Check the logs for payment intent details.'); console.log(JSON.stringify(paymentIntent, null, 2)); } }; // ... see above }
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.