Criação da sessão 3DS

Objetivo:

Criar uma sessão para coleta de dados do navegador.

cardId - O ID retornado no response da criação do cartão

REQUEST

POST POST <https://sandbox-api.barte.com/v1/3ds/create-session>
Headers:
- X-Token-Api: <token-api>
- Content-Type: application/json
Body:
{
  "sourceType": "card",
  "cardId": "<id-do-cartao>" -
}

RESPONSE

{
  "id": "701d8f14-9b5f-40b0-8013-422e0020c522",
  "token": "<jwt-token>",
  "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 irá coletar os dados do cliente e enviar para o provedor 3DS. Existe 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?