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
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
    Visão geral
    Pagamentos para clientes existentes
    Autorize e capture um pagamento separadamente
    Crie uma experiência de confirmação de duas etapas
    Colete dados de pagamento antes de criar um Intent.
    Finalizar pagamentos no servidor
    Aceitar pedidos por correio e telefone (MOTO)
    Cartões dos EUA e Canadá
      Salvar cartões sem autenticação
      Fazer upgrade para gerenciar a autenticação
    Forward card details to third-party API endpoints
    Itens de linha de pagamentos
Aquisição flexível
Orquestração
Pagamentos presenciais
Terminal
Outros produtos da Stripe
Financial Connections
Cripto
Climate
Página inicialPagamentosCustom payment flowsUS and Canadian cards

Migrar sua integração básica de cartões

Migre para uma integração que gerencie solicitações bancárias para autenticação de cartão.

Copiar página

Se você seguiu o guia Pagamentos do cartão sem autenticação bancária, então sua integração cria pagamentos que são recusados quando um banco solicita ao cliente que faça a autenticação da compra.

Se começarem a aparecer muitos pagamentos com falha, como o que aparece abaixo no Dashboard ou com o código de erro requires_action_not_handled na API, faça upgrade da sua integração básica para aceitar esses pagamentos, em vez de recusá-los.

Dashboard mostrando uma falha de pagamento que indica que o banco exigiu autenticação para o pagamento

Use este guia para saber como atualizar a integração criada no guia anterior para adicionar código de servidor e cliente que mostre um modal para solicitar ao cliente que autentique o pagamento.

Observação

Veja um exemplo completo da integração no GitHub.

Verifique se o pagamento requer autenticação
Lado do servidor

Faça duas alterações no endpoint de seu servidor que cria o PaymentIntent:

  1. Remova o parâmetro error_on_requires_action para não gerar uma falha nos pagamentos que exigem autenticação. O status do PaymentIntent muda para requires_action.
  2. Adicione o parâmetro confirmation_method para indicar que você deseja confirmar explicitamente (manualmente) o pagamento mais uma vez no servidor depois de aceitar as solicitações de autenticação.
Command Line
curl
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d amount=1099 \ -d currency=usd \ -d payment_method_types[]=card \ -d confirm=true \ -d error_on_requires_action=true \ -d payment_method="{{PAYMENT_METHOD_ID}}" \ -d confirmation_method=manual

Em seguida, atualize a função “gerar resposta” para aceitar o estado requires_action em vez de gerar um erro:

Command Line
curl
# If the request succeeds, check the # PaymentIntent's `status` and handle # its `next_action`.

Solicite a autenticação do cliente
Lado do cliente

Em seguida, atualize o código do lado do cliente para indicar à Stripe que é preciso mostrar um modal se o cliente precisar se autenticar.

Use stripe.handleCardAction quando o status de um PaymentIntent for requires_action. Se funcionar, o status do PaymentIntent será requires_confirmation, e você deve confirmar o PaymentIntent outra vez no seu servidor para finalizar o pagamento.

const handleServerResponse = async (responseJson) => { if (responseJson.error) { // Show error from server on payment form } else if (responseJson.requiresAction) { // Use Stripe.js to handle the required card action const { error: errorAction, paymentIntent } = await stripe.handleCardAction(responseJson.clientSecret); if (errorAction) { // Show error from Stripe.js in payment form } else { // The card action has been handled // The PaymentIntent can be confirmed again on the server const serverResponse = await fetch('/pay', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ payment_intent_id: paymentIntent.id }) }); handleServerResponse(await serverResponse.json()); } } else { // Show success message } }

Confirmar o PaymentIntent novamente
Lado do servidor

Usando o mesmo endpoint configurado anteriormente, confirme o PaymentIntent mais uma vez para finalizar o pagamento e executar o pedido. A tentativa de pagamento apresenta falha e o PaymentIntent retorna para o status requires_payment_method se não for confirmado novamente em até uma hora.

Command Line
curl
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/confirm \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -X "POST"

Testar a integração

Use nossos cartões de teste em uma área restrita para verificar se sua integração foi atualizada corretamente. A Stripe exibe uma página de autenticação falsa dentro do modal em uma área restrita que permite simular uma tentativa de autenticação bem-sucedida ou malsucedida. No modo de produção, o banco controla a IU do que é exibido no modal.

NúmeroDescrição
Finaliza e processa o pagamento imediatamente.
Sempre falha, com o código de recusa insufficient_funds.
Exige autenticação, que nesta integração falha com o código de recusa authentication_not_handled.
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