我正在编写代码以通过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}”}
答案 0 :(得分:0)
默认情况下,API指向其实时/生产服务器。创建ApiClient实例后,将其设置为指向演示服务器:
apiClient.RestClient.BaseUrl = new Uri(“https://demo.docusign.net/restapi”);
编辑:那是针对旧版身份验证的。对于OAuth,请检查以确保您指向account-d.docusign.com(请注意-d)。
答案 1 :(得分:0)
我也发现这是问题,在响应中没有承载令牌
<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中的凭据时,所有工作
答案 2 :(得分:0)
遵循的步骤应该是:
缺少步骤:
如果您可以在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_uri
和account_id
,如下所示
"account_id": "fe0b61a3-3b9b-cafe-b7be-4592af32aa9b"
"base_uri": "https://demo.docusign.net"
您可以使用上面的base_uri
和account_id
进行任何其他API调用,例如创建信封等
<base_uri>/restapi/v2/accounts/<account_Id>/envelopes