2016-08-17 2 views
0

Ich benutze den Code aus den Code Recipes für Embedded Signing, aber von C# zu VB.NET konvertiert, der Code verwendet die Docusign API Nuget. Die CreateEnvelope gibt eine USER_LACKS_PERMISSIONS zurück. Ich habe meine Berechtigungen überprüft und alles überprüft. Der Benutzer, bei dem ich mich anmelde, ist ein Kontoadministrator und scheint alle Berechtigungen überprüft zu haben. Ich setze die Empfänger-E-Mail auf die tatsächliche Empfänger-E-Mail (anders als mein Administrator-Konto), obwohl es Embedded Signing ist, weiß ich nicht, ob das das Problem ist. Ich möchte, dass der tatsächliche Unterzeichner eine Kopie des signierten Dokuments erhält, weshalb ich die Empfänger-E-Mail als RecipientEmail verwende.Docusign Embedded Signing "User_Lacks_Permissions"

Unten ist der Code, der den Fehler verursacht:

 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) 

Dies sind die Berechtigungen: enter image description here

+0

Können Sie bestätigen, dass die Benutzeranmeldeinformationen, die Sie verwenden, für "Kontoweite Rechte" im Admin-Tool konfiguriert sind? –

+0

Zu Ihrer Information gibt es auch eine Einstellung auf Kontoebene, die das eingebettete Signieren über API erlaubt. Können Sie die vollständige Fehlermeldung + Details hinzufügen, damit wir diese eingrenzen können? –

+0

Dies sind die Berechtigungen. Ich sehe alles überprüft. – user3438914

Antwort

0

Das erste Problem, wenn ein Problem diagnostizieren wie dies herauszufinden ist, wenn es sich um eine Anmeldeinformationen ist (Berechtigungen) Problem oder etwas anderes.

Es gibt einen einfachen Test zu sehen, ob der Benutzername richtig konfiguriert ist:

Führen Sie die Recipe tester. Sie können es schnell auf Heroku kostenlos ausführen. Siehe die Schaltfläche "Bereitstellen auf Heroku". Wählen Sie das Embedded Signing Rezept. Wenn es mit Ihrer Benutzer-Demo-Sandbox-E-Mail/Passwort funktioniert, dann wissen Sie, dass das Problem irgendwo in Ihrem Code liegt.

können Sie das Tool für die Authentifizierung verwenden entweder OAuth oder DocuSign Legacy-Authentifizierung (Service Integration Authentifizierung.)

Als nächstes verwenden Sie die API-Log-Funktion des Testers die API-Aufrufen Ihres VB-Programm zu sehen. Vergleichen Sie die DocuSign-API-Anforderungen, die Ihr Programm erstellt, mit den Anforderungen des Rezepttesters.

+0

Wenn ich das Rezept benutze, komme ich auf eine DocuSign-Seite, auf der steht: Wählen Sie Benutzer Sie haben mehrere Benutzer mit diesem Benutzernamen und Passwort verbunden. Wählen Sie einen Benutzer aus, um fortzufahren. Die folgende Liste zeigt meinen Benutzer zweimal.Ich habe versucht auf einen zu klicken, aber nichts passiert. Die docusign-Anwendung ist blockiert. – user3438914

+0

Mit der Legacy Header Authentication-Option kann ich das Embedded Signing-Code-Rezept ausführen und das eingebettete Signaturdokument im Browser anzeigen. – user3438914

0

Die Heroku App verwendet, um einen Beitrag, der zu geht: https://demo.docusign.net:7802/restapi/v2/accounts/13193/envelopes

Während mein Visual Studio App nutzt die Produktion url: https://www.docusign.net/restapi

Während dieser ganzen Zeit war ich überprüfe die Berechtigungen des Benutzers in Demo. docusign.net Aber es stellt sich heraus, ein weiterer Benutzer mit der gleichen E-Mail-Adresse und Passwort in der Produktion (www.docusign.net) Das Produktionskonto hatte nicht die richtigen Berechtigungen.

Die Tatsache, dass die DocuSign App mir zuerst die Seite "Benutzer auswählen" zeigte, mit zwei identischen Einträgen, war der Hinweis, dass ZWEI KONTEN EXISTIEREN: eine in der Produktion und eine in der Demo.

Es wäre schön, wenn DocuSign auf der Seite "Benutzer auswählen" auch die BASE-URL oder eine Spalte mit Produktion oder Demo auflistet.

Verwandte Themen