【问题标题】:Getting custom fields with Envelope results使用信封结果获取自定义字段
【发布时间】:2019-12-08 16:57:32
【问题描述】:

我正在尝试使用 DocuSign REST SDK(nuget 包),但无法获取随信封元数据返回的自定义字段。我尝试使用带有自定义字段的复合模板创建一个信封,作为内联模板和信封定义的一部分,只是为了看看我能得到什么:

CompositeTemplate composite = new CompositeTemplate();
            composite.Document = document;
            InlineTemplate inlineTemplate = new InlineTemplate();
            inlineTemplate.Sequence = "1";
            inlineTemplate.Recipients = new Recipients();
            inlineTemplate.Recipients.Signers = new List<Signer>();
            inlineTemplate.Recipients.Signers.Add(signer);

            inlineTemplate.CustomFields = new CustomFields(null, new List<TextCustomField>());
            TextCustomField iCF = new TextCustomField();
            iCF.Name = "InlineTemplateCustomField";
            iCF.Value = "202303";

            inlineTemplate.CustomFields.TextCustomFields.Add(iCF);

            ServerTemplate serverTemplate = new ServerTemplate("2", "8e556cd1-d343-4c07-9401-d88b00a67671"); //payment template id

            composite.InlineTemplates = new List<InlineTemplate>();
            composite.InlineTemplates.Add(inlineTemplate);
            composite.ServerTemplates = new List<ServerTemplate>();
            composite.ServerTemplates.Add(serverTemplate);

            EnvelopeDefinition envDef = new EnvelopeDefinition();
            envDef.CompositeTemplates = new List<CompositeTemplate>();
            envDef.CompositeTemplates.Add(composite);

            TextCustomField cf = new TextCustomField();
            cf.Name ="EnvelopeCustomField";
            cf.Value = "101202";

            envDef.CustomFields = new CustomFields(null, new List<TextCustomField>());
            envDef.CustomFields.TextCustomFields.Add(cf);

            ApiClient apiClient = new ApiClient(basePath);
            apiClient.Configuration.AddDefaultHeader("Authorization", "Bearer " + accessToken);
            EnvelopesApi envelopesApi = new EnvelopesApi(apiClient.Configuration);
            EnvelopeSummary results = envelopesApi.CreateEnvelope(accountId, envDef);

我可以使用 ListCustomFields 方法检索 InlineTemplateCustomField,但如果我使用“custom_fields”选项检索 Envelope 结果,Envelope 的自定义字段数组将为空。这是预期的吗?

CustomFieldsEnvelope customFieldsEnvelope = envelopesApi.ListCustomFields(accountId, "743e9d25-e093-43ec-acbd-5fbfce053e92");
EnvelopesApi.GetEnvelopeOptions options = new EnvelopesApi.GetEnvelopeOptions();
options.include = "custom_fields";
Envelope results = envelopesApi.GetEnvelope(accountId, "743e9d25-e093-43ec-acbd-5fbfce053e92", options);

如果可能,我希望在一次 API 调用中获取信封的状态和自定义字段,这就是为什么我希望在 GetEnvelope 调用中重新获取“EnvelopeCustomField”。

【问题讨论】:

    标签: docusignapi docusigncompositetmplts


    【解决方案1】:

    我建议您查看向您展示如何执行此操作的代码示例。 C# 代码可以在这里找到:

    https://github.com/docusign/eg-03-csharp-auth-code-grant-core/blob/master/eg-03-csharp-auth-code-grant-core/Controllers/Eg018EnvelopeCustomFieldDataController.cs

    相关代码行:

    EnvelopesApi envelopesApi = new EnvelopesApi(config);
    CustomFieldsEnvelope results = envelopesApi.ListCustomFields(accountId, envelopeId);
    

    【讨论】:

    • 您好 Inbar,感谢您的回复。我在发布的代码中使用 ListCustomFields 方法,但它只返回作为内联模板的一部分添加的自定义字段,而不是作为信封定义的一部分添加的自定义字段。我希望这些行能够将自定义字段添加到信封定义中
    • 这个文档让我相信我可以使用 EnvelopesApi.GetEnvelopeOptions 使 GetEnvelope 返回自定义字段:developers.docusign.com/esign-rest-api/reference/Envelopes/… 我在我发布的代码的最后 3 行中尝试过,但 results.CustomFields 为空我是否传入“选项”对象。
    • 您是在谈论帐户自定义字段吗?那是在帐户级别,如果您是这个意思,我可以向您展示获取这些的代码
    • 查看AccountsAPI.cs,它有一个获取自定义字段的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    相关资源
    最近更新 更多