Pagamentos em cartão com autenticação bancária
Crie uma integração mais simples com limitações regionais.
Essa integração oferece suporte a empresas que aceitam apenas cartões dos EUA e do Canadá. É mais simples no início, mas não se expande para atender uma base global de clientes.
Como funciona a integração?
Qual a diferença entre esta integração e a global?
Empresas em crescimento ou que já são multinacionais devem usar a integração global da Stripe para aceitar solicitações de autenticação de dois fatores e permitir que o cliente use mais formas de pagamento.
Criar um formulário de checkoutLado do cliente
O Elements, parte do Stripe.js, oferece componentes inseríveis na IU com o objetivo de coletar dados de cartão dos clientes. A Stripe os hospeda e os coloca em seu formulário de pagamento em iframes, para que os dados do cartão do cliente nunca se misturem com seu código.
Configurar a StripeLado do servidor
Use uma biblioteca oficial para fazer solicitações à API da Stripe pelo seu aplicativo:
Fazer um pagamentoLado do servidor
Configure um endpoint no seu servidor para receber a solicitação do cliente.
A Stripe usa um objeto PaymentIntent para representar sua intenção de coletar o pagamento de um cliente, acompanhando suas tentativas de cobrança e alterações no estado do pagamento durante todo o processo.
Sempre defina o valor a ser cobrado no servidor, que é um ambiente seguro, e não no cliente. Dessa forma, você evita que clientes mal-intencionados escolham os próprios preços.
Crie um endpoint HTTP para responder à solicitação do AJAX da etapa 1. Nesse endpoint, você decide quanto cobrar do cliente. Para criar um pagamento, crie um PaymentIntent usando o ID de PaymentMethod da etapa 1 com o código a seguir:
Aviso
Se você configurar error_on_requires_action como true
ao confirmar um pagamento, a Stripe recusa automaticamente o pagamento se ele solicitar autenticação de dois fatores do usuário.
Resposta da API Payment Intents
Quando você faz um pagamento com a API, a resposta inclui o status do PaymentIntent. Se o pagamento estiver correto, o status será succeeded
.
{ "id": "pi_0FdpcX589O8KAxCGR6tGNyWj", "object": "payment_intent", "amount": 1099, "charges": { "object": "list", "data": [ { "id": "ch_GA9w4aF29fYajT", "object": "charge", "amount": 1099, "refunded": false, "status": "succeeded", } ] }, "client_secret": "pi_0FdpcX589O8KAxCGR6tGNyWj_secret_e00tjcVrSv2tjjufYqPNZBKZc", "currency": "usd", "last_payment_error": null, "status": "succeeded", }
Se o pagamento for recusado, a resposta conterá um código e uma mensagem erro. Veja este exemplo de um pagamento recusado porque o cartão exigia autenticação de dois fatores.
{ "error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://docs.stripe.com/error-codes#authentication-required", "message": "This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.", "payment_intent": { "id": "pi_1G8JtxDpqHItWkFAnB32FhtI", "object": "payment_intent", "amount": 1099, "status": "requires_payment_method", "last_payment_error": { "code": "authentication_required", "decline_code": "authentication_not_handled", "doc_url": "https://docs.stripe.com/error-codes#authentication-required", "message": "This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.", "type": "card_error" }, }, "type": "card_error" } }
Testar a integração
A Stripe fornece vários cartões de teste que você pode usar em uma área restrita para assegurar que essa integração esteja pronta. Use-os com qualquer CVC, código postal e data de validade futura.
Número | Descrição |
---|---|
Finaliza e processa o pagamento imediatamente. | |
Sempre falha, com o código de recusa insufficient_ . | |
Exige autenticação, que nesta integração falha com o código de recusa authentication_ . |
Veja a lista completa de cartões de teste.
Atualizar sua integração para aceitar autenticação de cartões
Parabéns! Você finalizou uma integração de pagamento para pagamentos básicos no cartão. Observe que esta integração recusa os cartões que solicitam autenticação durante o pagamento.
Se começarem a aparecer pagamentos no Dashboard com a indicação Failed
, é recomendável fazer upgrade da integração superior. A integração global da Stripe aceita esses pagamentos, em vez de recusá-los automaticamente.