Efetivar o Pagamento com autenticação
Function esitefDoPayment#
Depois do cliente preencher todos os campos na tela da loja, ele deve clicar em um botão para finalizar o pagamento. No evento de onclick deve ser chamada uma function javascript que preenche a request com nit, payToken, merchantId, authenticate, function de callback onSuccess, onProcessing, onFailure, onInvalid e posteriormente chamará a function esitefDoPayment, passando a request como parâmetro.
A function esitefDoPayment executa a autenticação 3DS, que pode exibir um desafio no qual pode ocorrer verificações de códigos de segurança, validação de tokens, aprovações no dispositivo móvel do comprador ou outros. Posteriormente a autenticação ocorre a autorização do pagamento na adquirente.
É importante deixar claro que de acordo com a parametrização passado na criação da transação (campo authenticate), o comportamento da autorização da transação pode mudar: 
- Se a transação for passada com authenticate = 1, então a transação só será autorizada se a autenticação for aprovada.
- Se a transação for passada com authenticate = 2, então a transação só será autorizada se a autenticação for aprovada, mas para bandeiras não suportadas pelo 3DS, não ocorrerá o passo da autenticação.
- Se a transação for passada com authenticate = 3, então a transação passará pelo fluxo de autenticação, mas se houver um resultado negado, o fluxo segue para a autorização.
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âmetro | Descrição | Formato | Obrigatório | 
|---|---|---|---|
| nit | Identificador de transação no Carat. Campo nitrecebido na etapa de criação da transação. | = 64 AN | SIM | 
| payToken | Campo pay_tokenrecebido na etapa de criação da transação. Este token só pode ser utilizado uma vez. | = 66 AN | SIM | 
| merchantId | Código da loja no Carat. Os códigos de produção e certificação serão diferentes. | < 15 N | SIM | 
| onSuccess | Function 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. | F | SIM | 
| onProcessing | Function de callback que será chamada após um desafio solicitado pelo emissor no fluxo de autenticação 3DS ou confirmação tardia. | F | SIM | 
| onFailure | Function 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. | F | SIM | 
| onInvalid | Function 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. | F | SIM | 
| authenticate | Campo boleano para informar que o pagamento javascript é com autenticação 3DS, passar 'true' caso o pagamento seja com 3DS | = 4 AN | SIM | 
| challengeWindowSize | Campo que representa o tamanho para a apresentação do challenge: 01- 250 x 400,02- 390 x 400,03- 500 x 600, caso não seja passado o javascript irá determinar um valor a ser utilizado | = 2 AN | NÃO | 
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âmetro | Descrição | Formato | 
|---|---|---|
| code | Có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 | 
| message | Mensagem de resposta do Carat. | < 500 AN | 
| payment | ||
| authorizer_code | Código de resposta do autorizador. | < 10 AN | 
| authorizer_message | Mensagem de resposta do autorizador. | < 500 AN | 
| status | Status da transação de pagamento no Carat. | = 3 AN | 
| nit | Número identificador da transação de pagamento no Carat. | = 64 AN | 
| order_id | Código de pedido enviado pela loja na criação da transação. | < 40 AN | 
| customer_receipt | Cupom (via cliente). | < 4000 AN | 
| authorizer_id | Có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âmetro | Descrição | Formato | 
|---|---|---|
| field | Nome do campo com erro. | < 30 AN | 
| cause | Mensagem de erro. | <100 AN | 
Exemplo#
Abaixo está um exemplo de uma função javascript chamando o esitefDoPayment: