Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.
Récupération d'un modèle
La récupération des modèles se fait à l'aide de la fonction OneSpan Sign PackageService(). Les modèles sont renvoyés sous forme d'un objet Page. Le code suivant permet de récupérer un modèle :
int i = 1; ArrayList<String> templateIds = new ArrayList<String>(); Page<DocumentPackage> templates = eslClient.getPackageService().getTemplates(new PageRequest(i ,50)); for (DocumentPackage template : templates) { System.out.println(String.format("Template name: %s with id %s", template.getName(), template.getId())); templateIds.add(template.getId().toString()); }
Mise à jour d'un modèle
Pour mettre à jour un modèle, créez d'abord un nouvel objet PackageId en utilisant l'Template ID. Ensuite, récupérez votre modèle en utilisant cet objet PackageId et modifiez vos paramètres si nécessaire. Une fois que vous avez terminé, utilisez le TemplateService() pour mettre à jour votre modèle. Le code suivant permet d'effectuer ce qui suit :
PackageId templateId = new PackageId(templateIds.get(0)); DocumentPackage templateToUpdate = eslClient.getPackage(templateId); templateToUpdate.setName("This template has been updated"); eslClient.getTemplateService().updateTemplate(templateToUpdate);
Suppression d'un modèle
Pour supprimer un modèle, utilisez le PackageService(). Le code suivant permet d'effectuer ce qui suit :
eslClient.getPackageService().deletePackage(templateId);
Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.
Le code
La récupération des modèles se fait à l'aide de la fonction OneSpan Sign PackageService(). Les modèles sont renvoyés sous forme d'un objet Page. Le code suivant permet de récupérer un modèle :
int i = 1; ArrayList templateIds = new ArrayList(); Page<DocumentPackage> templates = eslClient.PackageService.GetTemplates(new PageRequest(i, 50)); foreach (DocumentPackage template in templates) { Debug.WriteLine(string.Format("Template name: {0} with id {1}", template.Name, template.Id)); templateIds.Add(template.Id.ToString()); }
Mise à jour d'un modèle
Pour mettre à jour un modèle, créez d'abord un nouvel objet PackageId en utilisant l'Template ID. Ensuite, récupérez votre modèle en utilisant cet objet PackageId et modifiez vos paramètres si nécessaire. Une fois que vous avez terminé, utilisez le TemplateService() pour mettre à jour votre modèle. Le code suivant permet d'effectuer ce qui suit :
PackageId templateId = new PackageId(templateIds[0].ToString()); DocumentPackage templateToUpdate = eslClient.GetPackage(templateId); templateToUpdate.Name = "This template has been updated"; eslClient.TemplateService.Update(templateToUpdate);
Suppression d'un modèle
Pour supprimer un modèle, utilisez le PackageService(). Le code suivant permet d'effectuer ce qui suit :
eslClient.PackageService.DeletePackage(templateId);
Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.
Récupération d'un modèle
Le code suivant permet de récupérer un modèle :
Requête HTTP
GET /api/packages?type=TEMPLATE&from=0&to=100
En-têtes HTTP
Accept: application/json Content-Type: application/json Authorization: Basic api_key
Données utiles de la réponse
{ "results": [ { "roles": [ { "id": "a32f8b14-2771-4000-9ab6-19b8e9aae4bc", "emailMessage": null, "attachmentRequirements": [], "locked": false, "reassign": false, "specialTypes": [], "data": null, "index": 2, "type": "SIGNER", "signers": [], "name": "Placeholder2" }, { "id": "fad2c2d5-d75c-4bac-8707-3d9a555b8a07", "emailMessage": null, "attachmentRequirements": [], "locked": false, "reassign": false, "specialTypes": [], "data": null, "index": 1, "type": "SIGNER", "signers": [], "name": "Placeholder1" }, { "id": "YV68HNuhshUS", "emailMessage": null, "attachmentRequirements": [], "locked": false, "reassign": false, "specialTypes": [], "data": null, "index": 0, "type": "SENDER", "signers": [ { "group": null, "language": "en", "signature": { "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==", "textual": null }, "id": "ZQI8k6faVoM8", "address": null, "created": "2017-11-01T14:54:52Z", "title": null, "external": null, "updated": "2017-11-01T14:54:52Z", "phone": "", "userCustomFields": [], "company": "eSignLive", "email": "[email protected]", "firstName": "Haris", "lastName": "Haidary", "professionalIdentityFields": [], "data": null, "auth": { "scheme": "NONE", "challenges": [] }, "knowledgeBasedAuthentication": null, "delivery": { "email": true, "download": true, "provider": false }, "name": "", "specialTypes": [] } ], "name": "Owner" } ], "status": "DRAFT", "description": "", "language": "en", "id": "9VFZTf0vgi2rGEGHTozxZAXlm28=", "created": "2017-11-01T14:54:52Z", "autocomplete": true, "sender": { "status": "ACTIVE", "language": "en", "signature": { "handdrawn": "AQAAADJI+a4cnf0t3Dlf0GqWJceCA+4AAwADAN8BAAADAAAAggPuAOgAAAACfyxAUkAlQCdAOUA6QDtAHEAtQBtACkAJQBVAFBIyfkA0QBVABkAYQCpAHEAtQC9ALkAtQDxAO0A6QEhAN0AlQCQyTjZAgEBwQIBAoFDSUOFQ8lDiUNJQ0lCiQHBAUCIXGVBSUCVQN1BJUDpQXVA9UE5QLlAuUDpQOVAkm1BhQLZAd0B7QFpAXUBPQTBAHkAdQAtAB2AmYBRgQmCAcJVwmHC5Mh42QFBAkECAQKBAsEDAQNBQ8VDyUPJQ81DTULRQg1ByUEGeIgQ6QDhAJ0AmQCZAFItwbHBtMhdBUCafUGJQcVCSUJFQoUDAQKBAsECBQHNAdEBEQDRABkAFYCdgR2BXYHhgd2CIYIVgdmBDYEJAUUBwQIFAkECwQLBA0EDAQLBAoEBwQGASG0xAc0BnQEhASkArQBxADEAKQAlABkAFMkVKUENQUVBBUGFQYVCRUKJQsVDCUNJQsUDQQKBAkEBwQFJAREAlIllVUHFQUVByUKFQslDSUNJQ9VDlUPZQ1lDWUKVQZVBEUCQyCxivr2BjYGRgdGB1YHZgZmBWYEdgRkAFQClAREBjQJNAk0CzQKNAs0CjQJNAQo9gRWBjYJNgs2DCYNRg1GCkYKRgY2Bkrg==", "textual": null }, "id": "ZQI8k6faVoM8", "address": { "zipcode": "", "address1": "", "address2": "", "city": "", "country": "", "state": "" }, "created": "2016-05-05T19:30:13Z", "title": null, "external": null, "updated": "2016-05-05T19:30:13Z", "memberships": [], "phone": "+1 201-555-5555", "userCustomFields": [ { "id": "policy_number_id", "translations": [ { "description": "Car Insurance Policy Number.", "language": "en", "id": "", "data": null, "name": "Policy Number" } ], "data": null, "value": "", "name": "" } ], "locked": null, "activated": null, "company": "eSignLive", "email": "[email protected]", "firstName": "Haris", "lastName": "Haidary", "professionalIdentityFields": [], "account": { "owner": "ZQI8k6faVoM8", "id": "3vD0Dc9Fh7wQ", "created": "2016-05-05T19:30:13Z", "providers": null, "updated": "2016-05-05T19:30:13Z", "company": { "id": "jVWmyg4cyis8", "address": { "zipcode": null, "address1": null, "address2": null, "city": null, "country": null, "state": null }, "data": null, "name": "eSignLive" }, "customFields": [ { "required": false, "id": "policy_number_id", "translations": [ { "description": "Car Insurance Policy Number.", "language": "en", "id": "", "data": null, "name": "Policy Number" } ], "data": null, "value": "123-456-789-0", "name": "" } ], "licenses": [ { "status": "ACTIVE", "created": "2016-05-05T19:30:13Z", "paidUntil": "2020-05-05T00:00:00Z", "transactions": [], "plan": { "group": "", "description": "E-Sign Hundreds of Documents with Unlimited Signers", "id": "sandbox", "features": null, "cycle": "YEAR", "contract": "YEAR", "freeCycles": null, "quotas": [ { "scope": "ACCOUNT", "cycle": null, "limit": 100, "target": "SENDER" }, { "scope": "SENDER", "cycle": null, "limit": 500, "target": "DOCUMENT" }, { "scope": "SENDER", "cycle": null, "limit": 500, "target": "STORAGE" } ], "original": null, "data": null, "price": { "amount": 0, "currency": { "id": "USD", "data": null, "name": "US Dollar" } }, "name": "Sandbox" } } ], "logoUrl": "", "data": null, "name": "Haris Haidary" }, "data": { "serviceCredentials": "{}", "showIntro": false }, "type": "MANAGER", "name": "", "specialTypes": [], "hasDelegates": false }, "documents": [ { "status": "", "description": "", "id": "b1bcf8fb96e7663fcf8d79b3d36ab03a409ffb5ac183ced6", "approvals": [ { "role": "a32f8b14-2771-4000-9ab6-19b8e9aae4bc", "id": "f3L60CQtJ4w4", "signed": null, "accepted": null, "data": null, "fields": [ { "binding": null, "validation": null, "id": "FT055fW0IMEM", "page": 0, "subtype": "FULLNAME", "height": 52.0252180917263, "extract": false, "width": 234.98929138064383, "extractAnchor": null, "left": 241.80519113063812, "top": 605.0225778079033, "data": null, "type": "SIGNATURE", "value": "", "name": "" } ], "name": "" }, { "role": "fad2c2d5-d75c-4bac-8707-3d9a555b8a07", "id": "mEZ3ZWiNBYkE", "signed": null, "accepted": null, "data": null, "fields": [ { "binding": null, "validation": null, "id": "MGG8WGRTIEoJ", "page": 0, "subtype": "FULLNAME", "height": 51.99999809265137, "extract": false, "width": 234.9996913802624, "extractAnchor": null, "left": 221.99969185709955, "top": 514.000481146574, "data": null, "type": "SIGNATURE", "value": "", "name": "" } ], "name": "" } ], "pages": [ { "id": "53659ae7eb53699b0e6027311a5b9db435984e896e1306cf_0_-1_1.png", "height": 1030, "left": 0, "width": 796, "top": 0, "index": 0, "version": 0 } ], "external": null, "extract": false, "data": {}, "signedHash": null, "extractionTypes": [], "signerVerificationToken": null, "fields": [], "index": 0, "name": "sample_contract", "size": 97332 } ], "consent": null, "due": null, "emailMessage": "", "limits": null, "notarized": false, "settings": { "ceremony": { "layout": { "header": { "feedback": true, "breadcrumbs": true, "globalActions": { "confirm": true, "download": true, "hideEvidenceSummary": true, "saveAsLayout": true }, "globalNavigation": true, "titleBar": null, "sessionBar": true }, "brandingBar": { "logo": { "link": "", "src": "branding" } }, "iframe": false, "footer": null, "navigator": true }, "inPerson": false, "declineButton": true, "declineReasons": [], "disableDeclineOther": false, "disableDownloadForUncompletedPackage": false, "disableFirstInPersonAffidavit": false, "disableInPersonAffidavit": false, "disableOptOutOther": false, "disableSecondInPersonAffidavit": false, "documentToolbarOptions": null, "events": { "complete": { "dialog": true, "redirect": null } }, "handOver": null, "hideCaptureText": false, "hideLanguageDropdown": false, "hidePackageOwnerInPerson": false, "hideWatermark": false, "maxAuthFailsAllowed": 3, "optOutButton": true, "optOutReasons": [], "extractAcroFields": false, "extractTextTags": false, "style": null, "enforceCaptureSignature": false } }, "signedDocumentDelivery": null, "updated": "2017-11-01T14:55:35Z", "visibility": "SENDER", "data": { "senderVisible": false }, "messages": [], "type": "TEMPLATE", "name": "Signing Order Sender", "notaryRoleId": null, "bulkSendable": true } ], "count": 11 }
Mise à jour d'un modèle
Pour mettre à jour un modèle, vous devez d'abord récupérer votre Template ID. Ensuite, vous construisez vos données utiles JSON avec les paramètres que vous souhaitez modifier.
Requête HTTP
PUT /api/packages/{templateId}
En-têtes HTTP
Accept: application/json Content-Type: application/json Authorization: Basic api_key
Données utiles de la demande
{ "name": "Updating template name" }
Pour une description complète de chaque champ, voir le tableau des données utiles de la demande ci-dessous.
Suppression d'un modèle
Enfin, pour supprimer un modèle, faites une demande SUPPRIMER, comme suit :
Requête HTTP
DELETE /api/packages/{templateId}
En-têtes HTTP
Accept: application/json Content-Type: application/json Authorization: Basic api_key
Tableau des données utiles de la demande
Propriété | Type | Modifiable | Requis | Par défaut | Exemples de valeurs |
---|---|---|---|---|---|
statut | chaîne de caractères | Oui | Non | ÉBAUCHE | ÉBAUCHE / ENVOYÉ / COMPLÉTÉ / ARCHIVÉ / DÉCLINÉ / REFUSÉ / EXPIRÉ |
ComplétionAuto | booléen | Oui | Non | vrai | vrai / faux |
type | chaîne de caractères | Oui | Non | PACKAGE | PAQUET / MODÈLE / MISE EN PAGE |
nom | chaîne de caractères | Oui | Oui | s.o. | Exemple d'attributs de document |
supprimé | booléen | Oui | Non | faux | vrai / faux |
visibilité | chaîne de caractères | Oui | Non | COMPTE | COMPTE / EXPÉDITEUR |
documents | |||||
nom | chaîne de caractères | Oui | Non | s.o. | exemple de document |
approbations | |||||
champs | |||||
sous-type | chaîne de caractères | Oui | Non | s.o. | NOM COMPLET / INITIALES / CAPTURE / CAPTURE_MOBILE / ÉTIQUETTE / CHAMP DE TEXTE / ZONE DE TEXTE / CASE / DATE / RADIO / LISTE |
type | chaîne de caractères | Oui | Non | s.o. | SIGNATURE / ENTRÉE |
extrait | booléen | Oui | Non | faux | vrai / faux |
hauteur | entier | Oui | Non | 50 | 50 / 100 / 150 ... |
gauche | entier | Oui | Non | 0 | 50 / 100 / 150 ... |
page | entier | Oui | Non | 0 | 0 / 1 / 2 ... |
haut | entier | Oui | Non | 0 | 50 / 100 / 150 ... |
largeur | entier | Oui | Non | 200 | 50 / 100 / 150 ... |
rôle | chaîne de caractères | Oui | Non | s.o. | Client1 |
données | |||||
Département | chaîne de caractères | Oui | Non | s.o. | 1806 |
Employé | chaîne de caractères | Oui | Non | s.o. | 135526 |
rôles | |||||
id | chaîne de caractères | Oui | Non | s.o. | Client1 |
nom | chaîne de caractères | Oui | Non | s.o. | Client1 |
type | chaîne de caractères | Oui | Non | SIGNER | SIGNATAIRE / EXPÉDITEUR |
signataires | |||||
courriel | chaîne de caractères | Oui | Oui | s.o. | courriel.pré[email protected] |
Prénom | chaîne de caractères | Oui | Oui | s.o. | John |
Nom de famille | chaîne de caractères | Oui | Oui | s.o. | Smith |
téléphone | chaîne de caractères | Oui | Non | s.o. | 514-555-8888 |
id | chaîne de caractères | Oui | Non | s.o. | Client1 |
entreprise | chaîne de caractères | Oui | Non | s.o. | Acme Inc. |
titre | chaîne de caractères | Oui | Non | s.o. | Directeur général |
Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Les modèles et les mises en page répondent au même objectif d'automatisation du processus de signature électronique en réduisant le temps nécessaire à l'envoi de documents comprenant plusieurs blocs de signature et champs de données. Les modèles sont idéaux pour une utilisation au niveau de la transaction; vous pouvez prédéfinir vos signataires, vos documents, les emplacements de signature et les flux de travail de signature électronique afin de rationaliser le processus de signature électronique. Une mise en page, quant à elle, est un type de modèle qui vous permet de créer des emplacements prédéfinis pour vos blocs de signature et vos champs de données dans un document. Il agit comme un « marqueur » de l'emplacement des blocs de signature et des champs de données dans le document. Les mises en page sont utiles pour les utilisateurs qui envoient fréquemment des formulaires qui peuvent être légèrement différents selon le destinataire, mais dont les blocs de signature et les champs de données restent au même endroit dans tout le document. De plus, vous pouvez utiliser plusieurs mises en page par document, et les appliquer à des pages individuelles dans votre transaction.
Récupération d'un modèle
Le code suivant permet de récupérer un modèle :
//Retrieving templates integer totalCount = getTemplateCount(); integer index = 1; List<ESignLiveAPIObjects.package_x> templates = new List<ESignLiveAPIObjects.package_x>(); System.debug('Total template count: ' + totalCount); while(index < totalCount){ templates.addAll(getTemplates(index,index+49)); index += 50; } for(ESignLiveAPIObjects.package_x template: templates){ System.debug('Template name: ' + template.name + ' with id: ' + template.id); }
Dans le code ci-dessus, il y a deux fonctions encapsulées :
-
public integer getTemplateCount(): Cela renvoie la quantité totale de modèles.
-
public List<ESignLiveAPIObjects.package_x> getTemplates(integer from_x, integer to): Ceci renvoie une liste d'objets modèles en fonction de l'index de et à. L'index commence à 1 et renvoie un maximum de 100 résultats.
Mise à jour d'un modèle
Pour mettre à jour un modèle, vous devez d'abord récupérer votre modèle à l'aide de l'Template ID. Ensuite, modifiez vos paramètres selon vos besoins. Une fois que vous avez terminé, utilisez le bouton updatePackage () pour mettre à jour votre modèle. Le code suivant permet d'effectuer ce qui suit :
ESignLiveSDK sdk = new ESignLiveSDK(); ESignLiveAPIObjects.package_x template = sdk.getPackage('E-_tmDsICwCkM2vqFuzVxF7NVQQ='); template.name = 'This template has been updated - ' + Datetime.now().format(); sdk.helper.updatePackage(template,'E-_tmDsICwCkM2vqFuzVxF7NVQQ=');
Suppression d'un modèle
Pour supprimer un modèle, utilisez la fonction deletePackage(). Le code suivant permet d'effectuer ce qui suit :
sdk.helper.deletePackage('E-_tmDsICwCkM2vqFuzVxF7NVQQ=');