0

目前,我可以从带有 EventNotifications 信封的模板发送,如下所示:

            var envelopeDefinition = new EnvelopeDefinition();
            envelopeDefinition.Status = "sent";
            envelopeDefinition.TemplateId = templateId;
            envelopeDefinition.TemplateRoles = templateRoles;
            envelopeDefinition.EventNotification = new EventNotification
            {
                RequireAcknowledgment = "true",
                IncludeTimeZone = "true",
                Url = "https://localhost:44357/Agreements/UpdateStatus",
                RecipientEvents = new List<RecipientEvent>
                {
                    new RecipientEvent(RecipientEventStatusCode: "Sent"),
                    new RecipientEvent(RecipientEventStatusCode: "Delivered"),
                    new RecipientEvent(RecipientEventStatusCode: "Completed"),
                    new RecipientEvent(RecipientEventStatusCode: "Declined"),
                    new RecipientEvent(RecipientEventStatusCode: "AuthenticationFailed"),
                    new RecipientEvent(RecipientEventStatusCode: "AutoResponded")
                },
                EnvelopeEvents = new List<EnvelopeEvent>
                {
                    new EnvelopeEvent("Voided")
                }
            };

但是,当我尝试使用批量发送执行类似操作时,标题中出现错误:

            var signer1 = new TemplateRole();
            signer1.Email = "multiBulkRecipients-signer@docusign.com";
            signer1.Name = "Multi Bulk Recipient::signer";
            signer1.RoleName = "signer";
            signer1.Tabs = new Tabs
            {
                TextTabs = new List<Text>
                        {
                            new Text
                            {
                                TabLabel = "RetailerName",
                                Value = "Please Sign Here"  
                            }
                        }
            };

            var env = new EnvelopeDefinition();
            env.TemplateId = templateId;
            env.TemplateRoles = new List<TemplateRole> { signer1 };
            env.Status = "sent";
            env.EventNotification = new EventNotification
            {
                RequireAcknowledgment = "true",
                IncludeTimeZone = "true",
                Url = "https://localhost:44357/Agreements/UpdateStatus",
                RecipientEvents = new List<RecipientEvent>
                {
                    new RecipientEvent(RecipientEventStatusCode: "Sent"),
                    new RecipientEvent(RecipientEventStatusCode: "Delivered"),
                    new RecipientEvent(RecipientEventStatusCode: "Completed"),
                    new RecipientEvent(RecipientEventStatusCode: "Declined"),
                    new RecipientEvent(RecipientEventStatusCode: "AuthenticationFailed"),
                    new RecipientEvent(RecipientEventStatusCode: "AutoResponded")
                },
                EnvelopeEvents = new List<EnvelopeEvent>
                {
                    new EnvelopeEvent("Voided")
                }
            };
            var result = await envelopesApi.CreateEnvelopeAsync(_docuSignSettings.AccountId, env);

从模板批量发送的方法:

var bulkEnvelopesApi = new BulkEnvelopesApi(config);

var sendingList = MakeBulkSendList(retailersInfo);
var createBulkListResult = await bulkEnvelopesApi.CreateBulkSendListAsync(_docuSignSettings.AccountId, sendingList);

var envelopeId = await MakeBulkEnvelope(config, vm.TemplateId, createBulkListResult.ListId);

var bulkRequestResult = await bulkEnvelopesApi.CreateBulkSendRequestAsync(_docuSignSettings.AccountId, createBulkListResult.ListId, new BulkSendRequest { EnvelopeOrTemplateId = envelopeId });

var bulkStatus = await bulkEnvelopesApi.GetBulkSendBatchStatusAsync(_docuSignSettings.AccountId, bulkRequestResult.BatchId);

顺便说一句,如果我不包含 EventNotifications,我可以批量发送。

来自 GetBulkSendBatchStatusAsync 的错误图片:
https ://i.stack.imgur.com/dnL6x.png

批量发送是否需要不同的 URL(连接 webhook)?

谢谢阅读!

4

2 回答 2

0

您不能将localhost其用作 Webhook 目标 URL,因为该 URL 由 SAAS 服务 (DocuSign) 查找。对于 DocuSign,localhost 意味着它自己的服务器。

您的 webhook 侦听器(您的服务器)需要在公共互联网上可用。看看这篇博文

于 2021-12-22T19:58:25.460 回答
0

这个错误有点误导。在这种情况下,“内部 DocuSign”也意味着 localhost。 https://localhost:44357/Agreements/UpdateStatus不是 Connect webhook 的有效 URL。

您可能需要考虑使用云提供商作为一个简单的选择。

如果你只是想做一些测试,你可以使用 webhook.site 或类似的工具。

于 2021-12-22T04:15:58.187 回答