Quick start

Creando la transacción

Tipo de solicitud: POST

URL: https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/store

Headers:

  • Content-Type: application/json
  • merchant_id: {su código de tienda}
  • merchant_key: {su clave de tienda}

Solicitud:

{
  "merchant_usn": "16013439434",
  "customer_id": "11122211122"
}
curl
--request POST "https://esitef-homologacao.softwareexpress.com.br/e-sitef/api/v1/store"
--header "Content-Type: application/json"
--header "merchant_id: xxxxxxxxxxx"
--header "merchant_key: xxxxxxxxxxx"
--data-binary
{
   "merchant_usn":"16013439434",
   "customer_id":"11122211122"
}
--verbose

Respuesta:

{
  "code": "0",
  "message": "OK. Transaction successful.",
  "store": {
    "status": "CON",
    "nsua": "18051600000560A",
    "merchant_usn": "16013439434",
    "customer_id": "11122211122",
    "nita": "Z123adsfrh342r72498r34920ur23r328r2038r023rh0h203rh032r082380rf43",
    "store_token": "123456789012345678901234567890123456789012345678901234567890123456"
  }
}

[Obtenga más información sobre este servicio.] (Storage-js-begin.md)

Página de pago de la tienda online

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://esitef-ec.softwareexpress.com.br/js/esitefstore-1.0.min.js

** URL del ambiente de aprobación: **

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

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>

Recibir un aviso de almacenamiento

Una vez que se completa el almacenamiento, Portal Carat notificará a la tienda con un POST (x-www-form-urlencoded) en su URL de almacenamiento registrada, que contiene el token de la tarjeta almacenada.

@RestController
public class MyStoreController {

    @PostMapping(value = "/mystore",
        consumes = "application/x-www-form-urlencoded; charset=utf-8")
    public ResponseEntity<String> myStore(@RequestParam Map<String, String> request) {
        Log.info("token = " + request.get("hash"));
        // ...
        return new ResponseEntity<>("OK", HttpStatus.OK);
    }

}

A continuación se muestra un ejemplo de una solicitud que debe realizar Portal Carat en el dominio registrado por la tienda:

curl -X POST \
  https://urlDaLojaCadastrada.com.br \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'cache-control: no-cache' \
  -d 'nsua=9055020677&nita=1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr&nsu=09055020677&status=CON&hash=67890afghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr&bin=498406&final=2268&autorizadora=1'

[Obtenga más información sobre este servicio.] (pago-html-storage # storage-notice)