C#DocuSign API:如何预填充表单字段数据

我正在尝试找到一种通过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>
tkhxq 回答:C#DocuSign API:如何预填充表单字段数据

您的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对其进行匹配。

本文链接:https://www.f2er.com/3122183.html

大家都在问