取消先前使用DocuSign C#API发送的电子邮件

时间:2019-03-18 13:14:27

标签: c# docusignapi

正如标题所述,我正在使用DocuSign C#API,并且试图使已发送的信封无效,然后在其位置发送更新的信封。

这样一个例子: 我向客户发送了一个DocuSign信封

他们打开它以查看我做错了(或想要添加项目等)

他们要求新的报价

我触发重新发送(通过使用状态标志的后端数据库通过API)

它现在正在重新发送,但是上一个仍然处于“活动状态”,并且不会自动作废。

那么我将如何使用C#API来使它无效?

感谢您的帮助,如果您需要更多信息,请询问,我会尽快与您联系。

编辑-这是我当前拥有的当前代码

try
{
    envelopeGenerator = new EnvelopeDefinitionGenerator(quoteID, account_id);

    envDef = envelopeGenerator.GetDefinition();

    if (item.EQuoteStatus == 4)
    {
        envelope = envelopesApi.GetEnvelope(account_id, envelopeId);
        envelope.Status = "voided";
        envelope.VoidedReason = "This envelope was voided";
        envelope.PurgeState = null;

        updateSummary = envelopesApi.Update(account_id, envelopeSummary.EnvelopeId, envelope);

        envelopeInfo = JObject.FromObject(envDef);
        jsonString = JsonConvert.SerializeObject(envelopeInfo);

        //throw new Exception(); // DEBUG LINE, COMMENT OUT - TO TEST IF EXCEPTION CODE WORKS.

        envelopesApi = new EnvelopesApi(apiClient.Configuration);
        envelopeSummary = envelopesApi.CreateEnvelope(account_id, envDef);

        Console.WriteLine($"Quote {envelopeCounter} of {quotes.Count}. Envelope Summary: {envelopeSummary.Status}");
        Logger.Log.Info($"Quote {envelopeCounter} of {quotes.Count}. Envelope Summary: {envelopeSummary.Status}");

        successFlag = true;
    }

2 个答案:

答案 0 :(得分:0)

在使用UpdateEnvelope()方法来使信封无效时,请勿将先前信封的对象用作信封定义参数。而是创建一个新的空信封对象并使用它。

看起来您在第一部分中引用了envelope,然后从envelopeSummary.EnvelopeId获取了信封ID。您需要确认您拥有要清空的信封的正确ID。

尝试一下:

    Envelope nullEnvelope = new Envelope();
    nullEnvelope.Status = "voided";
    nullEnvelope.VoidedReason = "This envelope was voided";

    updateSummary = envelopesApi.Update(account_id, envelopeId, nullEnvelope);

答案 1 :(得分:0)

如果您只有一个签名者场景,并且签名者抱怨文档上有问题,那么我建议您使用Update document流来节省信封数并节省一些时间。如果工作流中没有收件人通过以下任何端点采取任何措施,则可以用信封更新文档,