A implementação de um sistema antifraude tem como objetivo monitorar e analisar o comportamento do usuário durante o preenchimento de dados sensíveis no checkout (como informações do cartão de crédito) para identificar padrões de fraude. A integração deste script aumenta a segurança nas transações, minimizando o risco de fraudes.
Visão Geral
A integração do antifraude na sua aplicação consiste em adicionar um código JavaScript específico dentro da tag <head>
.
O script deve ser iniciado assim que os dados do cartão de crédito ou do usuário começarem a ser capturados na página de checkout. Isso assegura o monitoramento desde o início da inserção de dados sensíveis.
Requisitos
- Suporte a JavaScript: Seu navegador deve estar habilitado para executar JavaScript.
- Acesso ao checkout onde os dados do usuário são capturados.
Exemplos de implementação
// File: checkout.js
import { v4 as uuidV4 } from 'uuid';
function insertAntifraudScript(attemptReferenceValue) {
if (!attemptReferenceValue) {
return;
}
const nethoneScript = document.createElement("script");
nethoneScript.type = "text/javascript";
nethoneScript.id = "nethone-script";
nethoneScript.crossOrigin = "use-credentials";
nethoneScript.src = "https://d354c9v5bptm0r.cloudfront.net/s/68741/dQItJr.js";
nethoneScript.async = true;
document.head.appendChild(nethoneScript);
nethoneScript.onload = () => {
localStorage.setItem("attempt_reference", attemptReference);
const nethoneOptions = {
attemptReference,
sensitiveFields: [ // Add here the names of the sensitive fields
'name',
'taxId',
'email',
'phone',
'cardInfoPayerName',
'cardInfoPayerTaxId',
'cardNumber',
'cardCvv',
'cardExpirationDate'
],
};
if (window.dftp) {
window.dftp.init(nethoneOptions);
} else {
nethoneScript.addEventListener("load", () => {
if (window.dftp) {
window.dftp.init(nethoneOptions);
}
});
}
};
}
// Call the function with the attemptReference value
const attemptReference = uuidV4(); // Replace with the GUID
insertAntifraudScript(attemptReference);
// File: useAntifraud.js
import { useScript } from '@unhead/vue';
export const useAntifraud = attemptReferenceValue => {
if (!attemptReferenceValue) {
return;
}
useScript(
{
id: 'nethone-script',
type: 'text/javascript',
src: 'https://d354c9v5bptm0r.cloudfront.net/s/68741/dQItJr.js',
crossorigin: 'use-credentials',
async: true
},
{
use() {
localStorage.setItem('attempt_reference', attemptReferenceValue);
const nethoneOptions = {
attemptReference: attemptReferenceValue,
sensitiveFields: [ // Add here the names of the sensitive fields
'name',
'taxId',
'email',
'phone',
'cardInfoPayerName',
'cardInfoPayerTaxId',
'cardNumber',
'cardCvv',
'cardExpirationDate'
]
};
window.dftp.init(nethoneOptions);
}
}
);
};
// File: checkout.vue
import { v4 as uuidV4 } from 'uuid';
import { useAntifraud } from './useAntifraud.js'
const attemptReference = uuidV4(); // Replace with the GUID
useAntifraud(attemptReference);
// File checkout.jsx
import React, { useEffect, useState } from 'react';
import { v4 as uuidv1 } from 'uuid';
function Checkout() {
const [attemptReference, setAttemptReference] = useState(uuidv1()); // Replace the uuidv1() with the GUID
useEffect(() => {
if (attemptReference) {
const nethoneScript = document.createElement("script");
nethoneScript.type = "text/javascript";
nethoneScript.id = "nethone-script";
nethoneScript.crossOrigin = "use-credentials";
nethoneScript.src = "https://d354c9v5bptm0r.cloudfront.net/s/68741/dQItJr.js";
nethoneScript.async = true;
document.body.appendChild(nethoneScript);
nethoneScript.onload = () => {
localStorage.setItem("attempt_reference", attemptReference);
const nethoneOptions = {
attemptReference,
sensitiveFields: [ // Add here the names of the sensitive fields
'name',
'taxId',
'email',
'phone',
'cardInfoPayerName',
'cardInfoPayerTaxId',
'cardNumber',
'cardCvv',
'cardExpirationDate'
],
};
if (window.dftp) {
window.dftp.init(nethoneOptions);
} else {
nethoneScript.addEventListener("load", () => {
if (window.dftp) {
window.dftp.init(nethoneOptions);
}
});
}
}
}
}, [attemptReference]);
// Conteúdo do componente de checkout vai aqui
return (
<div>
{/* Seu formulário de checkout */}
</div>
);
}
export default Checkout;
GUID
Substitua o attemptReference
por um GUID (Globally Unique Identifier), um identificador único global gerado pela aplicação do merchant. Este GUID é gerado no servidor do cliente e deve ser informado no campo payment_method_details.credit_card.antifraud_fingerprint_id
na criação do recebimento.
Exemplo de GUID: 2dd470e0-698f-4ae4-bf31-71ccd33970dd