【问题标题】:#APIDocusign 400 Bad request on Production while working fine locally#APIDocusign 400 在本地正常工作时对生产提出错误请求
【发布时间】:2018-10-23 08:22:06
【问题描述】:

我正在以 xml 格式进行 API 调用。使用 url 作为http://www.docusign.net/restapi/v2/login_information 和生产凭据详细信息,我正在检索 accountID 和 Baseurl 然后我尝试以 xml 格式请求信封结果,如下所示

字符串 requestBody = "http://www.docusign.com/restapi\">" +

            "<accountId>" + accountId + "</accountId>" +

                    "<status>sent</status>" +

                    "<emailSubject>API Call for Embedded Sending</emailSubject>" +

                    "<emailBlurb>This comes from C#</emailBlurb>" +

                    "<templateId>" + templateId + "</templateId>" +

                    "<templateRoles>" +

                    "<templateRole>" +

                    "<email>" + username + "</email>" + // NOTE: Use different email address if username provided in non-email format!

                       "<name>Name</name>" +         // username can be in email format or an actual ID string

                    "<roleName>" + roleName + "</roleName>" +



                    "</templateRole>" +

                    "</templateRoles>" +

                    "</envelopeDefinition>";

然后我正在拨打电话

request = (HttpWebRequest)WebRequest.Create(baseURL + "/envelopes");

            request.Headers.Add("X-DocuSign-Authentication", authenticateStr);

            request.ContentType = "application/xml";

            request.Accept = "application/xml";

            request.ContentLength = requestBody.Length;

            request.Method = "POST";

            // write the body of the request

            byte[] body = System.Text.Encoding.UTF8.GetBytes(requestBody);

            Stream dataStream = request.GetRequestStream();

            dataStream.Write(body, 0, requestBody.Length);

            dataStream.Close();

            // read the response

            webResponse = (HttpWebResponse)request.GetResponse();

在最后一行,它给出了 400 bad request 的错误。

这适用于模拟帐户,但在生产帐户中会出现 400 错误。感谢所有试图帮助我的人。

【问题讨论】:

    标签: api docusignapi


    【解决方案1】:

    如果您的代码在演示环境中运行但在生产环境中失败,这可能与身份验证相关或与您的帐户设置相关(在演示或产品中)。我怀疑它与身份验证有关。

    我看到您使用的是使用 /login_information 端点的旧式身份验证。当您在演示中发出登录请求时,baseUrl 始终为 demo.docusign.net,因为这是该环境中唯一的子域。

    但是,根据您创建帐户时的位置和其他一些因素,您的帐户可能存在于多个子域之一中。我看到您将www.docusign.net 用于您的生产端点,这对于登录API 是正确的,但您的集成需要做的是解析响应中返回的baseUrl,并将其用作您的核心API 请求的基础。

    例如,您的生产帐户可能位于以下域之一:

    na2.docusign.net
    na3.docusign.net
    eu.docusign.net
    ...
    

    再次验证您的集成应将哪个子域用于生产,解析从登录 API 返回的 baseUrl 并将其用于后续请求。

    【讨论】:

    • 请注意,CA 和 AU 服务器上的帐户不会出现在对 www 端点的 login_information 调用中。如果您的帐户是在其中任何一个上配置的,则您需要专门点击正确的端点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2015-08-19
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多