Página de la teinda virtual

La página del comerciante debe contener el script de Portal Carat. A continuación se muestran las URL de descarga:

** URL para el ambiente de producción: **
https:///js/esitefstore-1.0.min.js

** URL del ambiente de aprobación: **
https:///js/esitefstore-1.0.min.js

Campos con datos de tarjeta

Los campos de la tarjeta deben contener las clases que se especifican a continuación:

ParámetroDescripciónFormatoRequerido
esitef-cardnumberNúmero de trajeta del comprador (PAN).< 19 NSI
esitef-cardexpirydateFecha de vencimiento de la tarjeta en formato MMAA.= 4 NSI
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

LLamando el Script de pago del Portal Carat

Cuando el comprador completa los datos de la tarjeta y envía, la página del comerciante debe llamar a la función de Javascript esitefStore, pasando una solicitud con los siguientes campos como argumento:

ParámetroDescripciónFormatoRequerido
nitaNúmero de identificación cifrado de la transacción de almacenamiento devuelta a la tienda por Portal Carat. < 65 ASI
storeTokenEl campo store_token recibido en el paso de creación de la transacción. Este token solo se puede usar una vez.= 66 ANSI
merchantldCódigo de tienda en 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
authorizer_idCódigo de autorizador en el Portal Carat. [Más información.] (authorizadoras.md) < 3 NSI
onSuccessFunction de callback que se llamará después de una tienda exitosa en Portal Carat. Esta function toma como argumento la respuesta de almacenamiento descrita en - [Respuesta de los callbacks exitosa y falla.] (#respuesta-de-calblack-exitosa-y-falla)FSI
onFailureFunción de callback que se llamará después de una tienda fallida en el Portal Carat. Esta Function toma como argumento la respuesta de almacenamiento descrita en - [Respuesta de los callback de éxito y falla.] (# Respuesta de callback exitosa y falla)FSI
onInvalidFunction de callback que se llamará después de un error de validación de JavaScript. Esta function toma como argumento la lista de errores descrita en - [Respuesta del callback de error de validación.] (#respuesta-de-callback-de-error-de-validación)FSI

Respuesta de los callback exitosa y fallida

Las funciones de devolución de llamada onSuccess y onFailure toman como argumento un objeto que contiene información sobre el almacenamiento. A continuación 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] (api-codes # response-codes) < 4 N
messageMensaje de respuesta de Portal Carat. < 500 AN
tienda
statusEstado de la transacción de almacenamiento de Portal Carat.= 3 AN
nitaNúmero de identificación de la transacción de almacenamiento de Portal Carat.= 65 AN
merchant_usnNúmero secuencial único enviado por la tienda. < 12 N

Respuesta del callbackde error de validación

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

ParámetroDescripciónFormato
campoNombre de campo erróneo. < 30 AN
causeMensaje de error. < 100 AN

Ejemplo:

A continuación se muestra un ejemplo de una página integrada con la tienda JavaScript de Portal Carat:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <script
      type="text/javascript"
      src="https://esitef-homologacao.softwareexpress.com.br/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>
    <form method="POST">
      <input type="text" class="esitef-cardnumber" />
      <input type="text" class="esitef-cardexpirymonth" />
      <input type="text" class="esitef-cardexpiryyear" />
      <input type="button" onclick="myStore()" />
    </form>
  </body>
</html>