Codes de statut et erreurs
Reference complete des codes de statut retournes par le SDK.
Codes de succes
| Code | Description |
|---|---|
| 200 | Succes - Operation reussie |
Codes d'erreur client (4xx)
| Code | Description | Solution |
|---|---|---|
| 400 | Requete invalide | Verifiez les parametres envoyes |
| 401 | Non autorise | Verifiez Serial, ApiUser et ApiPassword |
| 403 | Interdit | Licence invalide ou expiree |
| 404 | Non trouve | Message ou ressource introuvable |
| 409 | Conflit | Message deja traite ou expire |
| 429 | Trop de requetes | Ralentissez vos appels |
Codes d'erreur serveur (5xx)
| Code | Description | Solution |
|---|---|---|
| 500 | Erreur serveur | Reessayez plus tard |
| 503 | Service indisponible | Maintenance en cours |
Gestion des erreurs
Pattern recommande
public class SecureExchangesException : Exception
{
public int StatusCode { get; }
public string Details { get; }
public SecureExchangesException(int statusCode, string details)
: base($"Erreur {statusCode}: {details}")
{
StatusCode = statusCode;
Details = details;
}
}
public class MessageService
{
public string SendMessage(MutliRecipientArgs args)
{
var response = MessageHelper.MultiRecipientMessage(args);
switch (response.Status)
{
case 200:
return response.RecipientsAnswer[0].Answer.URL;
case 400:
throw new SecureExchangesException(400,
$"Parametres invalides: {response.Data}");
case 401:
throw new SecureExchangesException(401,
"Identifiants API invalides. Verifiez vos credentials.");
case 403:
throw new SecureExchangesException(403,
"Licence invalide ou expiree. Contactez le support.");
case 404:
throw new SecureExchangesException(404,
"Ressource non trouvee.");
case 500:
throw new SecureExchangesException(500,
$"Erreur serveur: {response.Data}. Reessayez plus tard.");
default:
throw new SecureExchangesException(response.Status,
response.Data ?? "Erreur inconnue");
}
}
}
Avec retry automatique
public async Task<string> SendMessageWithRetry(
MutliRecipientArgs args,
int maxRetries = 3,
int delayMs = 1000)
{
for (int attempt = 1; attempt <= maxRetries; attempt++)
{
var response = MessageHelper.MultiRecipientMessage(args);
if (response.Status == 200)
return response.RecipientsAnswer[0].Answer.URL;
// Retry seulement pour les erreurs temporaires
if (response.Status >= 500 || response.Status == 429)
{
if (attempt < maxRetries)
{
await Task.Delay(delayMs * attempt);
continue;
}
}
throw new SecureExchangesException(response.Status, response.Data);
}
throw new Exception("Nombre maximum de tentatives atteint");
}
Erreurs courantes et solutions
"Invalid credentials" (401)
// Verifiez que vos GUIDs sont corrects
Guid serial = new Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
Guid apiUser = new Guid("YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY");
Guid apiPassword = new Guid("ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ");
// Verifiez l'endpoint
Uri endpoint = new Uri("https://www.secure-exchanges.com/_api/0217/0217.asmx");
"License expired" (403)
Contactez support@secure-exchanges.com pour renouveler votre licence.
"File too large" (400)
La limite est de 2.5 Go. Compressez vos fichiers ou envoyez-les separement.
"Invalid email format" (400)
Verifiez le format des emails avec EmailHelper.IsValidEmail().