Aggiunta di documenti alle buste utilizzando modelli compositi in Docusign
-
27-12-2019 - |
Domanda
Sto cercando di aggiungere documenti a un modello composito utilizzando l'API DocuSign e i documenti non vengono caricanti nella busta nel modo in cui mi aspetterei. Attualmente ho il mio codice a lavorare con un test JSON in cui aggiungo documenti senza utilizzare modelli compositi e funziona perfettamente. Sembra che i modelli compositi saltino proprio sui documenti. Ecco come lo sto creando:
{
"emailSubject": "Test Email Subject_FA",
"emailBlurb": "Test Email Body_FA",
"status": "created",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence": "1",
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1",
"routingOrder": "1",
"roleName": "Client 1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2",
"routingOrder": "2",
"roleName": "Client 2"
}
],
"documents": [
{
"transformPdfFields": "false",
"name": "test0.pdf",
"documentId": "1"
}
]
}
}
]
},
{
"inlineTemplates": [
{
"sequence": "1",
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1",
"routingOrder": "1",
"roleName": "Client 1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2",
"routingOrder": "2",
"roleName": "Client 2"
}
],
"documents": [
{
"transformPdfFields": "false",
"name": "test1.pdf",
"documentId": "2"
}
]
}
}
]
}
]
.
}
Questo è un piccolo test che sto facendo così capisco che questo non è impraticabile. Ma quello che sto cercando di capire è il motivo per cui questo non aggiungerebbe documenti alla busta. La richiesta sottostante fa quello che sto cercando di fare sopra.
{
"emailSubject": "Test Email Subject_FA",
"emailBlurb": "Test Email Body_FA",
"status": "created",
"documents": [
{
"name": "test0.pdf",
"documentId": "1"
},
{
"name": "test1.pdf",
"documentId": "2"
},
{
"name": "test2.pdf",
"documentId": "3"
}
],
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1",
"clientUserId": "1",
"signerName": "test1",
"defaultRecipient": "true",
"defaultRecipientSpecified": "true",
"routingOrder": "1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2",
"clientUserId": "2",
"signerName": "test2",
"routingOrder": "2"
}
]
}
.
}
Qualcuno sa perché la mia busta per il modello composita non caricherà i documenti?
Grazie in anticipo!
Aggiornamento :
Ecco la mia richiesta per il modello composito:
--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
"emailSubject": "Test Email Subject_FA",
"emailBlurb": "Test Email Body_FA",
"status" : "created",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence": "1",
"recipients":
{
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1"
},
{
"email": "test2@gmail.com",
"name": "test2",
"recipientId": "2"
}
],
"document":
{
"name": "test0",
"documentId": "1",
"fileExtension": "pdf"
}
}
}
]
},
{
"inlineTemplates": [
{
"sequence": "2",
"recipients": {
"signers": [
{
"email": "test1@yahoo.com",
"name": "test1",
"recipientId": "1"
},
{
"email": "test3@yahoo.com",
"name": "test3",
"recipientId": "2"
}
],
"document":
{
"name": "test1",
"documentId": "2",
"fileExtension": "pdf"
}
}
}
]
}
]
}
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="test0.pdf"; documentid="1"
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="test1.pdf"; documentid="2"
--MY_BOUNDARY--
.
Ho aggiustato il mio documento per utilizzare il nome e la filedxtension, quindi ho lasciato fuori l'estensione .pdf nel nome del file in quanto sembra essere un altro metodo di implementazione. Ho provato in entrambi i modi e non ho avuto fortuna.
Soluzione
Nella richiesta JSON pubblicati, stai specificando " Documenti " (Plural) come raccolta / array di Documento oggetti - che non è corretto. Ogni elemento del modello composito all'interno del CompositeTemplates L'array può contenere solo, al massimo, un documento singolo . Ciò significa che la sintassi JSON per specificare il documento all'interno di un modello composito è il seguente:
"document": {
"documentId": 1,
"name": "test1.pdf"
}
.
I.e., Documento è singolare ed è un oggetto (non una serie di oggetti). Richiesta completa Sintassi dei "Modelli compositi" La richiesta JSON è mostrata nella risposta della tua domanda precedente:
Come posso applicare un modello a un documento che utilizza l'API di riposo DocuSign .
Re The "Aggiorna" alla tua domanda:
Nella porzione JSON della richiesta che hai postato sotto "Aggiornamento", noto che hai incluso Documento all'interno dei destinatari Oggetto (che è contenuto All'interno del InlineTemplates Object) - Questa non è la posizione corretta per Documento . Confronta la tua struttura JSON strettamente con la seguente struttura (corretta) e regola la tua richiesta di conseguenza. Essenzialmente, Documento deve essere un peer di InlineTemplates - non situato all'interno InlineTemplates .
POST https://demo.docusign.net/restapi/v2/accounts/ACCOUNTNBR/envelopes HTTP/1.1
X-DocuSign-Authentication: {"Username":"USERNAME","Password":"PASSWORD","IntegratorKey":"INTEGRATORKEY"}
Content-Type: multipart/form-data; boundary=MY_BOUNDARY
Accept: application/json
Host: demo.docusign.net
Content-Length: 162100
--MY_BOUNDARY
Content-Type: application/json
Content-Disposition: form-data
{
"status" : "sent",
"emailSubject" : "Test Envelope Subject",
"emailBlurb" : "Test Envelope Blurb",
"compositeTemplates": [
{
"inlineTemplates": [
{
"sequence" : 1,
"recipients": {
"signers" : [{
"email": "abbysemail@outlook.com",
"name": "Abby Abbott",
"recipientId": "1"
}]
}
}],
"document": {
"documentId": 1,
"name": "CustomerAgreement",
"fileExtension": "pdf"
}
}]
}
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="CustomerAgreement.pdf"; documentid="1"
<document bytes removed>
--MY_BOUNDARY
Content-Type: application/pdf
Content-Disposition: file; filename="Invoice.pdf"; documentid="2"
<document bytes removed>
--MY_BOUNDARY--
.