Integrar Device Fingerprint de Mercadopago en tu comercio

Requisitos

Todos los clientes, sin excepción, deben agregar el siguiente script al activar Mercado Pago con DEUNA. Es esencial asegurarse de que este script se cargue antes de presionar el botón de pago y lanzar el widget de DEUNA.

¿Qué hace el script?

Este script carga automáticamente todo lo necesario para crear el Device Fingerprint, que se envía al procesar con Mercado Pago.

¿Qué sucede si no lo agregas?

Hay una mayor probabilidad de que tu transacción sea rechazada, ya que Mercado Pago utiliza este identificador para asegurar que tu transacción no sea fraudulenta. Además, Mercado Pago requiere esta información para asegurar la transacción.

Descripción del código

  • DEUNA_CREDENTIALS: Este objeto es requerido por DEUNA para agregar el script de Mercado Pago.
  • MERCADOPAGO: El objeto MERCADOPAGO indica al widget que utilizarás Mercado Pago y que debe crear un Device Fingerprint.

Pasos de integración:

Cuando se usa el payment widget de DEUNA:

  • Paso 1: Agrega el script: Incluye el código de integración antes de cargar el widget de DEUNA.
window.DEUNA_CREDENTIALS = {  
  MERCADOPAGO: {},  
}
  • Paso 2: Asegura el orden de carga: Asegúrate de que el script se cargue antes de presionar el botón de pago y mostrar el modal.
  • Paso 3: Verifica fuentes externas: Asegúrate de no estar cargando el código de Mercado Pago desde Google Tag Manager u otra fuente.
  • Paso 4: Validación: Un paso antes de mostrar el modal de DEUNA, abre la consola de desarrollador de tu navegador y copia este código.
    window.DEUNA_CREDENTIALS
    
    Esto debería mostrar el mismo script que configuraste anteriormente. Con esto ya sabes que se configuró correctamente.
    Estas medidas garantizarán que tu implementación con DEUNA y Mercado Pago sea exitosa y sin problemas.

Cuando se usa el conector de VTEX

https://docs.deuna.com/docs/vtex-como-configurar-device-fingerprint-widget-v2

Cuando el comercio está integrado a DEUNA vía Direct API

  • Paso 1: Agrega el script: Este script incluye un SDK de DEUNA que es capaz de generar los fingerprints de cualquier proveedor bajo solo una integración. En este caso mostraremos como usarlo para generar el fingerprint de Mercado Pago:
    • <script>
          var script = document.createElement("script");
          script.id = "deuna-cdl";
          script.src = "https://cdn.getduna.com/cdl/index.js";
          var loadScript = function () {
            var cdl = DeunaCDL();
            cdl
              .configure({
                apiKey: "<your public api key>",
                env: "production",
                fraudConfig: {
                  MERCADOPAGO: {},
                },
              })
              .then(function () {
                // El output esperado es un string en base 64:
                // ejemplo: eyJjbGVhclNhbGUiOiJCeTRLdU14Y1hHcVpXbUllMFkwbnNCOWpQZG5wdkxQM0ZrampVUGkzIiwiY3liZXJTb3VyY2UiOiJCeTRLdU14Y1hHcVpXbUllMFkwbnNCOWpQZG5wdkxQM0ZrampVUGkzIiwibWVyY2Fkb1BhZ28iOiJhcm1vci45ZTljZGE0MGI2OTgxZGU5OTY5NjIwODE0MTlmZTRiMjgwOGQ4YjY3Njg3ZWFkMTk1NGZlYmI3NDI5NDJkMWJjNjRjZWJlMWZiYzFjZDM0NWVkMTg5Yjg0Y2Q3YmUwNTc5ZGY4YjQ5MWMwNmYzZGYxY2M4MjVmMzkyODcwYzVmMzhjYjc3YTdhZWI1NzA3OWZiNmQ0ZWJkYTU4ZDc5YWMwNjFjYjFjZTc3YzkzYWFmYmIyZmY0NWFlYzgxZDdhYjAuNTc5YmRlZGNmNWI0OWU0YWVkZjg2MmQ4NjFhZDI4YTkiLCJzaWZ0IjoiQnk0S3VNeGNYR3FaV21JZTBZMG5zQjlqUGRucHZMUDNGa2pqVVBpMyIsInNpZ25pZnlkIjoiQnk0S3VNeGNYR3FaV21JZTBZMG5zQjlqUGRucHZMUDNGa2pqVVBpMyIsInN0cmlwZSI6InJzZV8xT2ZVaUUyZVp2S1lsbzJDMlFWTkphVmEifQ
                window.DEUNA_FRAUD_ID = cdl.getFraudId(); // NO es necesario guardarlo en el widow es solo un ejemplo
              });
          };
          script.onload = loadScript;
          document.body.appendChild(script);
      </script>
      
  • Paso 2: Obtener el valor del device fingerprint y enviarlo en el /purchase API
    • Para el /purchase V1 (Request):
      • {
            "token": "e4caabfb-3ed5-4930-a4fc-dd6e4812bd03", // order token
            "email": "john.doe@gmail",
            "method_type": "credit_card", 
            ...
            // mandar el fingerprint como base64
            "device_id": "<device fingerprint generated by the DEUNA Fraud SDK>",
            ...
        }
        
    • Para el /purchase V2 (Request):
      • {
          "payer_info": {
            "email": "[email protected]",
            "card_holder_dni": "12345678"
          },
          "payment_source": {
            "method_type": "debit_card",
            "card_info": {
              "card_id": "8ff8ebad-0af0-41ad-9398-19cec1cc1be5"
            }
          },
          "order": {
            "order_id": "DEUNA-NOW-69553619",
             // ...
          },
          "anti_fraud_info": { // dentro de este objeto se manda el fingerprint
            "device": {
              // mandar el fingerprint como base64
              "id": "<device fingerprint generated by the DEUNA Fraud SDK>"
            }
          }
        }