使用DocuSign API代签时如何指定签署人使用预设签名与印章?
解决DocuSign C# SDK指定签署人使用预设签名/印章的问题
要让签署人在签署时使用其账户中预设的特定签名或印章,核心是通过指定签名的唯一ID绑定到签名标签上,具体步骤如下:
1. 获取签署人账户中的签名/印章ID
首先调用DocuSign API获取目标签署人账户内的所有签名(包括印章)列表,从中提取你需要指定的签名对应的signatureId。使用C# SDK的UsersApi可实现这一点:
// 初始化UsersApi var usersApi = new UsersApi(apiClient); // 获取用户的签名列表,userId为签署人的DocuSign账户ID var signatures = usersApi.ListSignatures(accountId, userId); // 遍历列表找到目标签名(可通过name字段匹配) var targetSignature = signatures.FirstOrDefault(s => s.Name == "预设签名名称"); string targetSignatureId = targetSignature?.SignatureId;
2. 在SignHere标签中指定SignatureId
修改原有代码,在创建SignHere对象时添加SignatureId属性,设置为上面获取到的目标签名ID:
Signer signer1 = new Signer { Email = signerEmail, Name = signerName, ClientUserId = "1000", RecipientId = "1" }; Tabs signerTabs = new Tabs { SignHereTabs = new List<SignHere>() }; SignHere signHereTab = new SignHere { XPosition = signXPosition.ToString(), YPosition = signYposition.ToString(), DocumentId = reportInfo.ID.ToString(), PageNumber = signPageIndex.ToString(), // 指定预设签名的ID SignatureId = targetSignatureId }; signerTabs.SignHereTabs.Add(signHereTab); signer1.Tabs = signerTabs;
说明
- 印章的处理逻辑和签名完全一致,因为在DocuSign中,印章也属于签名资源的一种,同样拥有唯一的
signatureId,只需在获取列表时匹配印章的名称即可。 - 若未指定
SignatureId,DocuSign会默认使用签署人最近一次使用的签名,这就是你之前看到签名不一致的原因。
内容的提问来源于stack exchange,提问作者Manal Goyal
相关产品推荐
相关产品推荐

