Você tem interesse em usar o Stripe Billing, Tax, descontos, envio ou conversão de moedas?
Estamos desenvolvendo uma integração do Element pagamento que gerencia assinaturas, impostos, descontos, envio e conversão de moedas. Leia o guia de criação de 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:
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.
Migre sua integração da API Charges para web, iOS e Android para usar a API Payment Intents.
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
Além disso, se você usa uma das nossas SDKs, atualize para a versão mais recente da biblioteca para usar a API Payment Intents.
Migre seus fluxos de pagamentos avulsos
Estas são as etapas de uma integração criada com Stripe.js e Elements:
Registrar sua intenção de coletar pagamentos no lado do servidor
Coletar dados de pagamento no lado do cliente
Iniciar a criação do pagamento
Executar o pedido do cliente no lado do servidor
Etapa 1: registrar sua intenção de coletar pagamentos no lado do servidor
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.
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:
Registrar sua intenção de coletar pagamentos no lado do servidor
Coletar dados de pagamento no lado do cliente
Iniciar a criação do pagamento
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 pretender cobrar os usuários quando estiverem fora do seu aplicativo ou on_session se planejar cobrá-los no aplicativo. Se planejar 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.
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.
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.
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.
É 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 no modo de teste 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úmero
Autenticação
Descrição
Exigido na configuração ou primeira transação
Este 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ório
Este cartão de teste exige autenticação em todas as transações.
Obrigatório
Este cartão de teste exige autenticação, mas os pagamentos serão recusados com o código insufficient_funds depois da autenticação.
Compatível
Este cartão de teste aceita autenticação por 3D Secure 2, mas não exige isso. Os Payments usando este cartão não exigem autenticação adicional no modo de teste, a menos que suas regras do Radar do modo de teste solicitem autenticação.