Signatures électroniques - Vue d'ensemble
Le SDK permet de faire signer électroniquement des documents PDF par vos destinataires.
Types de zones disponibles
| Type | Méthode | Description |
|---|---|---|
| Signature | CreateFieldSignZone |
Zone de signature manuscrite |
| Initiales | CreateFieldInitialZone |
Zone pour les initiales |
| Boîte de texte | CreateFieldTextZone |
Champ de texte simple |
| Zone de texte | CreateFieldTextAreaZone |
Champ de texte étendu (multiligne) |
| Date | CreateFieldDateZone |
Sélecteur de date |
| Date signature | CreateFieldDateSignZone |
Date remplie automatiquement au moment où la signature est apposée |
| Nombre | CreateFieldNumberZone |
Champ restreint aux caractères numériques |
| Case à cocher | CreateFieldCheckBoxZone |
Case à cocher |
| Bouton radio | CreateFieldRadioZone |
Option faisant partie d'un groupe. Un seul choix possible par groupe |
| Liste déroulante | CreateFieldDropdownZone |
Menu déroulant compact |
| Liste d'options | CreateFieldOptionListZone |
Liste de choix ouverte |
Workflow de signature
1. Préparer le PDF
|
v
2. Définir les zones de signature avec ZoneBuilder
|
v
3. Associer les zones aux destinataires
|
v
4. Envoyer avec MessageHelper.MultiRecipientMessage()
|
v
5. Le destinataire signe via l'interface web
|
v
6. Récupérer le document signé
Exemple rapide
using SecureExchangesSDK.Helpers;
using SecureExchangesSDK.Models.Args;
using SecureExchangesSDK.Models.Entity;
using SecureExchangesSDK.Models.JSON;
using SecureExchangesSDK.Models.Transport;
using SecureExchangesSDK.SecureExchanges;
// 1. Fichier a signer
string pdfPath = @"C:\contrat.pdf";
string sha512 = CryptoHelper.GetSHA512OfFile(pdfPath);
// Liste indiquant quels fichiers nécessitent une signature
List<SignFilesRequired> signFiles = new List<SignFilesRequired>
{
new SignFilesRequired {
SHA512 = sha512
}
};
// 2. Creer les zones de signature avec les methodes helpers
// ZoneBuilder utilise pdfPath pour lire les dimensions du PDF
ZoneBuilder zoneBuilder = new ZoneBuilder(pdfPath, false);
var zones = new SignZoneDetails[]
{
zoneBuilder.CreateFieldSignZone(
1, // numero de page
"signature1", // nom du champ
100, 650, // position x, y
200, 50), // largeur, hauteur
zoneBuilder.CreateFieldDateSignZone(
1, // numero de page
"date1", // nom du champ
100, 600, // position x, y
100, 25, // largeur, hauteur
12) // taille de police
};
// 3. Associer aux destinataires
var recipient = new RecipientInfo { Email = "client@example.com" };
var recipientIndex = new Dictionary<RecipientInfo, List<FileZoneDefinition>>
{
{
recipient,
new List<FileZoneDefinition>
{
new FileZoneDefinition
{
UniqueName = sha512,
ZonesDef = new SignZoneDefinition { Zones = zones }
}
}
}
};
// 4. Configurer l'envoi
var recipients = new List<RecipientInfo> { recipient };
Uri endpoint = new Uri("https://www.secure-exchanges.com/_api/0217/0217.asmx");
string message = "Veuillez signer ce contrat";
string subject = "Contrat a signer";
string password = null; // Mot de passe optionnel pour ouvrir le message
SendMethodEnum sendMethod = SendMethodEnum.onlyEmail;
string culture = "fr-CA"; // Langue de l'interface de signature
int maximumOpenTime = 5; // Nombre d'ouvertures max
int minutesExpiration = 10080; // 1 semaine (en minutes)
bool getBackHtml = false; // Retourne le HTML du courriel pour l'envoyer via votre propre serveur SMTP
bool showSubject = true; // DEPRECATED
bool getNotify = true; // Active la notification d'ouverture
var args = new MutliRecipientArgs(
endpoint,
serial,
apiUser,
apiPassword,
recipients,
message,
subject,
password,
null,
sendMethod,
getBackHtml,
showSubject,
getNotify,
culture,
maximumOpenTime,
minutesExpiration
){
FilesPath = new List<string> { pdfPath },
FileToSign = signFiles,
SignRecipientsZoneDef = SignHelper.ConvertRecipientIndexToList(recipientIndex),
OwnerDontNeedToSign = true,
};
// 5. Envoyer
var response = MessageHelper.MultiRecipientMessage(args);