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
Ferramentas 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 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
    Pagar com saldo da Stripe
    Cripto
    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
      Boleto
      Konbini
      Multibanco
      OXXO
        Aceitar um pagamento
    Carteiras
    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 methodsVouchersOXXO

Aceitar um pagamento OXXO

Veja como aceitar OXXO, uma forma de pagamento comum no México.

Copiar página

Cuidado

Recomendamos seguir o guia Aceitar um pagamento, a menos que precise usar confirmação manual no lado do servidor ou que sua integração exija apresentação separada de formas de pagamento. Se você já fez a integração com o Elements, consulte o guia de migração do Payment Element.

Para receber OXXO em seu aplicativo, é preciso exibir uma visualização web da guia OXXO. O cliente recebe uma guia com um número específico e paga em dinheiro em uma loja de conveniência OXXO. Você recebe um aviso da Stripe quando o pagamento é recebido.

Configurar a Stripe
Lado do servidor
Lado do cliente

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 a partir do 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'

Cliente

O SDK do React Native é de código aberto e totalmente documentado. Internamente, utiliza as SDKs de iOS nativo e Android. Para instalar o SDK do React Native da Stripe, execute um dos seguintes comandos no diretório do seu projeto (dependendo de qual gerenciador de pacotes você usa):

Command Line
yarn add @stripe/stripe-react-native

Em seguida, instale algumas outras dependências necessárias:

  • Para iOS, vá até o diretório ios e execute pod install para garantir a instalação das dependências nativas necessárias.
  • Para Android, não há mais dependências para instalar.

Inicialização da Stripe

Para inicializar a Stripe no aplicativo React Native, insira sua tela de pagamento com o componente StripeProvider ou use o método de inicialização initStripe. Somente a chave da API publicável em publishableKey é necessária. O exemplo a seguir mostra como inicializar a Stripe usando o componente StripeProvider.

import React, { useState, useEffect } from 'react'; import { StripeProvider } from '@stripe/stripe-react-native'; function App() { const [publishableKey, setPublishableKey] = useState(''); const fetchPublishableKey = async () => { const key = await fetchKey(); // fetch key from your server here setPublishableKey(key); }; useEffect(() => { fetchPublishableKey(); }, []); return ( <StripeProvider publishableKey={publishableKey} merchantIdentifier="merchant.identifier" // required for Apple Pay urlScheme="your-url-scheme" // required for 3D Secure and bank redirects > // Your app code here </StripeProvider> ); }

Observação

Use suas chaves de API de teste enquanto testa e desenvolve, e as chaves de modo de produção quando publica seu aplicativo.

Crie um PaymentIntent
Lado do servidor
Do lado do cliente

Um PaymentIntent é um objeto que representa sua intenção de coletar o pagamento de um cliente, acompanhando todas as etapas do ciclo de vida do processo de pagamento.

Lado do servidor

Crie uma PaymentIntent no seu servidor com um valor e a moeda mxn (OXXO não aceita outras moedas). Se você já tiver uma integração usando a API Payment Intents, adicione oxxo à lista de tipos de forma de pagamento para seu PaymentIntent.

Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="mxn" \ -d "payment_method_types[]"="oxxo"

Outras opções da forma de pagamento

Você pode especificar um parâmetro opcional expires_after_days nas opções da forma de pagamento para o PaymentIntent, definindo os dias corridos até o vencimento de uma guia OXXO. Por exemplo, se você criar uma guia OXXO na segunda-feira e a configuração de expires_after_days for 2, a guia vencerá na quarta-feira, às 23h59, horário da América/Mexico_City (UTC-6). O parâmetro expires_after_days pode ser de 1 a 7 dias. O padrão é 3 dias.

Do lado do cliente

No cliente, solicite um PaymentIntent a partir do seu servidor e armazene o segredo de cliente.

const fetchPaymentIntentClientSecret = async () => { const response = await fetch(`${API_URL}/create-payment-intent`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ email, currency: 'mxn', payment_method_types: ['oxxo'], }), }); const {clientSecret, error} = await response.json(); return {clientSecret, error}; };

Coletar dados da forma de pagamento
Do lado do cliente

No seu aplicativo, colete o nome completo e endereço de e-mail do cliente.

export default function OxxoPaymentScreen() { const [name, setName] = useState(); const [email, setEmail] = useState(); const handlePayPress = async () => { // ... }; return ( <Screen> <TextInput placeholder="Name" onChange={(value) => setName(value.nativeEvent.text)} /> <TextInput placeholder="E-mail" onChange={(value) => setEmail(value.nativeEvent.text)} /> </Screen> ); }

Enviar o pagamento para a Stripe
Do lado do cliente

Obtenha o segredo do cliente com o PaymentIntent criado e invoque confirmPayment. Será apresentada uma visualização web com a guia OXXO.

export default function OxxoPaymentScreen() { const [name, setName] = useState(); const [email, setEmail] = useState(); const handlePayPress = async () => { const billingDetails: PaymentMethodCreateParams.BillingDetails = { name, email, }; const { error, paymentIntent } = await confirmPayment(clientSecret, { paymentMethodType: 'Oxxo', paymentMethodData: { billingDetails, } }); if (error) { Alert.alert(`Error code: ${error.code}`, error.message); console.log('Payment confirmation error', error.message); } else if (paymentIntent) { if (paymentIntent.status === PaymentIntents.Status.RequiresAction) { Alert.alert( 'Success', `The OXXO voucher was created successfully. Awaiting payment from customer.` ); } else { Alert.alert('Payment intent status:', paymentIntent.status); } } }; return ( <Screen> <TextInput placeholder="Name" onChange={(value) => setName(value.nativeEvent.text)} /> <TextInput placeholder="E-mail" onChange={(value) => setEmail(value.nativeEvent.text)} /> </Screen> ); }

Opcional: envie e-mail ao cliente com um link para a guia de pagamento

A Stripe envia um evento payment_intent.requires_action quando uma guia OXXO é criada. Se precisar enviar um e-mail ao cliente com o link para a guia, acesse o PaymentIntent para obter o link, após receber o evento. O campo hosted_voucher_url em payment_intent.next_action.oxxo_display_details contém o link para a guia.

Opcional: personalizar a guia

A Stripe permite personalizar as IUs exibidas para seus clientes na página Configurações da marca.

Estas configurações de marca podem ser aplicadas à guia:

  • Ícone: a imagem de sua marca e nome fantasia da empresa
  • Cor de destaque: usada no botão Copiar número
  • Cor da marca: usada como cor de fundo

Gerenciar eventos pós-pagamento
Lado do servidor

A OXXO é uma forma de pagamento com notificação posterior: os fundos não ficam disponíveis imediatamente. Os clientes podem não pagar a guia OXXO em uma loja de conveniência OXXO imediatamente após o checkout.

A Stripe envia um evento payment_intent.succeeded no dia útil seguinte (de segunda a sexta, exceto feriados do calendário mexicano) para todas as guias OXXO pagas. Use o Dashboard ou crie um gerenciador de webhooks para receber esses eventos e executar ações (por exemplo, enviar um e-mail de confirmação de pedido ao cliente, registrar a venda em um banco de dados ou iniciar um fluxo de entrega).

Após a data de validade, o status do PaymentIntent muda para processing e o cliente não pode mais pagar a guia OXXO vencida. Se a guia não for paga até 23:59 (horário da Mexico_City/UTC-6) da data de validade, a Stripe envia um evento payment_intent.payment_failed até 10 dias corridos após a data de validade (na maioria dos casos, o evento é enviado dentro de 7 dias corridos). Por exemplo, se a guia OXXO vencer em 1º de setembro, o evento será enviado no máximo até 10 de setembro.

EventoDescriçãoPróximas etapas
payment_intent.requires_actionA guia OXXO é criada.Espere que o cliente pague a guia OXXO.
payment_intent.processingO cliente não pode mais pagar a guia OXXO.Aguarde a confirmação ou falha do pagamento.
payment_intent.succeededO cliente pagou a guia OXXO antes do vencimento.Execute o pedido de mercadorias ou serviços do cliente.
payment_intent.payment_failedO cliente não pagou a guia OXXO antes do vencimento.Entre em contato com o cliente por e-mail ou notificação push e solicite outra forma de pagamento.

Receber eventos e tomar providências comerciais

Manualmente

Use o Stripe Dashboard para ver todos os pagamentos da Stripe, enviar recibos por e-mail, lidar com repasses ou tentar novamente pagamentos com falha.

  • Veja os pagamentos de teste no Dashboard

Código personalizado

Crie um gerenciador de webhooks para ouvir eventos e criar fluxos personalizados de pagamentos assíncronos. Teste e depure a integração do webhook localmente usando a CLI da Stripe.

  • Crie um webhook personalizado

Testar a integração

Em uma área restrita, use os e-mails a seguir ao chamar confirmPayment para testar diferentes cenários.

E-mailDescrição

{any_prefix}@{any_domain}

Simula uma guia OXXO paga pelo cliente depois de 3 minutos, com o webhook payment_intent.succeeded recebido depois de cerca de 3 minutos. Em produção, este webhook chega em 1 dia útil.

Exemplo: fulano@test.com

{any_prefix}succeed_immediately@{any_domain}

Simula uma guia OXXO paga imediatamente pelo cliente, com o webhook payment_intent.succeeded recebido depois de alguns segundos. Em produção, este webhook chega em 1 dia útil.

Exemplo: succeed_immediately@test.com

{any_prefix}expire_immediately@{any_domain}

Simula uma guia OXXO que vence sem ser paga pelo cliente, com o webhook payment_intent.payment_failed recebido depois de alguns segundos.

O campo expires_after em next_action.oxxo_display_details está configurado para o horário atual, independente da configuração do parâmetro expires_after_days em opções de forma de pagamento.

Exemplo: expire_immediately@test.com

{any_prefix}expire_with_delay@{any_domain}

Simula uma guia OXXO que vence sem ser paga pelo cliente, com o webhook payment_intent.payment_failed recebido depois de 3 minutos.

O campo expires_after em next_action.oxxo_display_details está configurado para 3 minutos no futuro, independente da configuração do parâmetro expires_after_days em opções de forma de pagamento.

Exemplo: expire_with_delay@test.com

{any_prefix}fill_never@{any_domain}

Simula uma guia OXXO que expira sem ser paga pelo cliente, com o webhook payment_intent.payment_failed recebido depois de 1 dia e 2 dias corridos. Em produção, este webhook chega no mesmo momento que no modo de teste.

Exemplo: fill_never@test.com

Validade e cancelamento

As guias do OXXO expiram após o carimbo de data e hora do UNIX expires_after e o cliente não pode pagá-lo após a expiração. As guias do OXXO não podem ser canceladas antes de expirar.

Depois do vencimento da guia OXXO, o status do PaymentIntent muda para requires_payment_method. Neste ponto, você pode confirmar o PaymentIntent com outra forma de pagamento ou cancelar.

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