Docusign嵌入式签名“User_Lacks_Permissions”

时间:2016-08-17 23:05:09

标签: docusignapi

我使用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)

这些是权限: enter image description here

2 个答案:

答案 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,或列出了生产或演示的列。