【问题标题】:C# DocuSign API: How to prefill form field dataC# DocuSign API:如何预填充表单字段数据
【发布时间】:2019-11-12 02:36:28
【问题描述】:

我正在尝试找出一种通过docusign api在docusign表单中预先填写表单字段数据的方法。目前,我可以通过以下方式成功创建我的信封(没有预填充数据):

private EnvelopeDefinition CreateEvelope(ApplicationUser user)
{
    string recipientName = user.Name;
    string recipientEmail = user.Email;

    // file we want signed
    string templateId = "e19f3966-2c3e-4c47-a997-278e937dc85c";

    var envDef = new EnvelopeDefinition();
    envDef.TemplateId = templateId;
    envDef.EmailSubject = "Some Email Subject";

    //null reference exception - envDef.Recipients is null
    var texttabs = envDef.Recipients.Signers.First().Tabs.TextTabs;

    //student role
    TemplateRole trole1 = new TemplateRole();
    trole1.Email = recipientEmail;
    trole1.Name = recipientName;
    trole1.RoleName = "Taxpayer";
    trole1.ClientUserId = user.Id;

    List<TemplateRole> roleList = new List<TemplateRole>() { trole1 };

    envDef.TemplateRoles = roleList;
    envDef.Status = "sent";

    return envDef;
}

似乎通过 templateId,我应该能够实际检索和填写模板,但我还没有看到这样做的方法。如何填写表单字段数据?表单签名后,将返回到我们的 Connect 侦听器的选项卡/字段数据示例如下:

<Type>Signer</Type>
<Email>test-signer@test.com</Email>
<UserName>Some User</UserName>
<RoutingOrder>1</RoutingOrder>
<Sent>2019-11-10T17:57:21.853</Sent>
<Delivered>2019-11-10T17:57:40.443</Delivered>
<Signed>2019-11-10T17:58:35.367</Signed>
<DeclineReason xsi:nil="true" />
<Status>Completed</Status>
<RecipientIPAddress>72.213.98.254</RecipientIPAddress>
<ClientUserId>1000</ClientUserId>
<CustomFields />
<TabStatuses>
    <TabStatus>
        <TabType>FirstName</TabType>
        <Status>Signed</Status>
        <XPosition>96</XPosition>
        <YPosition>288</YPosition>
        <TabLabel>First Name</TabLabel>
        <TabName>First Name</TabName>
        <TabValue>Rick</TabValue>
        <DocumentID>1</DocumentID>
        <PageNumber>1</PageNumber>
    </TabStatus>
</TabStatuses>
<RecipientAttachment>
    <Attachment>
        <Data>IiPjx2YWx1ZT48L3ZhbHVlPjwvZmllbGQ+PG...</Data>
        <Label>DSXForm</Label>
    </Attachment>
</RecipientAttachment>
<AccountStatus>Active</AccountStatus>
<FormData>
    <xfdf>
        <fields>
            <field name="FirstName">
                <value>Rick</value>
            </field>
        </fields>
    </xfdf>
</FormData>

【问题讨论】:

    标签: c# asp.net asp.net-mvc docusignapi


    【解决方案1】:

    您的 TemplateRole 有 Tabs 对象,这是您添加新对象的方式。

    var tabs = new Tabs();
    var textTab1 = new Text();
    textTab1.Value = "test";
    tabs.TextTabs = new List<Text>();
    tabs.TextTabs.Add(textTab1);
    trole1.Tabs = tabs;
    

    如果你想使用现有的,你必须先通过获取模板json来读取模板的信息,这样你就拥有了它,然后使用tabLabel来匹配它们。

    【讨论】:

    • 如何/在哪里可以获得模板 json?
    • 你需要使用TemplatesApi并调用Get()方法指定templateID
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多