USER_AUTHENTICATION_FAILED 创建信封

USER_AUTHENTICATION_FAILED Creating 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 相同。

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

即使您使用 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);
  }
});