USER_AUTHENTICATION_FAILED创建信封

时间:2017-01-17 17:33:00

标签: docusignapi envelope

目前我正在为DocuSign(https://www.npmjs.com/package/docusign-esign)使用Node.js集成,我使用沙盒帐户进行了所有测试并且工作得很好,现在我正在尝试使用生产帐户,登录过程很好,但是当我要创建信封时,我收到USER_AUTHENTICATION_FAILED错误(即使第一次登录没有错误)。我想知道是否有人经历过相同的事情或者我是如何解决这个问题的。

这是我从docusign-esign中创建信封的代码:

var loginAccount = new docusign.LoginAccount();
loginAccount = loginAccounts[0];
var accountId = loginAccount.accountId;   

var envelopesApi = new docusign.EnvelopesApi();

envelopesApi.createEnvelope(accountId,  envDef, null, function (error, envelopeSummary, response)

登录过程后检索的帐户ID相同。

1 个答案:

答案 0 :(得分:2)

一个可能的原因可能是您的DocuSign帐户托管在na2.docusign.net,na3.docusign.net或eu.docusign.net上,而您的代码使用默认的www.docusign.com作为基本URL。 / p>

即使您使用www,登录呼叫也会通过,但是如果您没有访问与您的生产帐户对应的确切基本URL,则所有后续API调用都将失败。您应该已经收到此信息,作为DocuSign Go-Live流程(以前称为API认证)的一部分。您始终可以从登录呼叫响应中获取基本URL。

对于Node,此处如何从登录调用中获取正确的基本URL并将其设置为API客户端(粗体中的行可能是代码中缺少的内容):

authApi.login(loginOps, function (err, loginInfo, response) {
  if (err) {
    return next(err);
  }
  if (loginInfo) {
    // list of user account(s)
    // note that a given user may be a member of multiple accounts
    var loginAccounts = loginInfo.getLoginAccounts();
    console.log('LoginInformation: ' + JSON.stringify(loginAccounts));
    var loginAccount = loginAccounts[0];
    var accountId = loginAccount.accountId;

<强> var baseUrl = loginAccount.baseUrl;

<强> var accountDomain = baseUrl.split("/v2");

<强> apiClient.setBasePath(accountDomain[0]);

<强> docusign.Configuration.default.setDefaultApiClient(apiClient);

next(null, loginAccount);
  }
});