2017-10-09 71 views
1

文档https://docs.docusign.com/esign/guide/authentication/legacy_auth.html不起作用。我花了至少2个小时试图让这些说明起作用。无论您的指示是错误的,还是他们的网站上有错误。需要Docusign API端点

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' 之后的一切,所以URL是正确的。

+0

可以请你分享一下你试过的和你得到的错误 –

+0

我用这个例子:$ curl -i -H'X-DocuSign-Authentication: {“Username”:“[email protected]”, “Password”:“S3cre + p455w0Rd”, “IntegratorKey”:“ 230546a7-9c55-40ad-8fbf-af205d5494ad“}'\ https://demo.docusign.net/restapi/v2/login_information 我放入了用于登录生产的相同凭据。我将网址更改为https://www.docusign.net/restapi/v2/login_information 但我得到身份验证错误。 –

+0

我也添加了我的C#代码。提琴手不断显示401授权错误。我已经花了超过十几个我们试图让这个在生产中工作,它不会工作。它在沙箱中运行良好。 –

回答

0

与只使用demo的演示系统相比,DocuSign现场制作系统具有多个帐户子域。例如,在生产中可能的地点是www,na2,na3,eu

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

看起来你正在使用的DocuSign SDK,还有自述一个说明,解释这一点:


认证

服务集成使用旧式头认证

(传统报头认证使用X-DocuSign认证报头。)

使用Authentication:登录方法检索帐户的帐号和baseUrl。登录方法的网址为www.docusign.net,开发人员沙箱为demo.docusign.net。 baseUrl字段是loginAccount对象的一部分。请参阅文档和loginAccount对象

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

由于登录方法返回,baseUrl包含API版本和帐户ID。拆分字符串以获取basePath,只是服务器名称和api名称。例如,您将收到https://na1.docusign.net/restapi/v2/accounts/123123123。您只需要https://na1.docusign.net/restapi 使用basePath实例化SDK。例如ApiClient apiClient =新的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]);