c# - 如何将最终批准步骤添加到文档签名文档
问题描述
我正在使用 C# docusign.eSign 包。我有一个 word 文档,其中有一些锚文本供人们签署文档,这很好用,它在正确的位置添加了签名者。
我想添加一个最终批准者步骤。某个用户将在 docusign 中查看文档并批准它(可能是它的批准选项卡)。我们不希望文档上有额外的文本,但需要他们查看和批准它的日志,以及何时。
var recipients = new Recipients { Signers = new List<Signer>() };
int recipientIndex = 1;
for (int i = 0; i < request.Signers.Count; i++)
{
var signerDetails = request.Signers[i];
SignHere[] signHereTabs =
{
new SignHere
{
RecipientId = $"{recipientIndex}",
AnchorString = signerDetails.SignatureAnchorText,
AnchorXOffset = "0",
AnchorYOffset = "0.5",
AnchorIgnoreIfNotPresent = "true",
AnchorUnits = "inches"
}
};
var signer = new Signer
{
Email = signerDetails.EmailAddress,
Name = signerDetails.Name,
ClientUserId = GetClientId(signerDetails.Id),
RecipientId = $"{recipientIndex}",
Tabs = new Tabs { SignHereTabs = new List<SignHere>(signHereTabs), }
};
recipients.Signers.Add(signer);
recipientIndex++;
}
for (int i = 0; i < request.Approvers.Count; i++)
{
var appoverDetails = request.Approvers[i];
var approverHereTabs = new Approve[]
{
new Approve
{
RecipientId = $"{recipientIndex}",
XPosition = "2",
YPosition = "2",
}
};
var approver = new Signer
{
Email = appoverDetails.EmailAddress,
Name = appoverDetails.Name,
ClientUserId = GetClientId(appoverDetails.Id),
RecipientId = $"{recipientIndex}",
Tabs = new Tabs { ApproveTabs = new List<Approve>(approverHereTabs), }
};
recipients.Signers.Add(approver);
recipientIndex++;
}
var envelopeDefinition = new EnvelopeDefinition
{
EmailSubject = request.Title.ToTruncatedValue(100),
Documents = new List<Document> { doc },
Recipients = recipients,
Status = "sent"
};
我新建了一个 API 客户端实例
var apiClient = new ApiClient(
configuration.UseLiveSystem
? ApiClient.Production_REST_BasePath
: ApiClient.Demo_REST_BasePath);
从刷新令牌创建访问令牌。
var envelopesApi = new EnvelopesApi(apiClient);
EnvelopeSummary results = null;
try
{
results = await envelopesApi.CreateEnvelopeAsync(configuration.AccountId, envelopeDefinition);
}
catch (ApiException e)
{
if (e.Message.Contains("USER_DOES_NOT_BELONG_TO_SPECIFIED_ACCOUNT"))
{
throw new CodwellersException(
DocumentSigningServiceExceptionType.DocuSignPermissionNotGiven);
}
if (e.Message.Contains("USER_AUTHENTICATION_FAILED"))
{
throw new CodwellersException(
DocumentSigningServiceExceptionType.DocuSignFault);
}
throw;
}
我的猜测是在上面添加批准选项卡,并将 x 和 y 位置设置在文档的顶部。这似乎没有添加任何东西。
我找不到任何关于这些应该如何工作的文档。
解决方案
批准和签名在docusign中基本上是一回事。批准只是不会在页面上放置任何内容(仍然作为签名进入日志)。
问题原来是锚字符串周围必须有空格,我没有注意到它与其他文本对接,所以它没有找到要匹配的字符串。
推荐阅读
- c# - 如何在 IdentityServer 3 的 AllowedCustomGrantTypes 中指定用户定义的名称
- java - 如何使用kafka流处理块/批处理数据?
- mysql - 为什么从 MySQL 5.5 迁移到 5.7 拒绝连接?
- entity-framework - 将 EntityFramework 设置到另一个配置文件
- here-api - 在此处的流量响应中唯一标识 FI
- javascript - Javascript字符串验证问题
- bash - nvme 命令无法使用并出现错误:bash: nvme: command not found
- sql - 在 ms-sql 中设置 Epoch 时间戳
- android - 将 Mon Sep 17 05:52:14 EDT 2018 类型日期格式转换为简单的日期和时间 android
- perl - 在保持顺序的同时按值长度对哈希进行排序