简体   繁体   中英

To set document visibility for multiple recipient with multiple document via docusign API

I am trying to implement the document visibility of docuSign.suppose i have two document(Document A and Document B) and I have two CC person (Person A and Person B) and i am trying to hide the document from CC person (who receive a copy of document). Document B from Person A and Document A from Person B. but when i try this from DocuSign portal it is working fine but when i implement the code for this then the visibility setting of document is not working.


public void docusign(string path, string recipientName, string recipientEmail, string EnvelopeId)

              {
            ApiClient apiClient = new ApiClient("https://demo.docusign.net/restapi");
            Configuration.Default.ApiClient = apiClient;

            //Verify Account Details
            string accountId = loginApi(credential.UserName, credential.Password);

            // Read a file from disk to use as a document.
            byte[] fileBytes = System.IO.File.ReadAllBytes(path);
            byte[] fileBytes1 = System.IO.File.ReadAllBytes(@"Path");


            EnvelopeDefinition envDef = new EnvelopeDefinition();
            envDef.EmailSubject = "Please sign this doc";


    //Here i am adding the document
          Document doc = new Document();
            doc.DocumentBase64 = System.Convert.ToBase64String(fileBytes);
            doc.Name = Path.GetFileName(path);
            doc.DocumentId = "1";
            doc.TransformPdfFields = "true";

            Document doc1 = new Document();
            doc1.DocumentBase64 = System.Convert.ToBase64String(fileBytes1);
            doc1.Name = "Test 2-converted -converted.pdf";// Path.GetFileName(path);
            doc1.DocumentId = "2";

    //Adding CC person
        List<CarbonCopy> oo = new List<CarbonCopy>();
            oo.Add(new CarbonCopy
            {
                RecipientId = "1",
                RoutingOrder = "1",
                Name = "darpan",
                Email = "xyz1@gmail.com",

                DocumentVisibility = new List<DocumentVisibility>() { new DocumentVisibility { Visible = "false", DocumentId = "2", RecipientId = "1" } },
            });

            oo.Add(new CarbonCopy
            {
                RecipientId = "2",
                RoutingOrder = "2",
                Name = "mohini",
                Email = "xyz2@gmail.com",

               DocumentVisibility= new List<DocumentVisibility>() { new DocumentVisibility { Visible = "false", DocumentId = "1", RecipientId = "2" } },

            });
        envDef.Recipients = new DocuSign.eSign.Model.Recipients();
            envDef.Recipients.CarbonCopies = oo;
        envDef.Status = "Sent";
            // |EnvelopesApi| contains methods related to creating and sending Envelopes (aka signature requests)
            EnvelopesApi envelopesApi = new EnvelopesApi();
            EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);


您需要将此添加到您的代码中:

envDef.EnforceSignerVisibilty = "true";

I found the issue. It because I am not listing all document in document visibility list. Like I have two document in envelop and while adding document visibility list. I am only adding document that need visibility to false. Document visibility list should have all the document in list with visibility setting.

What I am doing

DocumentVisibility = new List<DocumentVisibility>() { new DocumentVisibility { Visible = "false", DocumentId = "2", RecipientId = "1"}}

Correct way is

DocumentVisibility = new List<DocumentVisibility>() { new DocumentVisibility { Visible = "false", DocumentId = "2", RecipientId = "1" },new DocumentVisibility { Visible = "true", DocumentId = "1", RecipientId = "1" }}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM