DocumentaĆ§Ć£o
Recursos
CertificaƧƵes
Comunidade

Recursos

Confira as atualizaƧƵes das nossas soluƧƵes e do funcionamento do sistema ou peƧa suporte tƩcnico.

Comunidade

Fique por dentro das Ćŗltimas novidades, peƧa ajuda a outros integradores e compartilhe seu conhecimento.

Cobros online
Cobros presenciales
Herramientas y recursos
APIs y SDKS
Como integrar 3DS com Checkout Bricks - Checkout Bricks - Mercado Pago Developers

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-layout

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.