Le webhook de SESAR permet de notifier votre système lorsqu’un fichier a été reçu et traité. Il repose sur un appel HTTP contenant un objet structuré, et doit être configuré correctement pour assurer une intégration fluide avec votre environnement.
Lorsqu’un fichier est déposé via SESAR, celui-ci envoie une notification (un "hook") à une adresse que vous avez définie. Cette notification contient un objet chiffré, qui doit être reçu, déchiffré et traité par votre service.
Le webhook attend une requête POST avec le contenu suivant :
{
"args": {
"CryptedObject": "...",
"HashKey": "..."
}
}
CryptedObject : le manifeste chiffré en base64.
HashKey : le SHA512 de la clé publique utilisée pour le chiffrement, également en base64.
Ce contenu est envoyé avec le header Content-Type: application/json
.
[WebMethod]
[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]
public void SESARHook(SesarWebHook args)
{
// Traitement ici
}
[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; }
}
CryptedObject
Pour déchiffrer l’objet reçu (StoreManifest), utilisez le SDK de Secure Exchanges comme suit :
var jsonObject = CryptoHelper.DecryptStringFromBytes(
Convert.FromBase64String(cryptedObject),
Convert.FromBase64String(base64Key),
Convert.FromBase64String(base64Iv)
);
StoreManifest manifest = SerializationHelper.DeserializeFromJson<StoreManifest>(jsonObject);
base64Key
: la clé AES 256 bits utilisée pour le chiffrement.
base64Iv
: le vecteur d’initialisation (IV) 128 bits.
Ces deux valeurs doivent être protégées dans votre environnement.
Les éléments suivants sont cruciaux pour le bon fonctionnement de votre webhook :
WebHookKey : Clé AES 256 bits (générable via SECT Tools).
WebHookIv : IV 128 bits (également générable via SECT Tools).
Ces valeurs sont utilisées pour chiffrer/déchiffrer les StoreManifest.
.sesar
propre à votre configuration. Ce fichier ne doit pas être déplacé.L’URL de votre webhook doit suivre le format suivant :
https://[adresse_serveur]/[endpoint]/[methode]
Par exemple :
https://localhost/Test.asmx/SESARHook
Le webhook est appelé toutes les 30 secondes si des fichiers sont disponibles.
Un code HTTP 200 signifie que le traitement a réussi.
Si le webhook échoue ou retourne un autre code, il sera réessayé.
Le timeout d’attente de réponse est de 5 minutes.