我正在使用docusign C#客户端(https://github.com/docusign/docusign-csharp-client)。
这是我的代码:
var accountId = LoginAndGetAccountId();
var envelopeDefinition = new EnvelopeDefinition
{
EmailSubject = "Please sign this agreement.",
Status = "sent"
};
...
...
var envelopesApi = new EnvelopesApi();
var envelopeSummary = envelopesApi.CreateEnvelope(accountId, envelopeDefinition);
我可以通过API登录,并获得有效的帐户ID。当我制作" envelopesApi.CreateEnvelope()"时,代码会对生产环境进行轰炸。呼叫。
An unhandled exception of type 'DocuSign.eSign.Client.ApiException' occurred in DocuSign.eSign.dll
Additional information: Error calling CreateEnvelope: {
"errorCode": "USER_AUTHENTICATION_FAILED",
"message": "One or both of Username and Password are invalid."
}
如何进一步调试?
答案 0 :(得分:2)
Login()API调用用于对API进行身份验证,并检索您的baseUrl
和accountId
。您会注意到,返回的baseUrl
包含您的用户/帐户所在的正确服务器。
当您针对生产进行登录调用时会带回什么值?由于您收到用户身份验证错误,我认为该值不是www
,而是eu1
或na2
我在猜测。您能否确认正在返回哪个域以及您是否正在针对正确的服务器进行生产调用?
注意:所有这些信息都包含在POST API认证指南中:https://www.docusign.com/sites/default/files/API_Certification_Post_04_08_16.pdf
答案 1 :(得分:0)
对于任何挣扎于此的人来说,答案很简单。
当基本URL指向demo.docusign.net/restapi时,我的程序运行良好。
我被批准使用API,我的生产环境已经设置了付费处方和用户。然后我更新了我的代码以使用新用户和密码。
在文档中,当您准备切换到生产时,会有一条说明将代码中的基本URL更改为www.docusign.com/restapi。所以我也做了那个改变。
然后我会得到OP提到的错误。如果我将其切换回用于开发的URL,则没有问题。
要解决此问题 - 请勿使用www。 使用na2,eu1或eu。简单。
要找出要使用的帐户,请转到Docusign门户中的帐户并启用日志记录。下载日志和日志中的文件,应该在顶部引用na2,eu1或eu。
像这样:
PUT https://na2.docusign.net:....