2

使用 C# 中的 DocuSign API,我很容易就能通过测试信封。现在我正在使用下图在信封上进行测试。

文档流

我知道我必须TemplateRole为收件人分配一个,但是当我发送电子邮件时,事情就出错了。我假设通过定义多个角色,将设置签名顺序中的每个项目。无论出于何种原因,这种情况都没有发生,而是我收到了两份文件。根据我包含的 TemplateRoles,还将为发件人姓名/地址插入虚拟数据。我想防止这种情况发生。

EnvelopeDefinition envDef = new EnvelopeDefinition();
envDef.EmailSubject = "[DocuSign C# SDK] - Sample Signature Request";

envDef.TemplateId = TemplateID;

TemplateRole DirectorRole = new TemplateRole();
DirectorRole.Email = RecipientEmail;
DirectorRole.Name = RecipientName;
DirectorRole.RoleName = "Director";

TemplateRole TraineeRole = new TemplateRole();
TraineeRole.Email = RecipientEmail;
TraineeRole.Name = "A Trainee";
TraineeRole.RoleName = "Trainee";

List<TemplateRole> rolesList = new List<TemplateRole>() { DirectorRole, TraineeRole };
envDef.TemplateRoles = rolesList;

envDef.Status = "sent";
EnvelopesApi envelopesApi = new EnvelopesApi();
EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);

您可以看到我可以选择发送给批量收件人或个人。我想发送给其中一个或另一个。我该怎么做呢?这是我当前的代码。关于如何分配不同类型角色的一般示例将不胜感激,因为据我所知,那里没有很多 C# 示例代码。

4

2 回答 2

1

请展示您创建envDef对象的完整代码。你在设置模板ID吗?

每个对象RoleNameTemplateRole必须与模板中的角色名称完全匹配。

必须设置模板定义的每个角色。如果您决定从模板开始,然后对其进行修改以删除角色,我相信这是可能的,但您需要使用复合模板来完成。相反,我建议您考虑使用两个模板,一个具有两个角色,一个具有一个角色。

重新发送给批量收件人。我会作为一个单独的问题问这个问题。我建议你使用逐步细化。首先让您的信封使用角色替换。

然后转到发送由 CSV 文件控制的许多不同信封的不同问题(批量发送)。

于 2017-06-29T03:23:03.593 回答
1

您可以使用 DocuSign复合模板功能并从模板创建信封。这比使用TemplateRole更灵活。

请参阅此示例代码以从模板创建信封。它正在使用DocuSign C# SDK

      string accountId = Init();


        var envDef = new EnvelopeDefinition()
        {
            EmailSubject = "Envelope with multiple recipient roles",
            Status = "sent",
            CompositeTemplates = new List<CompositeTemplate>()
            {
                new CompositeTemplate()
                {
                    ServerTemplates = new List<ServerTemplate>()
                    {
                        new ServerTemplate()
                        {
                            TemplateId = "", //CreateTemplate()
                            Sequence = "1"
                        }
                    },
                    InlineTemplates = new List<InlineTemplate>()
                    {
                        new InlineTemplate()
                        {
                            Sequence = "1",
                            Recipients = new Recipients()
                            {
                                Signers = new List<Signer>()
                                {
                                    new Signer()
                                    {
                                        Email = "Janedoe@acme.com",
                                        Name = "Jane Doe",
                                        RecipientId = "1",
                                        RoleName = "Signer1",
                                    },
                                    new Signer()
                                    {
                                        Email = "Bobdoe@acme.com",
                                        Name = "Bob Doe",
                                        RecipientId = "2",
                                        RoleName = "Signer2",
                                    },
                                    new Signer()
                                    {
                                        Email = "DanDoe@acme.com",
                                        Name = "Dan Doe",
                                        RecipientId = "3",
                                        RoleName = "Signer3",
                                    }

                                }
                            }
                        }
                    }
                }
            }
        };


        EnvelopesApi envelopesApi = new EnvelopesApi();
        EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef);
于 2017-06-29T16:59:58.880 回答