Inicio
Documentação
Recursos
Parcerias
Comunidade

Recursos

Confira as atualizaçÔes das nossas soluçÔes e do funcionamento do sistema ou peça suporte técnico.

Parcerias

Conheça nosso programa para agĂȘncias ou desenvolvedores que oferecem serviços de integração e vendedores que desejam contratĂĄ-los.

Comunidade

Fique por dentro das Ășltimas novidades, peça ajuda a outros integradores e compartilhe seu conhecimento.

Como integrar 3DS com Checkout Bricks - Checkout Bricks - Mercado Pago Developers

Busca inteligente powered by OpenAI 

Como integrar 3DS com Checkout Bricks

Nesta documentação vocĂȘ encontrarĂĄ toda a informação necessĂĄria para realizar a integração com 3DS com Checkout Bricks. Para mais informaçÔes sobre como esse tipo de autenticação funciona, veja 3DS 2.0.

Importante
Para realizar a integração com 3DS, é preciso atender a determinados requisitos. Antes de avançar para os próximos passos, revise a seção Pré-requisitos e certifique-se de que todos sejam cumpridos.

Integrar com 3DS

A integração com 3DS resulta em um processo de autenticação que é executado através de dois fluxos: com ou sem Challenge, sendo Challenge as etapas adicionais que o comprador deve cumprir para garantir sua identidade.

Para transaçÔes de baixo risco, as informaçÔes enviadas na finalização da compra são suficientes, o fluxo segue de forma transparente e as etapas adicionais do Challenge não são necessårias. Porém, para casos de alto risco de fraude, o Challenge é necessårio para verificar a identidade do comprador, o que aumenta a aprovação das transaçÔes com cartão.

A decisão de incluir ou não o Challenge depende do emissor do cartão e do perfil de risco da transação que estå sendo realizada.

Abaixo estão as etapas para realizar uma integração com 3DS.

  1. Após gerar uma intenção de pagamento usando Card Payment Brick ou Payment Brick, é necessårio enviar, a partir do seu backend, uma solicitação de pagamento ao Mercado Pago através das nossas APIs. A ativação do fluxo de 3DS 2.0 se då pela adição do campo three_d_secure_mode: 'optional' nessa requisição.

javascript

var mercadopago = require('mercadopago');
mercadopago.configurations.setAccessToken("YOUR_ACCESS_TOKEN");

const paymentData = {
...req.body,
three_d_secure_mode: 'optional'
};

mercadopago.payment.save(paymentData)
  .then(function(response) {
    const { status, status_detail, id } = response.body;
    res.status(response.status).json({ status, status_detail, id });
  })
  .catch(function(error) {
    console.error(error);
  });

Caso nĂŁo seja necessĂĄrio utilizar o fluxo do Challenge, o campo status do pagamento terĂĄ valor approved e nĂŁo serĂĄ necessĂĄrio exibi-lo, dessa forma, o fluxo de pagamento seguirĂĄ normalmente.

Para os casos em que o Challenge Ă© necessĂĄrio, o status mostrarĂĄ o valor pending, e o status_detail serĂĄ pending_challenge.

VisĂŁo geral simplificada da resposta:

javascript

{
   "payment_id":52044997115,
   "status":"pending",
   "status_detail":"pending_challenge",
   "three_ds_info":{
      "external_resource_url":"https://acs-public.tp.mastercard.com/api/v1/browser_Challenges",
      "creq":"eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImJmYTVhZjI0LTliMzAtNGY1Yi05MzQwLWJkZTc1ZjExMGM1MCIsImFjlOWYiLCJjW5kb3dTaXplIjoiMDQiLCJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IS4wIn0"
   },
   "owner":null
}
Importante
O campo retornado three_ds_info contém as informaçÔes necessårias para continuar o processo de pagamento caso o status_detail seja pending_challenge.
  1. Para continuar o fluxo e exibir o Challenge de forma simplificada, Ă© recomendado integrar com o Status Screen Brick, informando o ID do pagamento gerado, alĂ©m do conteĂșdo do objeto three_ds_info, os quais foram retornados pela API de pagamentos.

Caso não deseje utilizar o Status Screen Brick nessa etapa, aconselhamos acessar a seção de Realizar implantação na documentação de Checkout Transparente, visto que serão necessårios passos adicionais para, por exemplo, capturar o evento emitido quando o Challenge for finalizado.

javascript

const renderStatusScreenBrick = async (bricksBuilder) => {
 const settings = {
   initialization: {
     paymentId: "<PAYMENT_ID>", // id do pagamento a ser mostrado
     additionalInfo: {
       externalResourceURL: "<EXTERNAL_RESOURCE_URL>",
       creq: "<C_REQ>",
     },
   },
   callbacks: {
     onReady: () => {},
     onError: (error) => {
       console.error(error);
     },
   },
 };
 window.statusScreenBrickController = await bricksBuilder.create(
   "statusScreen",
   "statusScreenBrick_container",
   settings
 );
};
renderStatusScreenBrick(bricksBuilder);

O Status Screen Brick exibirå uma transição indicando redirecionamento e, logo em seguida, serå exibido o Challenge do banco em questão.

how-to-integrate-3ds

O usuĂĄrio deve responder ao Challenge para que a transição seja validada devidamente. Vale ressaltar que a experiĂȘncia do Challenge Ă© de responsabilidade exclusiva do banco encarregado.

Importante
Por questÔes de segurança, o pagamento serå rejeitado caso o processo de Challenge não seja iniciado em até 30 segundos após a sua criação. Portanto, é importante que o Challenge se inicie exatamente após a sua geração.
  1. Após a resolução do Challenge, serå exibido o resultado final do pagamento de acordo com a resposta emitida pelo banco ao finalizar o Challenge.

status-screen-Brick

Teste de integração

Antes de ir à produção, é possível testar a integração para garantir que o fluxo 3DS funcione corretamente e que os pagamentos sejam processados sem erros. Dessa forma, evita-se que os compradores abandonem a transação por não conseguirem concluí-la.

Para que seja possível validar pagamentos com 3DS, disponibilizamos um ambiente de testes do tipo sandbox que retorna resultados simulados apenas para simulação e validação da implementação. Para realizar testes de pagamento em um ambiente sandbox, é necessårio utilizar suas credenciais de teste e cartÔes específicos que permitam testar a implementação do Challenge com os fluxos de sucesso e falha. A tabela a seguir apresenta os detalhes desses cartÔes:

FluxoNĂșmeroCĂłdigo de segurançaData de vencimento
Challenge com sucesso5483 9281 6457 462312311/25
Challenge nĂŁo autorizado5361 9568 0611 755712311/25
Os passos para gerar o pagamento são os mesmos exemplificados anteriormente nesta seção.

Challenge

Em ambos os fluxos (sucesso e falha), o Challenge, que Ă© uma tela semelhante Ă  exibida abaixo, deve ser exibido pelo Status Screen Brick.

bricks_sandbox

O código de verificação fornecido é apenas ilustrativo. Para concluir o fluxo de teste, basta clicar no botão Confirmar e o Status Screen irå exibir o estado final do pagamento.