/** * 用户通过配置好的业务分类进行合同发起 * 需在业务分类里配置好将要发起的合同文件或合同模板 * 配置好整个签署流程,以及签署流程中使用的印章 * **/ private SdkResponse <Contract> DraftByCategory(SDKClient client) { Contract draftContract = new Contract(); draftContract.Subject = "合同主体"; // 设置合同名称 draftContract.Category = new Category("2584280095237849689"); //设置将要使用的业务分类配置 draftContract.AddTemplateParam(new TemplateParam("接收方2", "发起方填参")); //若业务分类配置了参数模板,进行发起方填参 draftContract.AddTemplateParam(new TemplateParam("接收方1", "发起方填参2")); draftContract.AddTemplateParam(new TemplateParam("接收方3", "发起方填参2")); draftContract.AddTemplateParam(new TemplateParam("接收方4", "发起方填参2")); draftContract.AddTemplateParam(new TemplateParam("接收方5", "发起方填参2")); draftContract.AddTemplateParam(new TemplateParam("接收方6", "发起方填参2")); draftContract.AddTemplateParam(new TemplateParam("接收方7", "发起方填参2")); draftContract.AddTemplateParam(new TemplateParam("接收方8", "发起方填参2")); draftContract.AddTemplateParam(new TemplateParam("接收方9", "发起方填参2")); draftContract.AddTemplateParam(new TemplateParam("接收方10", "发起方填参2")); draftContract.AddTemplateParam(new TemplateParam("接收方11", "发起方填参2")); draftContract.AddTemplateParam(new TemplateParam("接收方12", "发起方填参2")); //设置 合同接收方,该设置的合同接收方需要与业务分类配置的接收方流程一致 Signatory companySignatory = new Signatory("COMPANY", new User("17621699044", "MOBILE"), 1); companySignatory.TenantName = "大头橙橙汁公司"; draftContract.AddSignatory(companySignatory); Signatory personalSignatory = new Signatory("PERSONAL", new User("15021504325", "MOBILE"), 2); personalSignatory.TenantName = "邓茜茜"; draftContract.AddSignatory(personalSignatory); draftContract.Send = true; //设置发起默认发起,业务分类中必须要有可用的签署文件 string response = null; try { response = client.Service(new ContractDraftRequest(draftContract)); } catch (Exception e) { throw new Exception("创建合同草稿请求服务器失败,错误原因:" + e.Message); } SdkResponse <Contract> sdkResponse = HttpJsonConvert.DeserializeResponse <Contract>(response); if (!sdkResponse.Code.Equals(0)) { throw new Exception("创建合同草稿失败,失败原因:" + sdkResponse.Message); } return(sdkResponse); }