Добавление документов в конверты с помощью композитных шаблонов в Docusign

StackOverflow https://stackoverflow.com//questions/20054335

Вопрос

Я пытаюсь добавить документы в композитный шаблон, используя API Docusign, и документы не загружаются в конверт, как я ожидаю. В настоящее время у меня есть код, работающий с тестом JSON, где я добавляю документы без использования композитных шаблонов, и он отлично работает. Кажется, что композитные шаблоны пропускают прямо над документами. Вот как я его создаю:

{
"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"
                        }
                    ]
                }
            }
        ]
    }
]
.

}

Это немного теста, я делаю, поэтому я понимаю, что это непрактично. Но что я пытаюсь понять, поэтому это не добавит документы в конверт. Запрос ниже делает то, что я пытаюсь сделать выше.

{
"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"
        }
    ]
}
.

}

Есть ли кто-нибудь, почему мой конверт для композита шаблона не загрузит документы?

заранее спасибо!

<Сильное> Обновление :

Вот мой запрос на композитный шаблон:

--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--
.

Я настроил свой документ для использования имени и FileDxtence, поэтому я оставил расширение .pdf на имя файла, как это кажется другим методом реализации этого. Я пробовал это оба образом и не повезло.

Это было полезно?

Решение

В запросе json вы разместили, вы указываете « документы » (множественное число) в качестве коллекции / массива DOCUCALE объектов - который не является правильным. Каждый элемент Composite шаблона в пределах CompositeTemplates Array может содержать только для большинства, A Doto Document . Это означает, что синтаксис JSON для указания документа в композитный шаблон выглядит следующим образом:

"document": {
    "documentId": 1,
    "name": "test1.pdf"
}
.

I.e., Документ единственный, и это объект (не массив объектов). Полностью запрос Синтаксис запроса JSON «Составные шаблоны» отображается в ответе вашего предыдущего вопроса:

Как применить шаблон В документ с использованием Docusign REST API .

Re «Обновление» на ваш вопрос:

В порции JSON запроса, которую вы разместили в разделе «Обновление», я заметил, что вы включили DOCUCALE ВНУТРЕННУЮ ОТДЕЛЕНИЯ RECTIVES объект (который содержится В пределах InlineTemplates объект) - это не правильное место для document . Сравните свою структуру JSON тесно со следующей (правильной) структурой и соответствующим образом настройте ваш запрос. По сути, документ должен быть сверстником InlinEtemplates - не расположены внутри 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--
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top