Docusignapi 如何对多个收件人使用同一模板?
我按照docusign开发中心上的“配方”从上传的pdf模板发送文档。它可以工作,但它是一个工作流,每个收件人都可以添加(和/或签名)同一个文档 我需要能够生成文件形成一个收件人列表相同的模板,并让他们都签署它。我认为最好的方法是以编程方式为每个收件人生成模板,使用我通过代码拉入的数据集填写他们的姓名和地址信息,然后发送给每个收件人签名。这是示例代码I treid,其中包含:Docusignapi 如何对多个收件人使用同一模板?,docusignapi,Docusignapi,我按照docusign开发中心上的“配方”从上传的pdf模板发送文档。它可以工作,但它是一个工作流,每个收件人都可以添加(和/或签名)同一个文档 我需要能够生成文件形成一个收件人列表相同的模板,并让他们都签署它。我认为最好的方法是以编程方式为每个收件人生成模板,使用我通过代码拉入的数据集填写他们的姓名和地址信息,然后发送给每个收件人签名。这是示例代码I treid,其中包含: string username = conf.ConfigurationManager.AppS
string username = conf.ConfigurationManager.AppSettings["username"];
string password = conf.ConfigurationManager.AppSettings["password"];
string integratorKey = conf.ConfigurationManager.AppSettings["integratorKey"];
// initialize client for desired environment (for production change to www)
ApiClient apiClient = new ApiClient("https://demo.docusign.net/restapi");
Configuration.Default.ApiClient = apiClient;
string username = conf.ConfigurationManager.AppSettings["username"];
string password = conf.ConfigurationManager.AppSettings["password"];
string integratorKey = conf.ConfigurationManager.AppSettings["integratorKey"];
// initialize client for desired environment (for production change to www)
ApiClient apiClient = new ApiClient("https://demo.docusign.net/restapi");
Configuration.Default.ApiClient = apiClient;
// configure 'X-DocuSign-Authentication' header
string authHeader = "{\"Username\":\"" + username + "\", \"Password\":\"" + password + "\", \"IntegratorKey\":\"" + integratorKey + "\"}";
Configuration.Default.AddDefaultHeader("X-DocuSign-Authentication", authHeader);
// we will retrieve this from the login API call
string accountId = null;
/////////////////////////////////////////////////////////////////
// STEP 1: LOGIN API
/////////////////////////////////////////////////////////////////
// login call is available in the authentication api
AuthenticationApi authApi = new AuthenticationApi();
LoginInformation loginInfo = authApi.Login();
// parse the first account ID that is returned (user might belong to multiple accounts)
accountId = loginInfo.LoginAccounts[0].AccountId;
var baseUrl = loginInfo.LoginAccounts[0].BaseUrl;
// Update ApiClient with the new base url from login call
apiClient = new ApiClient(loginInfo.LoginAccounts[0].BaseUrl);
EnvelopeDefinition envDef = new EnvelopeDefinition();
envDef.EmailSubject = "[TEMPLATE NAME]";
// provide a valid template ID from a template in your account
envDef.TemplateId = "[TEMPLATE ID]";
var rolesList = new List<TemplateRole>();
// assign recipient to template role by setting name, email, and role name. Note that the
// template role name must match the placeholder role name saved in your account template.
TemplateRole tRole = new TemplateRole();
tRole.Email = "XXX";
tRole.Name = "XXX";
tRole.RoleName = "Test Role";
rolesList.Add(tRole);
envDef.TemplateRoles = rolesList;
envDef.Status = "sent";
EnvelopesApi envelopesApi = new EnvelopesApi();
EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);
string username=conf.ConfigurationManager.AppSettings[“username”];
字符串password=conf.ConfigurationManager.AppSettings[“password”];
字符串integratorKey=conf.ConfigurationManager.AppSettings[“integratorKey”];
//为所需环境初始化客户端(用于将生产更改为www)
ApiClient ApiClient=新ApiClient(“https://demo.docusign.net/restapi");
Configuration.Default.ApiClient=ApiClient;
字符串username=conf.ConfigurationManager.AppSettings[“username”];
字符串password=conf.ConfigurationManager.AppSettings[“password”];
字符串integratorKey=conf.ConfigurationManager.AppSettings[“integratorKey”];
//为所需环境初始化客户端(用于将生产更改为www)
ApiClient ApiClient=新ApiClient(“https://demo.docusign.net/restapi");
Configuration.Default.ApiClient=ApiClient;
//配置“X-DocuSign-Authentication”标头
字符串authHeader=“{\'Username\':\”“+Username+“\”,\“Password\:\”“+Password+“\”,\“IntegratorKey\”:\”“+IntegratorKey+“\”}”;
Configuration.Default.AddDefaultHeader(“X-DocuSign-Authentication”,authHeader);
//我们将从登录API调用中检索它
字符串accountId=null;
/////////////////////////////////////////////////////////////////
//步骤1:登录API
/////////////////////////////////////////////////////////////////
//登录调用在身份验证api中可用
AuthenticationApi authApi=新的AuthenticationApi();
LoginInformation loginInfo=authApi.Login();
//分析返回的第一个帐户ID(用户可能属于多个帐户)
accountId=loginInfo.LoginAccounts[0]。accountId;
var baseUrl=loginInfo.LoginAccounts[0].baseUrl;
//从登录调用使用新的基本url更新ApiClient
apiClient=新的apiClient(loginInfo.LoginAccounts[0].BaseUrl);
EnvelopedDefinition envDef=新的EnvelopedDefinition();
envDef.EmailSubject=“[TEMPLATE NAME]”;
//从帐户中的模板提供有效的模板ID
envDef.TemplateId=“[TEMPLATE ID]”;
var rolesList=新列表();
//通过设置名称、电子邮件和角色名称,将收件人分配给模板角色。请注意
//模板角色名称必须与保存在帐户模板中的占位符角色名称匹配。
TemplateRole tRole=新的TemplateRole();
tRole.Email=“XXX”;
tRole.Name=“XXX”;
tRole.RoleName=“测试角色”;
角色列表。添加(tRole);
envDef.TemplateRoles=角色列表;
envDef.Status=“已发送”;
EnvelopesApi EnvelopesApi=新的EnvelopesApi();
EnvelopesSummary EnvelopesSummary=envelopesApi.CreateEnvelope(accountId,envDef);
起初,我尝试恢复TemplateRole(此处为“trole”),为每封邮件分配新的电子邮件附件,然后使用信封定义发送每封邮件,但这仍然是向每个收件人发送相同的共享文档
那么,如果我希望每个收件人都有自己的可签名文档,我是否必须为他们创建一个模板,或者是否有一种更实用的方法来实现这一点,而我却没有看到 我有点困惑,但这是我的2美分: 模板基本上是带有特定文档、收件人角色、选项卡和其他业务逻辑的预设信封。其思想是重用相同的“模板”生成尽可能多的信封 一个非常简单的用例可能是我的开源项目贡献者的NDA表单:我从NDA PDF文档中设置了一个模板,将文档上传到DocuSign,为几个贡献者信息(姓名、电子邮件、日期和签名)添加占位符选项卡,以及接收者角色的占位符(我可以称之为贡献者)。保存模板后,我可以从DocuSign帐户复制模板ID,并在SDK中使用它,如您所述,在循环中:
myRecipients.forEach(function(myRecipient) {
var rolesList = new List<TemplateRole>();
TemplateRole tRole = new TemplateRole();
tRole.Email = myRecipient.email;
tRole.Name = myRecipient.name;
tRole.RoleName = "Test Role";
rolesList.Add(tRole);
envDef.TemplateRoles = rolesList;
EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);
...
});
myRecipients.forEach(函数(myRecipient){
var rolesList=新列表();
TemplateRole tRole=新的TemplateRole();
tRole.Email=myRecipient.Email;
tRole.Name=myRecipient.Name;
tRole.RoleName=“测试角色”;
角色列表。添加(tRole);
envDef.TemplateRoles=角色列表;
EnvelopesSummary EnvelopesSummary=envelopesApi.CreateEnvelope(accountId,envDef);
...
});
myRecipients是什么类型的对象,它来自哪里?我希望能够有一个电子邮件地址和姓名列表,并能够生成一个pdf为每个人谁会得到一封电子邮件签署。我现在的做法似乎是在我设置的所有角色之间共享一个文档(“或enevlope”),以便他们可以呼叫签名。我需要每个人都能自己签名。MyRecipients是数据结构的一个示例,它应该包含收件人列表,你应该在某个地方有电子邮件/姓名列表,对吗?我们的想法就是循环浏览这个列表。请注意,我每次都有意将envDef.TemplatesRoles重置为一个新列表,以便它始终包含且仅包含一个收件人数据。不要向其中添加模板角色。您应该像我一样,在每次循环迭代时重置它。