Página de pagamento da loja virtual

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

URL para ambiente de Produção:


https://esitef.softwareexpress.com.br/js/esitefpayment-1.0.min.js

URL para ambiente de Homologação:


https://esitef-homologacao.softwareexpress.com.br/js/esitefpayment-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
& esitef-cardexpiryyear
Mê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
esitef-cardsecuritycodeCódigo de segurança do cartão.< 5 NSIM
esitef-cardholderNome do portador do cartão.

Obrigatório apenas para pagamentos com e-Rede, GetNet WS e VR AN (SmartNet).

< 30 ANCOND.

Chamando o script do Carat#

Quando o comprador preencher os dados do cartão e clicar em "pagar", a página do lojista deve chamar a function Javascript esitefDoPayment passando como argumento uma requisição com os seguintes campos:

ParâmetroDescriçãoFormatoObrigatório
nitIdentificador de transação no Carat. Campo nit recebido na etapa de criação da transação.= 64 ANSIM
payTokenCampo pay_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:
pt - Português
en - Inglês
es - Espanhol
Caso o locale não seja enviado, será utilizado pt.
= 2 ANÃO
isCardSecurityCode
Optional
Define se o código de segurança do cartão será validado como campo obrigatório ou opcional. Enviar true caso seja um campo opcional. Caso esse campo não seja enviado, será considerado o valor false (código de segurança obrigatório).T/FNÃO
onSuccessFunction de callback que será chamada após um pagamento bem-sucedido no Carat. Esta function recebe como argumento a resposta do pagamento descrita em - Resposta dos callbacks de sucesso e fracasso.FSIM
onFailureFunction de callback que será chamada após um pagamento mal sucedido no Carat. Esta function recebe como argumento a resposta do pagamento 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 pagamento. 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
payment
authorizer_codeCódigo de resposta do autorizador.< 10 AN
authorizer_messageMensagem de resposta do autorizador.< 500 AN
statusStatus da transação de pagamento no Carat.= 3 AN
nitNúmero identificador da transação de pagamento no Carat.= 64 AN
order_idCódigo de pedido enviado pela loja na criação da transação.< 40 AN
customer_receiptCupom (via cliente).< 4000 AN
authorizer_idCódigo da autorizadora utilizada na transação.< 4 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 pagamento JavaScript do Carat:

Para usar este exemplo, não esquecer de definir a variável {{url}} com o valor
esitef-homologacao.softwareexpress.com.br

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script
type="text/javascript"
src="https://{{url}}/js/esitefpayment-1.0.min.js"
></script>
<script>
function myPay() {
var request = {
onSuccess: function(response) {
console.log(response.code);
console.log(response.message);
console.log(response.payment.authorizer_code);
console.log(response.payment.authorizer_message);
console.log(response.payment.status);
console.log(response.payment.nit);
console.log(response.payment.order_id);
console.log(response.payment.customer_receipt);
console.log(response.payment.authorizer_id);
},
onFailure: function(response) {
console.log(response.code);
console.log(response.message);
console.log(response.payment.authorizer_code);
console.log(response.payment.authorizer_message);
console.log(response.payment.status);
console.log(response.payment.nit);
console.log(response.payment.order_id);
console.log(response.payment.authorizer_id);
},
onInvalid: function(errors) {
for (var i = 0; i < errors.length; i++) {
console.log(errors[i].field);
console.log(errors[i].cause);
}
},
nit:1234567890123456789012345678901234567890123456789012345678901234,
payToken:123456789012345678901234567890123456789012345678901234567890123456,
merchantId: 'xxxxxxxx',
locale: 'pt',
isCardSecurityCodeOptional: false
};
esitefDoPayment(request);
}
</script>
</head>
<body>
<form method="POST">
<input type="text" class="esitef-cardnumber" />
<input type="text" class="esitef-cardexpirymonth" />
<input type="text" class="esitef-cardexpiryyear" />
<input type="text" class="esitef-cardsecuritycode" />
<input type="button" onclick="myPay()" />
</form>
</body>
</html>