Aceitar um pagamento OXXO
Veja como aceitar OXXO, uma forma de pagamento comum no México.
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 StripeLado do servidorLado do cliente
Primeiro, você precisa de uma conta Stripe. Inscreva-se aqui.
Lado do servidor
Esta integração exige que os endpoints do seu servidor se comuniquem com a API Stripe. Use as bibliotecas oficiais para acessar a API Stripe do 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
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.
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 .
Observação
Use suas chaves de teste enquanto testa e desenvolve, e suas chaves de modo de produção quando publicar seu aplicativo.
Crie um PaymentIntentLado do servidorDo 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
.
Outras opções da forma de pagamento
Você pode especificar um parâmetro opcional expires_
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_
for 2, a guia vencerá na quarta-feira, às 23h59, horário da América/Mexico_City (UTC-6). O parâmetro expires_
pode ser de 1 a 7 dias. O padrão é 3 dias.
Lado do cliente
No cliente, solicite um PaymentIntent a partir de seu servidor e armazene o segredo de cliente.
Coletar dados da forma de pagamentoDo lado do cliente
Em seu aplicativo, colete os seguintes dados de cobrança obrigatórios do cliente. Crie um STPPaymentIntentParams com esses dados.
Campo | Valor |
---|---|
name | Nome completo (nome e sobrenome) do cliente. O nome e o sobrenome precisam ter pelo menos dois caracteres cada um. |
email | Endereço de e-mail completo do cliente. |
Enviar o pagamento para a StripeDo lado do cliente
Obtenha o segredo do cliente no PaymentIntent criado da etapa 2 e chame STPPaymentHandler confirmPayment. Será apresentada uma visualização web da guia OXXO. Ao concluir, o bloco de conclusão é chamado com o resultado do pagamento.
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_
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-pagamentoLado 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.
Evento | Descrição | Próximas etapas |
---|---|---|
payment_ | A guia OXXO é criada. | Espere que o cliente pague a guia OXXO. |
payment_ | O cliente não pode mais pagar a guia OXXO. | Aguarde a confirmação ou falha do pagamento. |
payment_ | O cliente pagou a guia OXXO antes do vencimento. | Execute o pedido de mercadorias ou serviços do cliente. |
payment_ | O 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.
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.
Testar a integração
Em uma área restrita, defina STPPaymentMethodBillingDetails email de acordo com os valores a seguir ao chamar STPPaymentHandler confirmPayment para testar diferentes cenários.
Descrição | |
---|---|
| Simula uma guia OXXO paga pelo cliente depois de 3 minutos, com o webhook Exemplo: fulano@test.com |
| Simula uma guia OXXO paga imediatamente pelo cliente, com o webhook Exemplo: succeed_immediately@test.com |
| Simula uma guia OXXO que vence sem ser paga pelo cliente, com o webhook O campo Exemplo: expire_immediately@test.com |
| Simula uma guia OXXO que vence sem ser paga pelo cliente, com o webhook O campo Exemplo: expire_with_delay@test.com |
| Simula uma guia OXXO que expira sem ser paga pelo cliente, com o webhook Exemplo: fill_never@test.com |
Validade e cancelamento
As guias do OXXO expiram após o carimbo de data e hora do UNIX expires_
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_
. Neste ponto, você pode confirmar o PaymentIntent com outra forma de pagamento ou cancelar.