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 здесь:
Но я не уверен, как реализовать в 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>";