Página de pago de la tienda virtual

La página de pago del comerciante debe contener lo script de Portal Carat. Abajo se muestran las URL de download:

URL para el entorno de producción:
https:///js/esitefpayment-1.0.min.js

URL para el entorno de Homologación:
https:///js/esitefpayment-1.0.min.js

Campos con datos de tarjeta

Los campos de la tarjeta deben contener las clases que se especifican abajo:

ParámetroDescripciónFormatoObligatorio
esitef-cardnumberNúmero de tarjeta del comprador (PAN).< 19 N
esitef-cardexpirydateFecha de vencimiento de la tarjeta en formato MMAA.= 4 N
esitef-cardexpirymonth
& esitef-cardexpiryyear
Mes y año de vencimiento de la tarjeta, en formatos MM e YY, respectivamente. Estos campos se pueden enviar en lugar de esitef-cardexpirydate. Si se envían todos al mismo tiempo, la fecha separada (esitef-cardexpirymonth y esitef-cardexpiryyear) tendrá prioridad.= 2 NSI
esitef-cardsecuritycodeCódigo de Seguridad de la Tarjeta. < 5 NSI
esitef-cardholderNombre del titular de la tarjeta. Obligatorio sólo para los pagos con e-Rede, GetNet WS y VR AN (SmartNet).< 30 ANCOND.

Llamada al script de Portal Carat

Cuando el comprador completa los datos de la tarjeta y hace clic en "pagar", la página del comerciante debe llamar al función Javascript esitefDoPayment pasando como argumento una solicitud con los siguientes campos:

ParámetroDescripciónFormatoObligatorio
nitIdentificador de transacción en el Portal Carat. Campo nit recibido en el paso de creación de la transacción.= 64 ANSI
payTokenCampo pay_token recibido en el paso de creación de la transacción. Este token solo se puede usar una vez.= 66 ANSI
merchantIdCódigo de tienda en el Portal Carat. Los códigos de producción y certificación serán diferentes. < 15 NSI
localeIdioma de los mensajes devueltos en errores de validación (callback "onInvalid"). Puede recibir los siguientes valores:
pt - portugués
en - inglés
es - español
Si la configuración regional no se envía, pt será usó.
= 2 ANO
isCardSecurityCode
Opcional
Define si el código de seguridad de la tarjeta se validará como campo obligatorio u opcional. Envíe "true" si este es un campo opcional. Si no se envía este campo, se considerará el valor "false" (código de seguridad obligatorio).T / FNO
onSuccessFunction de callback que se llamará después de un pago exitoso en Portal Carat. Esta función toma como argumento la respuesta de pago descrita en - [Respuesta de devolución de llamada exitosa y falla.] (#resposta-dos-callbacks-de-sucesso-e-fracasso)FSI
onFailureFunction de callback que se llamará después de un pago fallido en Portal Carat. Esta función toma como argumento la respuesta de pago descrita en - [Respuesta de devolución de llamada exitosa y falla.] (##resposta-dos-callbacks-de-sucesso-e-fracasso)FSI
onInvalidFunction de callback que se llamará después de un error de validación de JavaScript. Esta función toma como argumento la lista de errores descrita en - [Respuesta de devolución de llamada de error de validación.] (#resposta-do-callback-de-erro-de-validação)FSI

Respuesta de callbacks exitosa y fallida

Las funciones de callbacks onSuccess y onFailure toman como argumento un objeto que contiene Información del pago. Abajo se muestran descripciones de estos campos:

ParámetroDescripciónFormato
codeCódigo de respuesta de Portal Carat. Cualquier código que no sea "0" (cero) significa falla. Para obtener más información, consulte [Códigos de respuesta] (codigos-da-api#códigos-de-resposta) < 4 N
messageMensaje de respuesta de Portal Carat.< 500 AN
payment
authorizer_codeCódigo de respuesta del autorizador.< 10 AN
authorizer_messageMensaje de respuesta del autorizador.< 500 AN
statusStatus de la transacción de pago en el Portal Carat.= 3 AN
nitNúmero de identificación de la transacción de Portal Carat.= 64 AN
order_idCódigo de pedido enviado por la tienda al crear la transacción.< 40 AN
customer_receiptCupón (vía cliente).< 4000 AN
authorizer_idCódigo de autorización utilizado en la transacción.< 4 N

Respuesta de devolución de llamada de error de validación

La función de devolución de callback onInvalid toma como argumento una lista de objetos de ** error de validación **, que contiene los campos siguientes:

ParámetroDescripciónFormato
fieldNombre del campo con error.< 30 AN
causeMensaje de error.<100 AN

Ejemplo

Abajo se muestra un ejemplo de una página integrada con el pago de JavaScript Portal Carat:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <script
      type="text/javascript"
      src="https://esitef-
homologacao.softwareexpress.com.br/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>