Página da loja virtual

A página do lojista deve conter o script do Carat. Abaixo estão as URLs para download:

URL para ambiente de Produção: <br/> https://<URLPOSTMANPROD/>/js/esitefstore-1.0.min.js

URL para ambiente de Homologação: <br/> https://<URLPOSTMAN/>/js/esitefstore-1.0.min.js

Campos com dados de cartão

Os campos de cartão devem conter as classes especificadas abaixo:

ParâmetroDescriçãoFormatoObrigatório
esitef-cardnumberNúmero do cartão do comprador (PAN).< 19 NSIM
esitef-cardexpirydateData de vencimento do cartão no formato MMAA.= 4 NSIM
esitef-cardexpirymonth <br/> & esitef-cardexpiryyearMês e ano de vencimento do cartão, nos formatos MM e AA, respectivamente. Esses campos podem ser enviados no lugar de esitef-cardexpirydate. Caso sejam todos enviados ao mesmo tempo, a data separada (esitef-cardexpirymonth e esitef-cardexpiryyear) terá prioridade.= 2 NSIM

Chamando o script do Carat

Quando o comprador preencher os dados do cartão e realizar o submit, a página do lojista deve chamar a function Javascript esitefStore passando como argumento uma requisição com os seguintes campos:

ParâmetroDescriçãoFormatoObrigatório
nitaNúmero identificador criptografado da transação de armazenamento devolvido à loja pelo Carat.< 65 ASIM
storeTokenCampo store_token recebido na etapa de criação da transação. Este token só pode ser utilizado uma vez.= 66 ANSIM
merchantIdCódigo da loja no Carat. Os códigos de produção e certificação serão diferentes.< 15 NSIM
localeLinguagem das mensagens retornadas em erros de validação (callback "onInvalid"). Pode receber os seguintes valores:<br/> pt - Português <br/> en - Inglês<br/> es - Espanhol<br/> Caso o locale não seja enviado, será utilizado pt.= 2 ANÃO
authorizer_idCódigo da autorizadora no Carat. Saiba mais.< 3 NSIM
onSuccessFunction de callback que será chamada após um armazenamento bem-sucedido no Carat. Esta function recebe como argumento a resposta do armazenamento descrita em - Resposta dos callbacks de sucesso e fracasso.FSIM
onFailureFunction de callback que será chamada após um armazenamento mal sucedido no Carat. Esta function recebe como argumento a resposta do armazenamento descrita em - Resposta dos callbacks de sucesso e fracasso.FSIM
onInvalidFunction de callback que será chamada após um erro de validação JavaScript. Esta function recebe como argumento a lista de erros descrita em - Resposta do callback de erro de validação.FSIM

Resposta dos callbacks de sucesso e fracasso

As functions de callback onSuccess e onFailure recebem como argumento um objeto contendo informações referentes ao armazenamento. Abaixo estão as descrições desses campos:

ParâmetroDescriçãoFormato
codeCódigo de resposta do Carat. Qualquer código diferente de 0 (zero) significa falha. Para maiores informações, consulte os Códigos de Resposta.< 4 N
messageMensagem de resposta do Carat.< 500 AN
store
statusStatus da transação de armazenamento no Carat.= 3 AN
nitaNúmero identificador da transação de armazenamento no Carat.= 65 AN
merchant_usnNúmero sequencial único enviado pela loja.< 12 N

Resposta do callback de erro de validação

A function de callback onInvalid recebe como argumento uma lista de objetos de erro de validação, contendo os campos abaixo:

ParâmetroDescriçãoFormato
fieldNome do campo com erro.< 30 AN
causeMensagem de erro.< 100 AN

Exemplo:

Abaixo está um exemplo de uma página integrada com o armazenamento JavaScript do Carat:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor<br/> <URLPOSTMAN/>

&lt;!DOCTYPE html&gt;
<html>
  <head>
    &lt;meta charset="utf-8" /&gt;
    <script
      type="text/javascript"
      src="https://{{url}}/js/esitefstore-1.0.min.js"
    ></script>
    <script>
      function myStore() {
        var request = {
          onSuccess: function (response) {
            console.log(response.code);
            console.log(response.message);
            console.log(response.store.status);
            console.log(response.store.nita);
            console.log(response.store.merchant_usn);
          },
          onFailure: function (response) {
            console.log(response.code);
            console.log(response.message);
            console.log(response.store.status);
            console.log(response.store.nita);
            console.log(response.store.merchant_usn);
          },
          onInvalid: function (errors) {
            for (var i = 0; i < errors.length; i++) {
              console.log(errors[i].field);
              console.log(errors[i].cause);
            }
          },
          nita:
            "Zdn2482f8924jh8fh842390hfef2fij20fj40jf024jf9j240hf4hjf0h243f84jf",
          storeToken:
            "123456789012345678901234567890123456789012345678901234567890123456",
          merchantId: "xxxxxxxx",
          locale: "pt",
          authorizerId: "2",
        };
        esitefStore(request);
      }
    </script>
  </head>

  <body>
    &lt;form method="POST"&gt;
      &lt;input type="text" class="esitef-cardnumber" /&gt;
      &lt;input type="text" class="esitef-cardexpirymonth" /&gt;
      &lt;input type="text" class="esitef-cardexpiryyear" /&gt;
      &lt;input type="button" onclick="myStore()" /&gt;
    </form>
  </body>
</html>