#APIDocusign 400对生产的错误请求,同时在本地正常工作

时间:2018-10-23 08:22:07

标签: api docusignapi

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

)请求信封结果

string 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错误的错误请求。

这对于模拟帐户可以正常工作,但是在生产帐户中会出现400错误。谢谢所有尝试帮助我的人。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

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