Могу ли я предварительно заполнить другие поля во встроенной форме docusign?

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

 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, Поле данных: Метка: Телефон

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

2 ответа

Решение

У меня есть некоторый код, который делает это, но он использует 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#? Дай мне знать.

Отказался из-за дублирующего вопроса, но вот как вы это сделаете:

"tabs": {
    "textTabs": [
    {
        "tabLabel": "Data Field 1",
        "value": "Initial data goes here...",
        "xPosition": "200",
        "yPosition": "200",
        "documentId": "1",
        "pageNumber": "1"
    }]
}
Другие вопросы по тегам