需要Docusign API端点

时间:2017-10-09 16:09:12

标签: docusignapi

文档https://docs.docusign.com/esign/guide/authentication/legacy_auth.html不起作用。我花了至少2个小时试图让这些说明工作。您的说明错误,或者他们的网站上有错误。

我在4天前开了个案,但他们没有回应。我正处于紧张状态以实现这一目标。有谁知道如何获得这个网址。

这是我的C#代码:

    ApiClient apiClient = new ApiClient("https://www.docusign.net/restapi");
    DocuSign.eSign.Client.Configuration.Default.ApiClient = apiClient;
    DocuSignHeader myHeader = new DocuSignHeader()
    {
    Username = ConfigurationManager.AppSettings["DocuSignUsername"],
    Password = ConfigurationManager.AppSettings["DocuSignPassword"],
    IntegratorKey = ConfigurationManager.AppSettings["DocuSignIntegratorKey"],
    };
    DocuSign.eSign.Client.Configuration.Default.AddDefaultHeader("X-DocuSign-Authentication", JsonConvert.SerializeObject(myHeader));
    AuthenticationApi authApi = new AuthenticationApi();
    LoginInformation loginInfo = authApi.Login();
    LoginAccount myAccount = loginInfo.LoginAccounts[0];
.. create envelope here..
   EnvelopesApi envelopesApi = new EnvelopesApi(GetBasePath(myAccount.BaseUrl));
   EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(myAccount.AccountId, envDef);

GetBasePath()的目的是在'restapi'之后剥离所有内容,因此网址是正确的。

1 个答案:

答案 0 :(得分:0)

DocuSign实时制作系统有多个帐户子域,而演示系统只使用demo。例如,在生产中,可能的网站是wwwna2na3eu

您的集成代码需要解析从您的身份验证请求返回的baseUrl的子域,并使用该新子域重新配置apiClient

看起来您正在使用DocuSign SDK,自述文件中有一条说明解释了这一点:

<强>验证

使用传统标头身份验证的服务集成

(Legacy Header Authentication使用X-DocuSign-Authentication标头。)

使用身份验证:登录方法检索帐户的帐号和baseUrl。登录方法的URL是www.docusign.net用于生产,而demo.docusign.net用于开发人员沙箱。 baseUrl字段是loginAccount对象的一部分。请参阅docs和loginAccount对象

生产中所选帐户的baseUrl将以na1,na2,na3,eu1或其他内容开头。使用返回的baseUrl创建basePath(请参阅下一步。)将basePath用于所有后续API调用。

由login方法返回,baseUrl包含API版本和帐户ID。拆分字符串以获取basePath,只获取服务器名称和api名称。例如,您将收到https://na1.docusign.net/restapi/v2/accounts/123123123。你想要https://na1.docusign.net/restapi 使用basePath实例化SDK。例如ApiClient apiClient = new ApiClient(basePath);

使用Configuration.Default.AddDefaultHeader

设置示例中显示的身份验证标头

参考:C# SDK

代码示例

以下是完全相同的C#代码(即剥离baseUrl的子域并重新配置apiClient):

// Update ApiClient with the new base url from login call
string[] separatingStrings = { "/v2" };
apiClient = new ApiClient(loginInfo.LoginAccounts[0].BaseUrl.Split(separatingStrings, StringSplitOptions.RemoveEmptyEntries)[0]);