Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Cette rubrique décrit comment signer toutes les signatures d'une transaction à l'aide d'un appel unique, au lieu de parcourir successivement chaque document et de signer chaque signature de manière séquentielle.
Dans cet exemple :
-
Il y a deux destinataires dans la transaction : l'expéditeur et un client.
-
Il y a deux documents dans la transaction.
-
Les ancres de texte sont utilisées pour positionner les signatures sur les documents. Pour obtenir plus d'informations, consultez Ancres de texte.
-
L'exemple de PDF utilisé dans ce guide peut être téléchargé ici.
Le code suivant signera toutes les signatures de la transaction.
// Package PackageBuilder packageToBuild = // PackageBuilder.newPackageNamed("Sign Documents Test"); //Sender // SignerBuilder signer1 = // SignerBuilder.newSignerWithEmail("[email protected]") // .withFirstName("Haris") .withLastName("Haidary") .withCustomId("Sender"); // //Client SignerBuilder signer2 = // SignerBuilder.newSignerWithEmail("[email protected]") .withFirstName("John") // .withLastName("Smith") .withCustomId("Signer"); //Sender signature on // first document SignatureBuilder signature1 = // SignatureBuilder.signatureFor("[email protected]") // .withPositionAnchor(TextAnchorBuilder.newTextAnchor("Signature of the // Contractor") .atPosition(TextAnchorPosition.TOPLEFT) .withSize(150, 40) // .withOffset(0, -50) .withCharacter(0) .withOccurence(0)); //Client // signature on first document SignatureBuilder signature2 = // SignatureBuilder.signatureFor("[email protected]") // .withPositionAnchor(TextAnchorBuilder.newTextAnchor("Signature of the // Client") .atPosition(TextAnchorPosition.TOPLEFT) .withSize(150, 40) // .withOffset(0, -50) .withCharacter(0) .withOccurence(0)); //First // document DocumentBuilder document1 = // DocumentBuilder.newDocumentWithName("Cleaning Contract") // .fromFile("DOC_FILE_PATH") .withSignature(signature1) // .withSignature(signature2); //Build package DocumentPackage packageToSend // = // packageToBuild.withSigner(signer1).withSigner(signer2).withDocument(document1).withDocument(document2).build(); // //Create and send package PackageId packageId = // client.createAndSendPackage(packageToSend); //sign all documents for sender // client.signDocuments(packageId);
La dernière ligne de cet exemple de code signe automatiquement tous les documents pour l'expéditeur.
Cette fonction ne fonctionne pas pour les signatures par capture.
Résultats
Une fois que vous aurez exécuté votre code, connectez-vous à OneSpan Sign. Vous verrez un crochet à côté de votre expéditeur. Cela confirme que toutes les signatures de l'expéditeur ont été appliquées.
Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Cette rubrique décrit comment signer toutes les signatures d'une transaction à l'aide d'un appel unique, au lieu de parcourir successivement chaque document et de signer chaque signature de manière séquentielle.
Dans cet exemple :
-
Il y a deux destinataires dans la transaction : l'expéditeur et un client.
-
Il y a deux documents dans la transaction.
-
Les ancres de texte sont utilisées pour positionner les signatures sur les documents. Pour obtenir plus d'informations, consultez Ancres de texte.
-
L'exemple de PDF utilisé dans ce guide peut être téléchargé ici.
Le code suivant signera toutes les signatures de la transaction.
//Package PackageBuilder packageToBuild = PackageBuilder.NewPackageNamed("Sign Documents Test"); //Sender SignerBuilder signer1 = SignerBuilder.NewSignerWithEmail("[email protected]") .WithFirstName("Haris") .WithLastName("Haidary") .WithCustomId("Sender"); //Client SignerBuilder signer2 = SignerBuilder.NewSignerWithEmail("[email protected]") .WithFirstName("John") .WithLastName("Smith") .WithCustomId("Signer"); //Sender signature on first document SignatureBuilder signature1 = SignatureBuilder.SignatureFor("[email protected]") .WithPositionAnchor(TextAnchorBuilder.NewTextAnchor("Signature of the Contractor") .AtPosition(TextAnchorPosition.TOPLEFT) .WithSize(150, 40) .WithOffset(0, -50) .WithCharacter(0) .WithOccurrence(0)); //Client signature on first document SignatureBuilder signature2 = SignatureBuilder.SignatureFor("[email protected]") .WithPositionAnchor(TextAnchorBuilder.NewTextAnchor("Signature of the Client") .AtPosition(TextAnchorPosition.TOPLEFT) .WithSize(150, 40) .WithOffset(0, -50) .WithCharacter(0) .WithOccurrence(0)); //First document DocumentBuilder document1 = DocumentBuilder.NewDocumentNamed("Cleaning Contract") .FromFile("DOC_FILE_PATH") .WithSignature(signature1) .WithSignature(signature2); //Build package DocumentPackage packageToSend = packageToBuild.WithSigner(signer1).WithSigner(signer2).WithDocument(document1).WithDocument(document2).Build(); //Create and send package PackageId packageId = client.CreateAndSendPackage(packageToSend); //Sign all documents for sender client.SignDocuments(packageId);
La dernière ligne de cet exemple de code signe automatiquement tous les documents pour l'expéditeur.
Cette fonction ne fonctionne pas pour les signatures par capture.
Résultats
Une fois que vous aurez exécuté votre code, connectez-vous à OneSpan Sign. Vous verrez un crochet à côté de votre expéditeur. Cela confirme que toutes les signatures de l'expéditeur ont été appliquées.
Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Cette rubrique décrit comment signer toutes les signatures d'une transaction à l'aide d'un appel unique, au lieu de parcourir successivement chaque document et de signer chaque signature de manière séquentielle.
Dans cet exemple :
-
Il y a deux destinataires dans la transaction : l'expéditeur et un client.
-
Il y a deux documents dans la transaction.
-
Les ancres de texte sont utilisées pour positionner les signatures sur les documents. Pour obtenir plus d'informations, consultez Ancres de texte.
-
L'exemple de PDF utilisé dans ce guide peut être téléchargé ici.
Requête HTTP
POST /api/packages
En-têtes HTTP
Accept: application/json Content-Type: multipart/form-data Authorization: Basic api_key
Données utiles de la demande
-- -- --WebKitFormBoundary1bNO60n7FqP5WO4t Content - Disposition: form - data; name = "file"; filename = "testDocumentExtraction.pdf" Content - Type: application / pdf % PDF - 1.5 % µµµµ 1 0 obj < >>> endobj....-- -- --WebKitFormBoundary1bNO60n7FqP5WO4t Content - Disposition: form - data; name = "payload" "roles": [{ "id": "Signer", "type": "SIGNER", "signers": [{ "firstName": "John", "lastName": "Smith", "email": "[email protected]" }], "name": "Signer" }, { "id": "Sender", "type": "SIGNER", "signers": [{ "firstName": "Haris", "lastName": "Haidary", "email": "[email protected]" }], "name": "Sender" }], "documents": [{ "approvals": [{ "fields": [{ "type": "SIGNATURE", "extract": false, "extractAnchor": { "text": "Signature of the Client", "index": 0, "width": 150, "height": 40, "anchorPoint": "TOPLEFT", "characterIndex": 0, "leftOffset": 0, "topOffset": -50 }, "left": 0, "subtype": "FULLNAME", "top": 0 }, { "value": null, "type": "INPUT", "binding": "{signer.name}", "extract": false, "extractAnchor": { "text": "(hereafter referred to as", "index": 0, "width": 150, "height": 20, "anchorPoint": "TOPRIGHT", "characterIndex": 0, "leftOffset": -175, "topOffset": -5 }, "left": 0, "subtype": "LABEL", "top": 0 }, { "value": null, "type": "INPUT", "binding": "{approval.signed}", "extract": false, "extractAnchor": { "text": "Date", "index": 0, "width": 75, "height": 40, "anchorPoint": "TOPRIGHT", "characterIndex": 4, "leftOffset": 10, "topOffset": -30 }, "left": 0, "subtype": "LABEL", "top": 0 }], "role": "Signer" }, { "fields": [{ "type": "SIGNATURE", "extract": false, "extractAnchor": { "text": "Signature of the Contractor", "index": 0, "width": 150, "height": 40, "anchorPoint": "TOPLEFT", "characterIndex": 0, "leftOffset": 0, "topOffset": -50 }, "subtype": "FULLNAME" }], "role": "Sender" }], "id": "contract", "name": "Sample Contract" }], "name": "Sign Documents Test", "type": "PACKAGE", "language": "en", "autoComplete": true, "status": "SENT" }-- -- --WebKitFormBoundary1bNO60n7FqP5WO4t--
Pour une description complète de chaque champ, voir le tableau des données utiles de la demande ci-dessous.
Données utiles de la réponse
{ "id": "9sKhW-h-qS9m6Ho3zRv3n2a-rkI=" }
Une fois que vous avez envoyé votre transaction, vous effectuez une requête POST vers :
Requête HTTP
POST /api/packages/{packageId}/documents/signed_documents
En-têtes HTTP
Accept: application/json Content-Type: application/json Authorization: Basic api_key{ "documents": [ { "id": "contract", "name": "Sample Contract" } ] }
La dernière ligne de cet exemple de code signe automatiquement tous les documents pour l'expéditeur.
Cette fonction ne fonctionne pas pour les signatures par capture.
Résultats
Une fois que vous aurez exécuté votre code, connectez-vous à OneSpan Sign. Vous verrez un crochet à côté de votre expéditeur. Cela confirme que toutes les signatures de l'expéditeur ont été appliquées.
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'extraction d'ancres de texte API REST |
langue | chaîne de caractères | Oui | Oui | en | en / fr / de ... |
documents | |||||
nom | chaîne de caractères | Oui | Non | s.o. | Exemple de contrat |
approbations | |||||
rôle | chaîne de caractères | Oui | Non | s.o. | client |
champs | |||||
type | chaîne de caractères | Oui | Oui | s.o. | SIGNATURE / ENTRÉE |
extrait | booléen | Oui | Non | faux | vrai / faux |
sous-type | chaîne de caractères | Oui | Oui | s.o. | NOM COMPLET / INITIALES / CAPTURE / CAPTURE_MOBILE / ÉTIQUETTE / CHAMP DE TEXTE / ZONE DE TEXTE / CASE / DATE / RADIO / LISTE |
liaison | chaîne de caractères | Oui | Non | nul | nul / {approval.signed} / {signer.title} / {signer.name} / {signer.company} |
gauche | entier | Oui | Non | 0 | 0 / 10 / 20 ... |
haut | entier | Oui | Non | 0 | 0 / 10 / 20 ... |
extractAnchor | |||||
texte | chaîne de caractères | Oui | Oui | s.o. | Signature du client |
PointAncrage | chaîne de caractères | Oui | Oui | s.o. | HAUT-GAUCHE / HAUT-DROIT / BAS-GAUCHE / BAS-DROIT |
index | entier | Oui | Non | 0 | 0 / 1 / 2 ... |
largeur | entier | Oui | Non | 200 | 150 |
characterIndex | entier | Oui | Non | 0 | 0 |
hauteur | entier | Oui | Non | 50 | 40 |
décalageGauche | entier | Oui | Non | 0 | 40 |
DécalageDroite | entier | Oui | Non | 0 | -10 |
rôles | |||||
id | chaîne de caractères | Oui | Non | s.o. | client |
index | entier | Oui | Non | 0 | 1 / 2 / 3 ... |
nom | chaîne de caractères | Oui | Non | s.o. | client |
type | chaîne de caractères | Oui | Non | SIGNER | SIGNATAIRE / EXPÉDITEUR |
signataires | |||||
courriel | chaîne de caractères | Oui | Oui | s.o. | [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 |
id | chaîne de caractères | Oui | Non | s.o. | client |
Pour télécharger l'exemple complet de code, consultez notre site Partage de code.
Cette rubrique décrit comment signer toutes les signatures d'une transaction à l'aide d'un appel unique, au lieu de parcourir successivement chaque document et de signer chaque signature de manière séquentielle.
Dans cet exemple :
-
Il y a deux destinataires dans la transaction : l'expéditeur et un client.
-
Il y a deux documents dans la transaction.
-
Les ancres de texte sont utilisées pour positionner les signatures sur les documents. Pour obtenir plus d'informations, consultez Ancres de texte.
-
L'exemple de PDF utilisé dans ce guide peut être téléchargé ici.
Après avoir envoyé votre paquet à la signature, vous devrez récupérer votre packageID. Ensuite, utilisez le code suivant pour signer toutes les signatures de la transaction :
public void signDocuments(String packageId)
Résultats
Une fois que vous aurez exécuté votre code, connectez-vous à OneSpan Sign. Vous verrez un crochet à côté de votre expéditeur. Cela confirme que toutes les signatures de l'expéditeur ont été appliquées.