Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 将文档插入模板时签名消失_Templates_Docusignapi_Document_Signature - Fatal编程技术网

Templates 将文档插入模板时签名消失

Templates 将文档插入模板时签名消失,templates,docusignapi,document,signature,Templates,Docusignapi,Document,Signature,我正在尝试将word文档插入Docusign模板。文档正确插入,但除了在代码中设置的两个签名者之外,模板上的一个签名者仍然保留。此外,第二个签名字段也被删除。有没有我错过的场景?这是我的密码: List<TemplateRole> roleslist = new List<TemplateRole>(); TemplateRole InternalSignerRole = new TemplateRole();

我正在尝试将word文档插入Docusign模板。文档正确插入,但除了在代码中设置的两个签名者之外,模板上的一个签名者仍然保留。此外,第二个签名字段也被删除。有没有我错过的场景?这是我的密码:

             List<TemplateRole> roleslist = new List<TemplateRole>();

            TemplateRole InternalSignerRole = new TemplateRole();                                         // Set the Template Roles for the Internal Signer
            InternalSignerRole.Email = _currentDocInfo.sInternalSignerEmail;
            InternalSignerRole.Name = _currentDocInfo.sInternalSignerName;
            InternalSignerRole.RoleName = "SignerInternal";

            roleslist.Add(InternalSignerRole);                                                            // add to Template Roles list

            TemplateRole ExternalSignerRole = new TemplateRole();                                         // Set the Template Roles for the External Signer
            ExternalSignerRole.Email = _currentDocInfo.sExternalSignerEmail;                              //Create Template Roles for ExternalSigner
            ExternalSignerRole.Name = _currentDocInfo.sExternalSignerEmail;
            ExternalSignerRole.RoleName = "SignerExternal";

            roleslist.Add(ExternalSignerRole);        

            var apiClient = new ApiClient(conn.Base_URL);
            DocuSign.eSign.Client.Configuration.Default.ApiClient = apiClient;

            DocuSign.eSign.Client.Configuration.Default.AddDefaultHeader("X-DocuSign-Authentication", authHeader);

            string accountId = null;

            // login call is available in the authentication api 
            var authApi = new AuthenticationApi();
            var 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;
            var separator = new string[] { "/restapi" };
            var basePath = baseUrl.Split(separator, StringSplitOptions.None)[0] + "/restapi";
            apiClient = new ApiClient(basePath);

            EnvelopeDefinition envDef = new EnvelopeDefinition();
            envDef.EmailSubject = emailSubject;
            envDef.EmailBlurb = emailBody;

            //add custom fields you sent over with the document
            envDef.CustomFields = letterCustomFields;
            // Add a document to the envelope
            envDef.Documents = letterDocs;

            // Add a recipient to sign the document
            envDef.TemplateRoles = roleslist;
            envDef.TemplateId = "478d85c2-dc7c-4a89-a985-7d7a9101e36a";
列表角色列表=新列表();
TemplateRole InternalSignerRole=新TemplateRole();//设置内部签名者的模板角色
InternalSignerRole.Email=\u currentDocInfo.sinternalSignerMail;
InternalSignerRole.Name=\u currentDocInfo.sInternalSignerName;
InternalSignerRole.RoleName=“SignerInternal”;
角色列表。添加(InternalSignerRole);//添加到模板角色列表
TemplateRole ExternalSignerRole=新TemplateRole();//设置外部签名者的模板角色
ExternalSignerRole.Email=\u currentDocInfo.SexternalSignerMail//为ExternalSigner创建模板角色
ExternalSignerRole.Name=\u currentDocInfo.sexternalSignerMail;
ExternalSignerRole.RoleName=“SignerExternal”;
角色列表。添加(外部签名者);
var apiClient=新的apiClient(conn.Base\u URL);
DocuSign.eSign.Client.Configuration.Default.ApiClient=ApiClient;
DocuSign.eSign.Client.Configuration.Default.AddDefaultHeader(“X-DocuSign-Authentication”,authHeader);
字符串accountId=null;
//登录调用在身份验证api中可用
var authApi=newauthenticationapi();
var loginInfo=authApi.Login();
//分析返回的第一个帐户ID(用户可能属于多个帐户)
accountId=loginInfo.LoginAccounts[0]。accountId;
var baseUrl=loginInfo.LoginAccounts[0].baseUrl;
变量分隔符=新字符串[]{“/restapi”};
var basePath=baseUrl.Split(分隔符,StringSplitOptions.None)[0]+“/restapi”;
apiClient=新的apiClient(basePath);
EnvelopedDefinition envDef=新的EnvelopedDefinition();
envDef.EmailSubject=EmailSubject;
envDef.EmailBlurb=emailBody;
//添加随文档一起发送的自定义字段
envDef.CustomFields=letterCustomFields;
//将文档添加到信封中
envDef.Documents=letterDocs;
//添加收件人以签署文档
envDef.TemplateRoles=角色列表;
envDef.TemplateId=“478d85c2-dc7c-4a89-a985-7d7a9101e36a”;

首先,请不要使用传统身份验证。这是旧的,不安全,不应该在您正在构建的新代码中使用。 请注意,选项卡(签名元素)既与收件人(特定的收件人)关联,也与文档(特定的收件人)关联。 如果您试图替换模板中的文档,则在使用它创建信封时(您所做的不是替换模板中的文档,而是替换创建的信封中的文档),您需要确保选项卡引用相同的文档和相同的收件人(基于角色)。
另外,另一个建议是使用复合模板,这为此类场景提供了更大的灵活性。有关更多信息,请参阅。

我在这里没有看到documentId,它是否匹配?此外,角色名和名称是否与模板上的内容完全匹配?documentId和recipientId必须与使用旧/旧身份验证标头的模板中tabs对象上的内容相匹配。请考虑搬到OAuth.我强烈推荐这个,我使用的documentID是1。这是我忘记包含的代码部分;'letter.FileExtension=System.IO.Path.GetExtension(\u currentDocInfo.lsCompletedFile);letter.DocumentId=“1”;docsToSend.Add(信函);letterCompTemplate.Document=字母;'“1”是这些消失的签名的documentId引用吗?嗯,该文档出现并替换了模板上存在的文档。我放在那里的文档与模板上Docusign中设置的锚定标记使用的文本相同。是否需要在我设置的TemplateRoles中引用该文档?