DocuSign C# API(创建标签)

DocuSign C# API (Create Tabs)

我正在尝试在使用嵌入式发送时更新选项卡 API。

SignHere signHere = new SignHere();
signHere.AnchorString = "Approved by  :";
signHere.AnchorXOffset = "0";
signHere.AnchorYOffset = "-50";

signer.Tabs = new Tabs();
signer.Tabs.SignHereTabs = new List<SignHere>();
signer.Tabs.SignHereTabs.Add(signHere);
envelopesApi.CreateTabs(accountId, envelopeId, "1", signer.Tabs);

代码运行良好,没有错误,但选项卡没有出现在嵌入式发送界面中。我该如何解决?

可能锚字符串不匹配。我建议使用没有空格或特殊字符的简单锚字符串。

例如,尝试

signHere.AnchorString = "Approved";

如果您有权访问源文档,更好的解决方案是向文档添​​加一个小型 DSL,例如 approval_signer

将该字符串放在您希望签名者选项卡出现的位置。将字符串的文本颜色标记为白色,使其不可见。

经过进一步调查,我发现上面的问题不在于标签。

和上面一样的方法,我对文档进行了更新:

Document doc = new Document();
doc.DocumentBase64 = System.Convert.ToBase64String(fileBytes);
doc.Name = docName;
doc.FileExtension = docExtension;
doc.DocumentId = "1";

EnvelopeDefinition envDef = new EnvelopeDefinition();
envDef.Documents = new List<Document>();
envDef.Documents.Add(doc);

envelopesApi.UpdateDocuments(accountId, envelopeId, envDef);

我相信问题中提到的标记随后被标记到原始文档而不是更新后的文档上。

要解决此问题,请在更新之前删除文档:

Document doc = new Document();
doc.DocumentBase64 = System.Convert.ToBase64String(fileBytes);
doc.Name = docName;
doc.FileExtension = docExtension;
doc.DocumentId = "1";

EnvelopeDefinition envDef = new EnvelopeDefinition();
envDef.Documents = new List<Document>();
envDef.Documents.Add(doc);

envelopesApi.DeleteDocuments(accountId, envelopeId, envDef);
envelopesApi.UpdateDocuments(accountId, envelopeId, envDef);