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
    Visão geral
    Pagamentos bancários instantâneos
    Visão rápida
    Vincular com Checkout
    Link com Web Elements
    Link com Mobile Elements
    Link com Invoicing
    Guias de integração
    Integrações de pagamentos do Link
    Crie uma página de checkout personalizada que inclui o Link
    Configurar pagamentos futuros usando Elements e 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 inicialPagamentosFaster checkout with Link

Crie uma página de checkout personalizada que inclui o Link

Integre o Link usando o Payment Element ou o Link Authentication Element.

Copiar página

Este guia demonstra como aceitar pagamentos com o Link usando a API Payment Intents e o Payment Element ou o Link Authentication Element.

Há três maneiras de obter o endereço de e-mail de um cliente para autenticação e inscrição no Link:

  • Passar um endereço de e-mail: você pode passar um endereço de e-mail para o Payment Element usando defaultValues. Se você já está coletando o endereço de e-mail e/ou o número de telefone do cliente no fluxo de checkout, recomendamos esta abordagem.
  • Coletar um endereço de e-mail: você pode coletar um endereço de e-mail diretamente no Payment Element. Se você não coleta o endereço de e-mail em nenhum lugar do fluxo de checkout, recomendamos esta abordagem.
  • Link Authentication Element: você pode usar o Link Authentication Element para criar um único campo de entrada de e-mail para coleta de e-mail e autenticação do Link. Recomendamos fazer isso se você usar o Address Element.
Autentique ou inscreva-se no Link diretamente no Payment Element durante o checkout

Coletar um endereço de e-mail do cliente para autenticação ou inscrição no Link

Configurar a Stripe
Lado do servidor

Primeiro, crie uma conta Stripe ou entre.

Use nossas bibliotecas oficiais para acessar a API da Stripe no seu aplicativo:

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'

Criar um PaymentIntent
Lado do servidor

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.

Um diagrama de visão geral de todo o fluxo de pagamento

Se você coleta dados de cartão para uso futuro com Setup Intents, liste as formas de pagamento manualmente em vez de usar formas de pagamento dinâmicas. Para usar o Link sem formas de pagamento dinâmicas, atualize sua integração para passar link para payment_method_types.

Ao criar uma PaymentIntent, ofereça dinamicamente aos clientes as formas de pagamento mais relevantes, incluindo o Link, usando formas de pagamento dinâmicas. Para usar formas de pagamento dinâmicas, não inclua o parâmetro payment_method_types. Opcionalmente, você também pode habilitar automatic_payment_methods.

Observação

Quando sua integração não define o parâmetro payment_method_types, algumas formas de pagamento são ativadas automaticamente, incluindo cartões e carteiras.

Para adicionar o Link à sua integração do Elements usando formas de pagamento dinâmicas:

  1. Nas configurações de forma de pagamento do Dashboard, ative o Link.
  2. Se você tiver uma integração existente que lista manualmente as formas de pagamento, remova o parâmetro payment_method_types da integração.

Recuperar o segredo do cliente

O PaymentIntent inclui um segredo do cliente que o lado do cliente usa para concluir com segurança o processo de pagamento. Você pode usar abordagens diferentes para enviar a senha do cliente ao lado do cliente.

Recupere o segredo do cliente de um endpoint do servidor usando a função fetch do navegador. Essa abordagem é melhor quando o lado do cliente é um aplicativo com uma única página, principalmente se criado com uma estrutura de front-end moderna como o React. Crie o endpoint do servidor que envia o segredo do cliente:

main.rb
Ruby
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

Em seguida, obtenha o segredo do cliente com JavaScript no lado do cliente:

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Coletar e-mail do cliente

O Link autentica um cliente usando o endereço de e-mail dele. Dependendo do seu fluxo de checkout, você tem as seguintes opções: passar um e-mail para o Payment Element, coletá-lo diretamente no Payment Element ou usar o Link Authentication Element. A Stripe recomenda passar um endereço de e-mail do cliente para o Payment Element, se disponível.

Se algum dos itens a seguir se aplicar a você:

  • Você quer usar um componente único e otimizado para coleta de e-mails e autenticação de Link.
  • Você precisa coletar um endereço de entrega do cliente.

Em seguida, use o fluxo de integração que implementa esses elementos: Link Authentication Element, Payment Element e Address Element opcional.

Uma página de checkout com o Link habilitado tem o Link Authentication Element no início, seguido pelo Address Element e o Payment Element no final. Também é possível exibir o Link Authentication Element em páginas separadas, nessa mesma ordem, para fluxos de checkout de várias páginas.

Criar um formulário de pagamento usando vários Elements

Criar um formulário de pagamento usando vários Elements

A integração funciona da seguinte forma:

Configurar o formulário de pagamento
Lado do cliente

Agora está tudo pronto para configurar o formulário de pagamento personalizado com os componentes de IU pré-incorporados do Elements. Para que sua integração funcione, o endereço da página de pagamento deve começar com https:// em vez de http://. Você pode testar sua integração sem usar HTTPS. Habilite HTTPS quando estiver pronto para aceitar pagamentos em tempo real.

O Link Authentication Element renderiza uma entrada de endereço de e-mail. Quando o Link associa um e-mail de cliente a uma conta existente do Link, ele envia ao telefone do cliente um código seguro de uso único para autenticação. Se a autenticação do cliente for bem-sucedida, a Stripe exibirá automaticamente os endereços e as formas de pagamento salvas pelo Link para que eles as utilizem.

Essa integração também cria o Payment Element, que renderiza um formulário dinâmico que permite ao cliente escolher um tipo de forma de pagamento. O formulário coleta automaticamente todos os dados de pagamento necessários para o tipo de forma de pagamento selecionado pelo cliente. O Payment Element também gerencia a exibição de formas de pagamento salvas pelo Link para clientes autenticados.

Configurar o Stripe Elements

Instale o React Stripe.js e o carregador Stripe.js do registro público npm.

Command Line
npm install --save @stripe/react-stripe-js @stripe/stripe-js

Na página de pagamento, encapsule seu formulário de pagamento com o componente Elements, passando o segredo do cliente da etapa anterior. Se já estiver coletando o e-mail do cliente em outra parte do formulário, substitua a entrada existente pelo linkAuthenticationElement​.

Se você não coleta e-mails, adicione o linkAuthenticationElement​ ao fluxo de checkout. Você deve colocar o linkAuthenticationElement antes do ShippingAddressElement (opcional se você coletar endereços de entrega) e do PaymentElement para que o Link preencha automaticamente os dados salvos pelo Link para seu cliente no ShippingAddressElement e no PaymentElement. Também é possível passar a opção appearance para personalizar os Elements de acordo com o design do site.

Se você tiver o e-mail do cliente, passe-o para a opção defaultValues de linkAuthenticationElement. Isso preenche o endereço de e-mail e inicia o processo de autenticação do Link.

Se você tiver outros dados do cliente, passe-os para o objeto defaultValues.billingDetails de PaymentElement. O preenchimento prévio do maior número de informações possível simplifica a criação e a reutilização da conta do Link para seus clientes.

Em seguida, renderize os componentes linkAuthenticationElemente PaymentElement no formulário de pagamento:

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { Elements, LinkAuthenticationElement, PaymentElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Customize the appearance of Elements using the Appearance API. const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto';

O linkAuthenticationElement, PaymentElement e ShippingAddressElement não precisam estar na mesma página. Se você tiver um processo em que os dados de contato, dados de envio e detalhes de pagamento do cliente são exibidos para o cliente em etapas separadas, é possível exibir cada Element na etapa ou página apropriada. Inclua o linkAuthenticationElement como formulário de entrada de e-mail na etapa de coleta de dados de contato para garantir que o cliente possa aproveitar ao máximo o preenchimento automático de dados de pagamento e envio fornecido pelo Link.

Se você coletar o e-mail do seu cliente com o Link Authentication Element no início do fluxo de checkout, não será necessário mostrá-lo novamente nas páginas de envio ou pagamento.

Recuperar um endereço de e-mail

Você pode recuperar os detalhes do endereço de e-mail usando a propriedade onChange no componente linkAuthenticationElement. O gerenciador de onChange é acionado sempre que o usuário atualiza o campo de e-mail ou quando um e-mail de cliente salvo é preenchido automaticamente.

<linkAuthenticationElement onChange={(event) => { setEmail(event.value.email); }} />

Preencher o e-mail de um cliente

O Link Authentication Element aceita um endereço de e-mail. Informar o endereço de e-mail de um cliente aciona o fluxo de autenticação do Link assim que o cliente acessa a página de pagamento usando a opção defaultValues.

<linkAuthenticationElement options={{defaultValues: {email: 'foo@bar.com'}}}/>

OpcionalPreencher dados adicionais do cliente
Lado do cliente

OpcionalColetar endereços de entrega
Lado do cliente

OpcionalPersonalize a aparência
Lado do cliente

Enviar o pagamento para a Stripe
Lado do cliente

Use stripe.confirmPayment para concluir o pagamento com os dados coletados do seu cliente nos diferentes formulários do Elements. Forneça um return_url a essa função para indicar para onde Stripe redireciona o usuário após a conclusão do pagamento.

Seu usuário pode ser redirecionado primeiro para um site intermediário, como uma página de autorização bancária, antes de a Stripe redirecioná-lo para o return_url.

Por padrão, pagamentos por cartão e bancos são redirecionados imediatamente para o return_url quando um pagamento é finalizado. Se não quiser redirecionar para o return_url, você pode usar if_required para alterar o comportamento.

Checkout.jsx
import {loadStripe} from "@stripe/stripe-js"; import { useStripe, useElements, Elements, LinkAuthenticationElement, PaymentElement, // If collecting shipping AddressElement, } from "@stripe/react-stripe-js"; const stripe = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const appearance = {/* ... */}; // Enable the skeleton loader UI for the optimal loading experience. const loader = 'auto'; const CheckoutPage =({clientSecret}) => ( <Elements stripe={stripe} options={{clientSecret, appearance, loader}}> <CheckoutForm /> </Elements> ); export default function CheckoutForm() { const stripe = useStripe(); const elements = useElements(); const handleSubmit = async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ elements, confirmParams: { return_url: "https://example.com/order/123/complete", }, }); if (error) { // handle error } }; return ( <form onSubmit={handleSubmit}> <h3>Contact info</h3> <LinkAuthenticationElement /> {/* If collecting shipping */} <h3>Shipping</h3> <AddressElement options={{mode: 'shipping', allowedCountries: ['US']}} /> <h3>Payment</h3> <PaymentElement /> <button type="submit">Submit</button> </form> ); }

O return_url corresponde a uma página no seu site que informa o status do pagamento do PaymentIntent quando você renderiza a página de retorno. Quando a Stripe redireciona o cliente para o return_url, você pode usar os parâmetros de consulta de URL a seguir para verificar o status do pagamento. Você também pode anexar seus próprios parâmetros de consulta ao fornecer o return_url. Esses parâmetros de consulta permanecem por meio do processo de redirecionamento.

ParâmetroDescrição
payment_intentO identificador único do PaymentIntent
payment_intent_client_secretO segredo do cliente do objeto PaymentIntent.

OpcionalSeparar autorização e captura
Lado do servidor

Gerenciar eventos pós-pagamento
Lado do servidor

A Stripe envia um evento payment_intent.succeeded quando o pagamento é concluído. Use um webhook para receber esses eventos e executar ações, como enviar um e-mail de confirmação de pedido ao cliente, registrar a venda em um banco de dados ou iniciar um fluxo de trabalho de entrega.

Configure sua integração para escutar esses eventos em vez de aguardar um retorno de chamada do cliente. Quando você aguarda um retorno de chamada do cliente, ele pode fechar a janela do navegador ou sair do aplicativo antes da execução do retorno de chamada. Configurar sua integração para escutar eventos assíncronos permite aceitar diferentes tipos de formas de pagamento com uma única integração.

Além de gerenciar o evento payment_intent.succeeded, você também pode gerenciar dois outros eventos importantes ao coletar pagamentos com o Payment Element:

EventoDescriçãoAção
payment_intent.succeededEnviado da Stripe quando um cliente conclui um pagamento.Envie ao cliente uma confirmação de pedido e execute o pedido.
payment_intent.payment_failedEnviado da Stripe quando um cliente tenta realizar um pagamento, mas o pagamento não é bem-sucedido.Se um pagamento passou de processing para payment_failed, ofereça ao cliente outra tentativa para pagar.

Teste a integração

Cuidado

Não armazene dados reais de usuários em contas do Link da área restrita. Trate-as como se estivessem disponíveis publicamente, pois essas contas de teste estão associadas à sua chave publicável.

No momento, o Link só funciona com cartões de crédito, cartões de débito e compras qualificadas de contas bancárias dos EUA. O Link requer registro de domínio.

Você pode criar contas de área restrita para o Link usando qualquer endereço de e-mail válido. A tabela a seguir mostra os valores fixos de senha de uso único que a Stripe aceita para autenticar contas de área restrita:

ValorResultado
Quaisquer outros 6 dígitos não listados abaixoSucesso
000001Erro, código inválido
000002Erro, código expirado
000003Erro, número máximo de tentativas excedido

Para testar formas de pagamento específicas, consulte os exemplos de teste do Element Pagamento.

Várias fontes de fundos

À medida que a Stripe adiciona outras fontes de financiamento, você não precisa atualizar sua integração. A Stripe aceita essas fontes automaticamente com o mesmo tempo de liquidação de fundos da transação e com as mesmas garantias dos pagamentos com cartão e conta bancária.

Autenticação de cartões e 3D Secure

O Link aceita autenticação 3D Secure 2 (3DS2) para pagamentos com cartão. O 3DS2 exige que os clientes realizem uma etapa de verificação adicional com o emissor do cartão ao pagar. Os pagamentos autenticados com êxito por 3D Secure estão cobertos por uma transferência de responsabilidade.

Para acionar os fluxos de desafio de autenticação do 3DS2 com o Link em uma área restrita, use o seguinte cartão de teste com qualquer CVC, código postal e data de validade futura: .

Em uma área restrita, o processo de autenticação exibe uma página de autenticação fictícia. Nessa página, você pode autorizar ou cancelar o pagamento. A autorização do pagamento simula a autenticação bem-sucedida e redireciona você para o URL de retorno especificado. Clicar no botão Falha simula um erro na autenticação.

Para obter mais detalhes, consulte a página de autenticação de 3D Secure.

Observação

Ao testar fluxos do 3DS, somente cartões de teste para 3DS2 acionarão a autenticação no Link.

OpcionalExibir dados salvos pelo cliente
Lado do servidor
Lado do cliente

OpcionalSalvar formas de pagamento do Link
Lado do servidor
Lado do cliente

Divulgue a Stripe para seus clientes

A Stripe coleta informações sobre interações do cliente com o Elements para fornecer serviços a você, evitar fraudes e melhorar os serviços. Isso inclui o uso de cookies e endereços IP para identificar quais Elements o cliente visualizou durante uma única sessão de checkout. Você é responsável por divulgar e obter todos os direitos e consentimentos necessários para que a Stripe use os dados dessas maneiras. Para saber mais, acesse nossa central de privacidade.

Veja também

  • O que é o Link
  • Link com Elements
  • Link no Payment Element
  • Explore o Link Authentication Element
  • Link em diferentes integrações de pagamento
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