You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#调用API发送含Pre-Filled/Sender标签的模板时预填值、签名区异常

解决方案

问题1:预填充标签内容未写入的修复

错误原因

Sender/Pre-Filled标签属于发件人预填充字段,不归属任何签署者角色,你将PrefillTabs放在了签署人角色(TemplateRole)的Tabs下,绑定位置错误导致填充失效。

修复要点

  • 预填充标签需要配置在信封级的文档标签中,建议通过CompositeTemplates结构关联模板时注入,是官方推荐的标准实现方式
  • 确认TabLabel的值与模板中预填充标签的标签名称完全匹配,大小写、特殊字符均不能有差异
  • 确认DocumentId与模板中对应文档的ID一致,单文档模板默认值为1,多文档场景需要逐一对应

问题2:SignHere签名字段不可见的修复

修复要点

  • 修正TemplateRole的Name字段赋值错误:你当前代码中将Name设置为了signer.Email,该字段应填写签署人的真实姓名
  • 确认TemplateRole的RoleName参数值与模板中配置的签署者角色名称完全一致,大小写、空格都需要严格匹配
  • 确认模板中的SignHere字段已分配给对应RoleName的签署角色,未分配或分配错角色会导致字段无法绑定到当前签署人,自然不可见
  • 检查模板中SignHere字段的配置,确认未设置隐藏、条件显示等特殊规则

修正后代码示例

var env = new EnvelopeDefinition { Status = "sent" };

// 用复合模板结构关联现有模板,同时注入预填充字段和签署人配置
var compositeTemplate = new CompositeTemplate
{
    CompositeTemplateId = "1",
    ServerTemplates = new List<ServerTemplate>
    {
        new ServerTemplate
        {
            TemplateId = templateId,
            Sequence = "1"
        }
    },
    InlineTemplates = new List<InlineTemplate>
    {
        new InlineTemplate
        {
            Sequence = "2",
            // 预填充字段配置在文档级Tabs下
            Documents = new List<Document>
            {
                new Document
                {
                    DocumentId = "1",
                    Tabs = new Tabs
                    {
                        PrefillTabs = new PrefillTabs
                        {
                            TextTabs = new List<Text>
                            {
                                new Text
                                {
                                    DocumentId = "1",
                                    TabLabel = "business-details.BusinessInformation.BusinessName",
                                    Value = "PreFill: BusinessName"
                                }
                            }
                        }
                    }
                }
            },
            // 配置签署人信息
            Recipients = new Recipients
            {
                Signers = new List<Signer>
                {
                    new Signer
                    {
                        Email = signer.Email,
                        Name = signer.FullName, // 替换为签署人真实姓名
                        RoleName = templateRoleName,
                        RecipientId = "1"
                        // 签署人专属的可编辑字段可放在此处的Tabs属性下,不要放PrefillTabs
                    }
                }
            }
        }
    }
};

env.CompositeTemplates = new List<CompositeTemplate> { compositeTemplate };

// 发送信封
await envelopesApi.CreateEnvelopeAsync(accountId, env);

内容的提问来源于stack exchange,提问作者Zeeshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:24:07