我正在使用 Docusign C# SDK 创建和发送信封。在创建时,我想添加一个“信封附件”以包含一些有关信封的内部元数据。 (我想稍后在通过 Docusign Connect webhook 收到信封完成通知后使用它)。
问题在于文档对于执行此操作所需的内容含糊其辞。我有一个带有信封定义的
envelopeDefintion
对象,并且正在执行以下操作来添加附件:
envelopeDefinition.EnvelopeAttachments =
[
new Attachment(AttachmentId: "1", Label: "Test Label", Name: "Test Name", AttachmentType: ".txt", Data: testDocumentAsBase64String),
];
信封已按预期创建,但未创建附件。该文档没有说明大多数字段可接受哪些值,因此我尝试了各种组合,但没有成功。有什么想法为什么这行不通吗?正在创建初始状态为“已发送”的信封。
我读到过一些关于此内容在草稿或正在进行中的内容,但我认为“已发送”将被视为正在进行中。还是我需要用附件创建一个草稿,然后单独发送?
需要明确的是,由于其他类似的帖子似乎使签名者和信封附件混淆,我知道这些类型的附件只能通过 API 获得。创建信封后,查询 API 中的信封附件会返回一个空数据集,这就是我验证是否未创建附件的方式。
如果您想要纯元数据,您应该使用自定义字段。 附件是收件人可见的文档,是信封的一部分。这意味着它们将成为最终签名 PDF 的一部分,不确定这是否是您想要的。 自定义字段是名称/值字符串的集合,您可以将其添加到信封中以获取任何类型的元数据。
也可以从 UI 添加信封自定义字段 - https://support.docusign.com/s/document-item?bundleId=gbo1643332197980&topicId=ywu1578456351241.html&_LANG=enus&language=en_US&rsc_301=
或者从 API 使用如下代码:
带有分步说明的代码示例 - https://developers.docusign.com/docs/esign-rest-api/how-to/get-envelope-custom-tab-values/
C# 代码片段:
envelopeDefinition.CustomFields = new CustomFields();
envelopeDefinition.CustomFields.TextCustomFields = new List<TextCustomField>();
var customField = new TextCustomField();
customField.Name = "my custom field";
customField.Value = "The value of that field";
envelopeDefinition.CustomFields.TextCustomFields.Add(customField);