我使用Code Recipes for Embedded签名中的代码,但是从C#转换为VB.NET,代码使用Docusign API Nuget。 CreateEnvelope返回USER_LACKS_PERMISSIONS。 我已经完成了我的权限并检查了所有内容。我登录的用户是帐户管理员,似乎已检查所有权限。 我将收件人电子邮件设置为实际的收件人电子邮件(与我的管理员帐户不同),即使它是嵌入式签名,我不知道这是否是问题。我确实希望实际签名者获得签名文档的副本,这就是我使用收件人电子邮件作为RecipientEmail的原因。
以下是导致错误的代码:
Dim accountId As String
accountId = loginApi()
Dim envDef As New DocuSign.eSign.Model.EnvelopeDefinition()
envDef.EmailSubject = "TEST - Please sign this doc"
' Add a document to the envelope
Dim doc As New DocuSign.eSign.Model.Document()
doc.DocumentBase64 = System.Convert.ToBase64String(DocumentBytes)
doc.Name = "TestFile.pdf"
doc.DocumentId = "1"
envDef.Documents = New List(Of DocuSign.eSign.Model.Document)()
envDef.Documents.Add(doc)
' Add a recipient to sign the documeent
Dim signer As New DocuSign.eSign.Model.Signer()
signer.Email = recipientEmail
signer.Name = recipientName
signer.RecipientId = "1"
signer.ClientUserId = "1234"
' must set |clientUserId| to embed the recipient!
' Create a |SignHere| tab somewhere on the document for the recipient to sign
signer.Tabs = New DocuSign.eSign.Model.Tabs()
signer.Tabs.SignHereTabs = New List(Of DocuSign.eSign.Model.SignHere)()
Dim signHere As New DocuSign.eSign.Model.SignHere()
signHere.DocumentId = "1"
signHere.PageNumber = "1"
signHere.RecipientId = "1"
signHere.XPosition = "100"
signHere.YPosition = "100"
signer.Tabs.SignHereTabs.Add(signHere)
envDef.Recipients = New DocuSign.eSign.Model.Recipients()
envDef.Recipients.Signers = New List(Of DocuSign.eSign.Model.Signer)()
envDef.Recipients.Signers.Add(signer)
' set envelope status to "sent" to immediately send the signature request
envDef.Status = "sent"
' |EnvelopesApi| contains methods related to creating and sending Envelopes (aka signature requests)
Dim envelopesApi As New DocuSign.eSign.Api.EnvelopesApi()
Dim envelopeSummary As DocuSign.eSign.Model.EnvelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef)
答案 0 :(得分:0)
诊断此类问题时的第一个问题是确定它是否是凭据(权限)问题或其他问题。
可以轻松测试用户名是否设置正确:
运行Recipe tester。您可以在Heroku上免费快速运行它。请参阅"在Heroku上部署"按钮。选择嵌入式签名配方。如果它适用于您的用户演示沙箱电子邮件/密码,那么您就知道问题出在您的代码中。
您可以使用该工具使用OAuth或DocuSign传统身份验证(服务集成身份验证)进行身份验证。
接下来,使用测试人员的API日志功能查看VB程序的API调用。比较您的程序正在进行的DocuSign API请求与配方测试器的请求。
答案 1 :(得分:0)
heroku app使用了一个帖子: https://demo.docusign.net:7802/restapi/v2/accounts/13193/envelopes
我的visual studio应用程序使用生产网址: https://www.docusign.net/restapi
这一次我在demo.docusign.net中检查用户的权限 但事实证明另一个用户使用相同的电子邮件和密码存在于生产中(www.docusign.net) 生产帐户没有正确的权限。
DocuSign应用程序向我展示了"选择用户"第一页,显示两个相同的条目是TWO ACCOUNTS EXIST的线索:一个在制作中,一个在演示中。
如果在"选择用户"页面,DocuSign也列出了BASE URL,或列出了生产或演示的列。