Pular para o conteúdo
Criar conta
ou
Entrar
O logotipo da documentação da Stripe
/
Pergunte à IA
Criar conta
Login
Comece já
Pagamentos
Automação de finanças
Plataformas e marketplaces
Gestão de valores
Ferramentas para desenvolvedores
Comece já
Pagamentos
Automação de finanças
Comece já
Pagamentos
Automação de finanças
Plataformas e marketplaces
Gestão de valores
Visão geralExplore todos os produtos
Comece a criar
Comece a desenvolver
Projetos de exemplo
Sobre as APIs
    Explore as APIs
    API Payment Intents
    API Setup Intents
    Formas de pagamento
    APIs mais antigas
      Cobranças
        Migrar para as novas APIs
        Aceitar um pagamento por cartão
        Salvar um cartão
        Fazer uma reserva cartão
        Charges com Connect
      Fontes
    Fases da versão
Desenvolver com LLMs
Use a Stripe sem programação
Configurar a Stripe
Crie uma conta
Produtos e preços
Dashboard da web
Dashboard móvel
Migrar para a Stripe
Migrar dados do cliente
Migrar dados de pagamentos
Migrar assinaturas
Gerenciar risco de fraudes
Entenda as fraudes
Proteção contra fraudes do Radar
Gerenciar contestações
Verificar identidades
Suporte regulatório
Página inicialComece jáAbout the APIsOlder APIsCharges

Migração para o Payment Intents

Copiar página

Você tem interesse em usar o Stripe Billing, Tax, descontos, envio ou conversão de moedas?

Estamos desenvolvendo uma integração do Payment Element que gerencia assinaturas, impostos, descontos, envio e conversão de moedas. Leia o guia Criar uma página de checkout para saber mais.

Saiba como migrar seus cartões e a integração da API Charges.

A migração do fluxo de pagamentos pode ser complexa. A adoção incremental da API Payment Intents, em paralelo com o uso da API Charges, é segura. Para fazer isso, divida a migração nas seguintes etapas:

  1. Atualizar a versão da API e da biblioteca cliente.
  2. Se for aplicável, migre o código que faz leitura das propriedades de Charge para ter um caminho de leitura consistente entre cobranças criadas pela API Charges e cobranças criadas pela API Payment Intents. Isso garante uma integração do lado da leitura que funcione para a integração de pagamentos nova e antiga.
  3. Migre sua integração da API Charges para web, iOS e Android para usar a API Payment Intents.
  4. Migre sua integração que salva cartões em objetos Customer.
  5. Teste com cartões de teste regulatório para assegurar que a integração atualizada gerencie a autenticação corretamente.

Atualizar a versão da API e a biblioteca do cliente

Embora a API Payment Intents funcione em todas as versões da API , recomendamos fazer a atualização para a versão mais recente da API. Se você decidir usar uma versão da API anterior a 11/02/2019, observe as duas alterações a seguir quando usar os exemplos de código:

  • requires_source mudou para requires_payment_method
  • requires_source_action mudou para requires_action

In addition, if you use one of our SDKs, upgrade to the latest version of the library to use the Payment Intents API.

Migre seus fluxos de pagamentos avulsos

Estas são as etapas de uma integração criada com Stripe.js e Elements:

  1. Registrar sua intenção de coletar pagamentos no lado do servidor
  2. Coletar dados de pagamento no lado do cliente
  3. Iniciar a criação do pagamento
  4. Executar o pedido do cliente no lado do servidor

Etapa 1: registrar sua intenção de coletar pagamentos no lado do servidor

Crie um PaymentIntent no seu servidor e deixe-o acessível no lado do cliente.

Antes
Depois

Impossível antes de

Command Line
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "amount"=1099 \ -d "currency"="usd"

Etapa 2: coletar dados de pagamento no lado do cliente

Use a função confirmCardPayment, que coleta os dados de pagamento e os envia diretamente à Stripe.

Antes
Depois
stripe.createToken( cardElement ).then(function(token) { // Send token to server });
stripe.confirmCardPayment( INTENT_SECRET_FROM_STEP_1, { payment_method: {card: cardElement} } ).then(function(result) { if (result.error) { // Display error.message in your UI. } else { // The payment has succeeded // Display a success message } });

Etapa 3: iniciar a criação do pagamento

Na integração existente, a última etapa é usar dados de pagamento tokenizados para criar uma cobrança no seu servidor. Isso não é mais necessário, pois a função confirmCardPayment, chamada na etapa anterior, inicia a criação da cobrança.

Antes
Depois
Command Line
curl https://api.stripe.com/v1/charges \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{FROM_PREVIOUS_STEP}}" \ -d "amount"=1099 \ -d "currency"="usd"

Concluído na etapa anterior

Etapa 4: executar o pedido do cliente

Com a confirmação automática, a cobrança é criada para você de forma assíncrona a partir da ação do cliente, por isso, você deve monitorar os webhooks para determinar quando o pagamento é concluído corretamente. Para realizar etapas como processamento de pedido após o pagamento bem-sucedido de um cliente, implemente a compatibilidade com webhooks e monitore o evento payment_intent.succeeded.

Antes
Depois

Se a cobrança for bem-sucedida, faça o processamento.

Assine o webhook payment_intent.succeeded e processe no gerenciador de webhooks.

Agora que você fez a migração, use os cartões de teste na seção a seguir para verificar se a sua integração atualizada gerencia autenticação 3D Secure.

Migre sua integração que salva cartões em objetos Customer

Uma integração da API Payment Intents que coleta dados de cartão no fluxo de checkout consiste nas seguintes etapas:

  1. Registrar sua intenção de coletar pagamentos no lado do servidor
  2. Coletar dados de pagamento no lado do cliente
  3. Iniciar a criação do pagamento
  4. Executar o pedido do cliente no lado do servidor

Etapa 1: registrar sua intenção de coletar pagamentos no lado do servidor

Crie um PaymentIntent no seu servidor. Defina setup_future_usage como off_session se você pretende cobrar os usuários quando estiverem fora do seu aplicativo ou on_session se planeja cobrá-los no aplicativo. Se você planeja usar o cartão para pagamentos na sessão e fora dela, use off_session. Informar o parâmetro setup_future_usage junto com o ID do cliente salvará o PaymentMethod resultante para esse cliente após a confirmação do PaymentIntent e a conclusão de todas as ações necessárias pelo cliente. Em seguida, torne o PaymentIntent acessível no lado do cliente.

Antes
Depois

Impossível antes de

Command Line
curl https://api.stripe.com/v1/payment_intents \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "setup_future_usage"="off_session" \ -d "amount"=1099 \ -d "currency"="usd"

Etapa 2: coletar dados de pagamento no lado do cliente

Use a função confirmCardPayment, que coleta os dados de pagamento e os envia diretamente à Stripe.

Antes
Depois
stripe.createToken( // or stripe.createSource cardElement ).then(function(token) { // Send token to server });
stripe.confirmCardPayment( '{{INTENT_SECRET_FROM_STEP_1}}', { payment_method: {card: cardElement}, } ).then(function(result) { if (result.error) { // Display error.message in your UI. } else { // The payment has succeeded // Display a success message } });

Por último, vincule a forma de pagamento (paymentIntent.payment_method) ao cliente.

Antes
Depois
Command Line
curl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}}/sources \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{TOKEN_OR_SOURCE}}"
Command Line
curl https://api.stripe.com/v1/payment_method/{{PAYMENT_METHOD_ID}}/attach \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer"="{{CUSTOMER_ID}}"

Etapa 3: iniciar a criação do pagamento

Na integração existente, a última etapa é usar dados de pagamento tokenizados para criar uma cobrança no seu servidor. Isso não é mais necessário, pois a função confirmCardPayment, chamada na etapa anterior, inicia a criação da cobrança.

Antes
Depois
Command Line
curl https://api.stripe.com/v1/charges \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "source"="{{FROM_PREVIOUS_STEP}}" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "amount"=1099 \ -d "currency"="usd"

Concluído na etapa anterior

Etapa 4: executar o pedido do cliente

Com a confirmação automática, a cobrança é criada para você de forma assíncrona a partir da ação do cliente, por isso, você deve monitorar os webhooks para determinar quando o pagamento é concluído corretamente. Para realizar etapas como processamento de pedido após o pagamento bem-sucedido de um cliente, implemente a compatibilidade com webhooks e monitore o evento payment_intent.succeeded.

Antes
Depois

Se a cobrança for bem-sucedida, faça o processamento.

Assine o webhook payment_intent.succeeded e processe no gerenciador de webhooks.

Agora que você fez a migração, use os cartões de teste na seção a seguir para verificar se a sua integração atualizada gerencia autenticação 3D Secure.

Acessar formas de pagamento salvas

Para exibir cartões, fontes e formas de pagamento previamente salvas do cliente, liste as formas de pagamento em vez de ler a propriedade sources do objeto do cliente. Isso é necessário porque PaymentMethods adicionados a um cliente não serão mostrados na propriedade sources do objeto do cliente.

Antes
Depois
Command Line
customer.sources
Command Line
curl https://api.stripe.com/v1/payment_methods?customer={{CUSTOMER_ID}}&type=card \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:

Testar a integração

É importante testar completamente a integração para garantir o tratamento correto de cartões que exigem autenticação adicional e os que não exigem essa autenticação. Use estes números de cartão em uma área restrita com uma data de validade no futuro e qualquer código CVC de três dígitos para validar a integração desses dois tipos de cartão.

NúmeroAutenticaçãoDescrição
Exigido na configuração ou primeira transaçãoEste cartão de teste exige autenticação para pagamentos avulsos. No entanto, quando você configura esse cartão usando a API Setup Intents e usa o cartão salvo para os próximos pagamentos, nenhuma autenticação adicional é necessária.
ObrigatórioEste cartão de teste exige autenticação em todas as transações.
ObrigatórioEste cartão de teste exige autenticação, mas os pagamentos serão recusados com o código insufficient_funds depois da autenticação.
CompatívelThis test card supports authentication through 3D Secure 2, but does not require it. Payments using this card do not require additional authentication in a sandbox unless your sandbox Radar rules request authentication.

Use estes cartões no aplicativo ou na demonstração de pagamentos para ver o comportamento diferente.

Veja também

  • Payment Intents no iOS
  • Payment Intents no Android
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