Criação da sessão 3DS
Cria uma sessão 3DS e retorna os dados necessários para coleta de informações do navegador.\n\n ⚠️ IMPORTANTE: A sessão 3DS só consegue ser testada completamente em produção.
Tipo da fonte de pagamento
card
Valores possíveis: ID do cartão retornado na tokenização
3fa85f64-5717-4562-b3fc-2c963f66afa6
Sessão 3DS criada com sucesso
Requisição inválida
Não autorizado
Acesso proibido
Erro interno do servidor
POST /v1/3ds/session HTTP/1.1
Host: api.barte.com
X-Token-Api: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 69
{
"sourceType": "card",
"cardId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
{
"id": "701d8f14-9b5f-40b0-8013-422e0020c522",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"collectUrl": "https://centinelapistag.cardinalcommerce.com/V1/Cruise/Collect",
"providerType": "CYBERSOURCE"
}
⚠️ Campos importantes:
collectUrl
: URL onde o navegador vai enviar dados de background.token
: JWT usado no script de coleta.id
: (setupId) — será enviado depois no pagamento.
Coletar Dados do Navegador
Objetivo:
Antes de criar uma cobrança, é necessário coletar os dados do cliente. Para isso, é necessário incluir um script no front-end que fará essa coleta e enviará para o provedor 3DS. Existem 2 campos necessários para a coleta de dados, o collectUrl e o token. Esses campos são retornados na criação da sessão.
Script de coleta:
<div style="display: none;">
<iframe id="cardinal_collection_iframe" name="collectionIframe" height="1" width="1"></iframe>
<form id="cardinal_collection_form" method="POST" target="collectionIframe">
<input id="cardinal_collection_form_input" type="text" name="JWT" value="">
</form>
</div>
<script>
const collectUrl = '<collectUrl>';
const token = '<token>';
const docFormCardinal = document.getElementById('cardinal_collection_form');
const docInputCardinal = document.getElementById('cardinal_collection_form_input');
docFormCardinal.action = collectUrl;
docInputCardinal.value = token;
docFormCardinal.submit();
window.addEventListener("message", function (event) {
const origin = new URL(collectUrl).origin;
if (event.origin === origin) {
const data = JSON.parse(event.data);
console.log('COLETA FINALIZADA:', data);
}
});
</script>
⚠️ Observação:
O Seller precisa aguardar a finalização da coleta antes de prosseguir para a criação da cobrança.
Coleta rápida (~1s).
Atualizado
Isto foi útil?