Integración de un webhook con SESAR: todo lo que necesitas saber

¿Cómo integrar un Webhook con SESAR?

El webhook SESAR notifica a su sistema cuando se recibe y procesa un archivo. Se basa en una solicitud HTTP que contiene un objeto estructurado y debe configurarse correctamente para garantizar una integración fluida con su entorno.

Objetivo del webhook

Cuando se carga un archivo mediante SESAR, se envía una notificación (un "gancho") a la dirección que usted haya definido. Esta notificación contiene un objeto cifrado que su servicio debe recibir, descifrar y procesar.


Formato esperado por el webhook

El webhook espera una solicitud POST con el siguiente contenido :

 {
"args": {
"CryptedObject": "...",
"HashKey": "..."
}
}
  • CryptedObject : el manifiesto cifrado en base64.

  • HashKey : el SHA512 de la clave pública utilizada para el cifrado, también en base64.

Este contenido se envía con el encabezado Content-Type: application/json .


Ejemplo de una implementación en C#

En ASMX

 [WebMethod]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public void SESARHook(SesarWebHook args)
{
// Traitement ici
}

En ASP.NET MVC

 [HttpPost]
public string SESARHook([FromBody] HookArgs SEManifest)
{
var crypted = SEManifest.args.CryptedObject;
var hash = SEManifest.args.HashKey;

// Traitement ici
return "OK";
}

public class HookArgs
{
public SesarWebHook args { get; set; }
}

public class SesarWebHook
{
public string CryptedObject { get; set; }
public string HashKey { get; set; }
}

Descifrar el CryptedObject

Para descifrar el objeto recibido (StoreManifest), utilice el SDK de intercambios seguros de la siguiente manera:

 var jsonObject = CryptoHelper.DecryptStringFromBytes(
Convert.FromBase64String(cryptedObject),
Convert.FromBase64String(base64Key),
Convert.FromBase64String(base64Iv)
);

StoreManifest manifest = SerializationHelper.DeserializeFromJson<StoreManifest>(jsonObject);
  • base64Key : la clave AES de 256 bits utilizada para el cifrado.

  • base64Iv : el vector de inicialización (IV) de 128 bits .

  • Estos dos valores deben protegerse en su entorno.


Seguridad y cifrado

Los siguientes elementos son cruciales para el correcto funcionamiento de su webhook:

  • WebHookKey : clave AES de 256 bits (generable a través de herramientas SECT).

  • WebHookIv : IV 128 bits (también generable mediante herramientas SECT).

  • Estos valores se utilizan para cifrar/descifrar StoreManifests.

Alerta
🔒 Importante: Tras el primer inicio de SESAR, estos valores se cifran en un archivo .sesar específico para su configuración. Este archivo no debe transferirse .


Formato de URL de webhook

La URL de su webhook debe seguir este formato:

 https://[adresse_serveur]/[endpoint]/[methode]

Por ejemplo :

 https://localhost/Test.asmx/SESARHook

Cómo funciona el webhook

  • El webhook se llama cada 30 segundos si hay archivos disponibles.

  • Un código HTTP 200 significa que el procesamiento fue exitoso.

  • Si el webhook falla o devuelve otro código, se volverá a intentar.

  • El tiempo de espera de respuesta es de 5 minutos .