2013-07-18 5 views
3

Я хотел бы заполнить несколько полей в документе Template, используемом со встроенной подписью. Я использую C#. Я добавил поля данных через мастер шаблонов DocuSign и хотел бы знать, как я могу заполнить поле данных из моего встроенного кода подписи в c-sharp? В моем случае я добавил в шаблон поле «Дата рождения и телефонные данные» и хочу передать значения в моем XML, когда вы тянете документ для подписания. Вот что у меня есть:Могу ли я заполнить другие поля на встроенной форме docusign?

string requestBody = "<envelopeDefinition xmlns=\"http://www.docusign.com/restapi\">" + 
      "<accountId>" + accountId + "</accountId>" + 
      "<status>sent</status>" + 
      "<emailSubject>Electronic Release of Information</emailSubject>" + 
      "<emailBlurb>Please sign the release of information form</emailBlurb>" + 
      "<templateId>" + System.Configuration.ConfigurationManager.AppSettings.Get("DocusignTempId") + "</templateId>" + 
      "<templateRoles>" + 
      "<templateRole>" + 
      "<email>" + pUserEmail + "</email>" + // NOTE: Use different email address if username provided in non-email format! 
      "<name>" + pUserName + "</name>" + // username can be in email format or an actual ID string 
      "<tabs>" + 
      "<textTabs>" + 
      "<textTab>" + 
      "<tabLabel>DOB</tabLabel>" + 
      "<value>" + pDOB + "</value>" + 
      "</textTab>" + 
      "<textTab>" + 
      "<tabLabel>Telephone</tabLabel>" + 
      "<value>" + pTelephone + "</value>" + 
      "</textTab>" + 
      "</textTabs>" + 
      "</tabs>" + 
      "<roleName>Signer</roleName>" + 
      "<clientUserId>1</clientUserId>" + 
      "</templateRole>" + 
      "</templateRoles>" + 
      "</envelopeDefinition>"; 

На демо-сайте я создал 2 полей данных о шаблоне: Поле данных: Метка: DOB, Поле данных: Label: Телефон

нужно знать, что я делать неправильно. Часть подписи и все остальное работает нормально.

+0

[Повторяющийся вопрос] (http://stackoverflow.com/questions/17418066/how-do-i-pre-populate-the-values-of-docusign-tabs) Это уже ответило - в вашем теле запроса вы заполняете вкладки, указав тот же *** tabLabel ***, который вы установили в своем шаблоне, и установите его значение через значение *** ***. свойство – Ergin

ответ

0

У меня есть некоторый код, который делает это, но он использует JSON (не XML). Вот оно:

 // 
     // DocuSign Step 1. Login 
     // 
     , function(next) { 
      var options = { 
       "method": "GET" 
       , "headers": { 
        "X-DocuSign-Authentication": dsAuthHeader 
        , "content-type": "application/json" 
        , "accept": "application/json" 
       } 
       , "uri": "https://demo.docusign.net/restapi/v2/login_information" 
      }; 

      request(options, function(err, res, body) { 
       console.log("Login Result: \r\n", JSON.parse(body)) 
       baseUrl = JSON.parse(body).loginAccounts[0].baseUrl; 

       next(null); 
      }); 

     } 

     // 
     // DocuSign Step 2. Request Signature From Template 
     // 
     , function(next) { 
     var uri = baseUrl + "/envelopes" 
      , options = { 
       "method": "POST" 
       , "headers": { 
        "X-DocuSign-Authentication": dsAuthHeader 
        , "content-type": "application/json" 
        , "accept": "application/json" 
       } 
       , "uri": uri 
       , "body" : JSON.stringify({ 
        "emailSubject": "Patient Intake form from Human API" 
        , "templateId": templateId 
        , "templateRoles": [{ 
         "email": humanEmail 
         , "name": humanName 
         , "roleName": templateRoleName 
         , "clientUserId": 1 
         , "tabs" : { 
          "textTabs" : [{ 
           tabLabel : "Email Address", 
           value : humanEmail 
           } 
           , { 
            tabLabel : "Name", 
            value : humanName 
           } 
           , { 
            tabLabel : "Height", 
            value : height 
           } 
           , { 
            tabLabel : "Weight", 
            value : weight 
           } 
           ,{ 
            tabLabel : "Address 1", 
            value : '1212 Victoria Lane' 
           } 
           ,{ 
            tabLabel : "Address 2", 
            value : 'San Francisco, CA, 94109' 
           } 

          ] 
         } 
        }] 
        ,"status": "sent" 
       }) 
      }; 

     request(options, function(err, res, body) { 
      console.log("Request Envelope Result: \r\n", JSON.parse(body)); 
      next(null, body); 
     }) 
    } 

     // 
     // DocuSign Step 3. Get Send View 
     // 
     , function(body, next) { 
     var envelopeUri = JSON.parse(body).uri 
      , options = { 
       "method": "POST" 
       , "headers": { 
        "X-DocuSign-Authentication": dsAuthHeader 
        , "content-type": "application/json" 
        , "accept": "application/json" 
       } 
       , "uri": baseUrl + envelopeUri + "/views/recipient" 
       , "body": JSON.stringify({ 
        "authenticationMethod": "email", 
        "email": humanEmail, 
        "returnUrl": "http://humanapi.co/", 
        "userName": humanName, 
        "clientUserId": "1" 
       }) 
      }; 

     request(options, function(err, res, body) { 
      console.log("Get Embedded View: \r\n", JSON.parse(body)); 
      response.render('docusign', { signing_url: JSON.parse(body).url }); 
     }); 
    } 

Я знаю, что это не совсем то, что вы ищете (C# + XML), но, возможно, вы можете захватить этот JSON и просто положить его в запросах на C#? Дай мне знать.

+0

Спасибо. Я думаю, что теперь у меня есть правильный код, основанный на моем выше XML, но он все еще не является предварительным заполнением. Я предполагаю, что это может иметь какое-то отношение к моему шаблону и полям данных, которые я создаю. Я смотрю, могу ли я найти дополнительную документацию по созданию шаблона и созданию полей данных. Еще раз спасибо. – newm0528

+0

Я нашел другой пост примерно в то же время с тем, что походит на одну и ту же проблему, возможно, на http://stackoverflow.com/questions/17600349/how-to-pre-fill-tabs-on-a-server-template-with-the- docusign-api. e попытался изменить поля шаблона для предварительной заливки, но независимо от того, что я пытаюсь, эти поля не заполняются. Подписание и все остальное отлично работает. Я не знаю, есть ли в любом случае вы можете посмотреть мой шаблон на демонстрационном сайте. Если есть, это может помочь. – newm0528

+0

Вы пробовали просто использовать JSON и посмотреть, помогает ли это? – mikebz

0

вниз проголосовали из-за продублировать вопрос, но это, как вы могли бы сделать это:

"tabs": { 
    "textTabs": [ 
    { 
     "tabLabel": "Data Field 1", 
     "value": "Initial data goes here...", 
     "xPosition": "200", 
     "yPosition": "200", 
     "documentId": "1", 
     "pageNumber": "1" 
    }] 
} 
+0

Это не было полностью ответственно. Я использую код C# с XML. Где я могу поместить это в формат XML? – newm0528

+0

Что вы подразумеваете под «где вы можете положить xml»? Он находится в теле вашего запроса. Пожалуйста, исследуйте, прежде чем задавать эти вопросы, на все это легко ответить, если вы просмотрите [Центр поиска DocuSign] (http://www.docusign.com/developer-center). Если вы пройдете туда, вы найдете пошаговые руководства API, которые имеют именно то, что вы ищете (например, встроенный пример подписи на C#, который использует тело запроса XML вместо JSON – Ergin

+2

Изменен мой вопрос. Не все ответило в вашем разработчике сайт. Ваше прохождение API не содержит ответов на предварительную заполнение. Я нашел старое сообщение, которое помогло, но оно не работает. – newm0528

Смежные вопросы