Docusign Встроенная подпись

Мы используем docusign чтобы люди подписывали формы согласия, которые регистрируются на нашем веб-сайте, и мне указали на API встроенной подписи.

Из того, что я понял, я должен был создать конверт, который я сделал.

Я использую.Net примеры для этого.

Вход через API в порядке, но я получаю следующую ошибку при попытке вернуть URL из API:

ENVELOPE_IS_INCOMPLETE The Envelope is not Complete. A Complete Envelope Requires Documents, Recipients, Tabs, and a Subject Line.

Вот мой конверт Definition xml:

 string requestBody = "<envelopeDefinition xmlns=\"http://www.docusign.com/restapi\">" +
            "<accountId>" + accountId + "</accountId>" +
            "<status>sent</status>" +
            "<emailSubject>API Call for Embedded Sending</emailSubject>" +
            "<emailBlurb>This comes from C#</emailBlurb>" +
            "<templateId>[TEMPLATE ID FROM DOCUSIGN]</templateId>" +
            "<templateRoles>" +
            "<email>testregister@notrealurl.com</email>" +  // NOTE: Use different email address if username provided in non-email format!
            "<name>testregister@notrealurl.com</name>" + // username can be in email format or an actual ID string
            "<roleName>Signer</roleName>" +
            "</templateRoles>" +
            "</envelopeDefinition>";

Я видел другое сообщение о необходимости clientUserId здесь:

http://community.docusign.com/t5/DocuSign-API-Integration-NET/REST-API-net-Error-message-when-creating-the-envelope-from-a/m-p/18121

Но я не уверен, как реализовать в envelopeDefinition.

Пожалуйста помоги!

1 ответ

Решение

Чтобы использовать функцию встраивания, вам действительно нужно установить свойство clientUserId для каждого получателя, который будет обращаться к конверту с помощью URL-токена. Хитрость заключается в том, что когда вы создаете конверт, вам нужно установить свойство clientUserId для получателя, а затем, когда вы запрашиваете маркер URL, вам нужно включить его в запрос вместе с его адресом электронной почты, именем и receientId.

В Центре разработчика DocuSign есть целая страница, посвященная встраиванию, и в ней обсуждается использование свойства clientUserId. Пожалуйста, смотрите здесь:

http://www.docusign.com/developer-center/explore/features/embedding-docusign

Их API Walkthroughs также являются отличным ресурсом. У них есть код на 6 языках, показывающий, как выполнять обычные задачи DocuSign. Посмотрите на нижнюю тройку для встраивания функциональности:

http://iodocs.docusign.com/APIWalkthroughs

[Update] Хорошо, я смог воспроизвести вашу проблему и обновил суть, над которой вы работали. Это должно работать сейчас, если вы копируете как есть и вводите свои учетные данные, но в основном в теле запроса отсутствуют две части. Вот как это должно выглядеть, обратите внимание на дополнительный тег templateRole (единственное) и тег clientUserId:

string requestBody = "<envelopeDefinition xmlns=\"http://www.docusign.com/restapi\">" + 
                "<accountId>" + accountId + "</accountId>" + 
                    "<status>sent</status>" + 
                    "<emailSubject>API Call for Embedded Sending</emailSubject>" + 
                    "<emailBlurb>This comes from C#</emailBlurb>" + 
                    "<templateId>" + templateId + "</templateId>" + 
                    "<templateRoles>" + 
                    "<templateRole>" + 
                    "<email>" + username + "</email>" + // NOTE: Use different email address if username provided in non-email format!
                    "<name>Name</name>" +               // username can be in email format or an actual ID string
                    "<roleName>" + roleName + "</roleName>" +
                    "<clientUserId>1</clientUserId>" +
                    "</templateRole>" + 
                    "</templateRoles>" + 
                    "</envelopeDefinition>";
Другие вопросы по тегам