PARTNER_AUTHENTICATION因Docusign.esign.dll失败

时间:2017-12-14 04:31:32

标签: docusignapi

我正在编写代码以通过Docusign.esign.dll使用docusign演示机器。我尝试使用Oauth进程连接docusign。

我使用的代码类似于此处提供的代码。

https://github.com/docusign/docusign-csharp-client/blob/master/test/SdkTests/JwtAuthUnitTests.cs

但是我使用了我的演示机器Integetor密钥和私钥。但我收到以下错误。那么我需要更改演示机器中的任何设置吗?或者我如何获得有效的Integotor密钥。 我希望我的PEM密钥导致问题。所以让我知道如何预先设置pEM KEy。 我只是通过私钥复制并使用记事本应用程序创建了PEM文件。 请让我知道我错过了什么?

调用登录时出错:{\ r \ n \“errorCode \”:\“PARTNER_AUTHENTICATION_FAILED \”,\ r \ n \“message \”:\“未找到或禁用指定的集成器密钥。未指定Integrator键。\“\ r \ n}”}

3 个答案:

答案 0 :(得分:0)

默认情况下,API指向其实时/生产服务器。创建ApiClient实例后,将其设置为指向演示服务器:

apiClient.RestClient.BaseUrl = new Uri(“https://demo.docusign.net/restapi”);

编辑:那是针对旧版身份验证的。对于OAuth,请检查以确保您指向account-d.docusign.com(请注意-d)。

答案 1 :(得分:0)

我也发现这是问题,在响应中没有承载令牌

Image of response partner credentials

<br/><br/>string host = "https://demo.docusign.net/restapi/v2"; 
// Note with or without v2 their supplied credentials work<br/>
string oauthBasePath = "account-d.docusign.com";<br/>
ApiClient apiClient = new ApiClient(host);<br/>
apiClient.ConfigureJwtAuthorizationFlow(integratorKey, userId, oauthBasePath, privateKeyFilename, expiresInHours);

当您使用JwtAuthUnitTests - TestConfig中的凭据时,所有工作

Image of response docusign provided credentials

答案 2 :(得分:0)

遵循的步骤应该是:

  • 创建的演示机器
  • 创建IK
  • 创建密钥
  • 创建RSA对密钥
  • 将私钥复制到记事本中并将该文件保存到位置

缺少步骤:

如果您可以在DocuSign中声明电子邮件域,则只能使用“管理员同意”,否则您需要使用“用户同意”。在用户同意的情况下,通常使用Authorization Code Grant,您需要获得Impersonation Signature范围的同意。一旦获得用户的同意,您就可以使用JWT为该用户获取新的AccessToken。

此外,您需要指向正确的主机Demo和Prod,

account-d.docusign.com需要

Demo account.docusign.com

需要Prod

以上主机用于从DocuSign帐户服务器(/oauth/token)获取访问令牌,您还将使用上述主机从/oauth/userinfo端点获取baseUri。除了这两个电话,我不认为你会使用上面的主持人。

作为对/oauth/userinfo端点呼叫的回复,您将获得base_uriaccount_id,如下所示

"account_id": "fe0b61a3-3b9b-cafe-b7be-4592af32aa9b"
"base_uri": "https://demo.docusign.net"

您可以使用上面的base_uriaccount_id进行任何其他API调用,例如创建信封等

<base_uri>/restapi/v2/accounts/<account_Id>/envelopes