2016-05-24 15 views
0

署名するためにHTMLリンクを使用していくつかのPDFフォームを利用できるようにする必要がありますが、署名者は自己署名者でなければなりません。つまり、署名者がDocusignを使用して署名を完了すると、署名された文書をダウンロードできるはずです。ただし、HTMLリンクでは、保存された文書を個人的に識別できる情報として受信したくない場合は、送信者として扱います。署名者は、後でこれらの文書をアプリケーションに別々にアップロードします。Docusign API - 自己署名

私は検索しましたが、自己署名者のHTMLリンクを生成する方法が見つかりませんでした。私は、通常の署名者には動作するが自己署名者には動作しないプロトタイプを作成することができました。

ご協力いただければ幸いです。ここに私のコードのスニペットがあります:

 // specify the document we want signed 
     string SignTest1File = @"C:\Users\skosuri.AA\Desktop\of0306.pdf"; 

     string SignTest2File = @"C:\Users\skosuri.AA\Desktop\epa-credit-release-authorization.pdf"; 

     // Enter recipient (signer) name and email address 
     string recipientName = "Chris"; 
     string recipientEmail = "[email protected]"; 

     // instantiate api client with appropriate environment (for production change to www.docusign.net/restapi) 
     string basePath = "https://demo.docusign.net/restapi"; 

     // instantiate a new api client 
     ApiClient apiClient = new ApiClient(basePath); 

     // set client in global config so we don't need to pass it to each API object 
     Configuration.Default.ApiClient = apiClient; 

     string authHeader = "{\"Username\":\"" + Username + "\", \"Password\":\"" + Password + "\", \"IntegratorKey\":\"" + IntegratorKey + "\"}"; 
     Configuration.Default.AddDefaultHeader("X-DocuSign-Authentication", authHeader); 

     // we will retrieve this from the login() results 
     string accountId = null; 

     // the authentication api uses the apiClient (and X-DocuSign-Authentication header) that are set in Configuration object 
     AuthenticationApi authApi = new AuthenticationApi(); 
     LoginInformation loginInfo = authApi.Login(); 

     // user might be a member of multiple accounts 
     accountId = loginInfo.LoginAccounts[0].AccountId; 

     Console.WriteLine("LoginInformation: {0}", loginInfo.ToJson()); 

     // Read a file from disk to use as a document 
     byte[] fileBytes = File.ReadAllBytes(SignTest1File); 

     byte[] fileBytes2 = File.ReadAllBytes(SignTest2File); 

     EnvelopeDefinition envDef = new EnvelopeDefinition(); 
     envDef.EmailSubject = "Please complete and sign these documents"; 

     // Add a document to the envelope 
     Document doc = new Document(); 
     doc.DocumentBase64 = System.Convert.ToBase64String(fileBytes); 
     doc.Name = "of0306.pdf"; 
     doc.DocumentId = "1"; 
     doc.TransformPdfFields = "true"; 


     envDef.Documents = new List<Document>(); 
     envDef.Documents.Add(doc); 

     // Add a second document to the envelope 
     Document doc2 = new Document(); 
     doc2.DocumentBase64 = System.Convert.ToBase64String(fileBytes2); 
     doc2.Name = "epa-credit-release-authorization.pdf"; 
     doc2.DocumentId = "2"; 
     doc2.TransformPdfFields = "true"; 

     envDef.Documents.Add(doc2); 

     // Add a recipient to sign the documeent 
     Signer signer = new Signer(); 
     signer.Name = recipientName; 
     signer.Email = recipientEmail; 
     signer.RecipientId = "1"; 
     signer.DefaultRecipient = "true"; 

     // must set |clientUserId| to embed the recipient 
     signer.ClientUserId = "1234"; 

     // Create a |SignHere| tab on the document for the recipient to sign 
     signer.Tabs = new Tabs(); 
     signer.Tabs.SignHereTabs = new List<SignHere>(); 
     signer.Tabs.DateSignedTabs = new List<DateSigned>(); 
     signer.Tabs.FullNameTabs = new List<FullName>(); 

     SignHere signHere = new SignHere(); 

     signHere.AnchorString = "Applicant's Signature:"; 
     signHere.AnchorXOffset = "1.5"; 
     signHere.AnchorYOffset = "0"; 
     signHere.AnchorIgnoreIfNotPresent = "false"; 
     signHere.AnchorUnits = "inches"; 
     signHere.DocumentId = "1"; 
     signHere.RecipientId = "1"; 
     signer.Tabs.SignHereTabs.Add(signHere); 

     DateSigned ds = new DateSigned(); 
     ds.PageNumber = "3"; 
     ds.XPosition = "380"; 
     ds.YPosition = "550"; 
     ds.DocumentId = "1"; 
     ds.RecipientId = "1"; 
     ds.TabLabel = "Date Signed"; 
     signer.Tabs.DateSignedTabs.Add(ds); 

     // Create a |SignHere| tab on the second document for the recipient to sign 

     SignHere signHere2 = new SignHere(); 


     signHere2.PageNumber = "1"; 
     signHere2.XPosition = "80"; 
     signHere2.YPosition = "375"; 
     signHere2.DocumentId = "2"; 
     signHere2.RecipientId = "1"; 
     signer.Tabs.SignHereTabs.Add(signHere2); 

     FullName fn = new FullName(); 
     fn.PageNumber = "1"; 
     fn.XPosition = "80"; 
     fn.YPosition = "300"; 
     fn.DocumentId = "2"; 
     fn.RecipientId = "1"; 
     signer.Tabs.FullNameTabs.Add(fn); 

     DateSigned ds2 = new DateSigned(); 
     ds2.PageNumber = "1"; 
     ds2.XPosition = "80"; 
     ds2.YPosition = "475"; 
     ds2.DocumentId = "2"; 
     ds2.RecipientId = "1"; 
     signer.Tabs.DateSignedTabs.Add(ds2); 



     envDef.Recipients = new Recipients(); 
     envDef.Recipients.Signers = new List<Signer>(); 
     envDef.Recipients.Signers.Add(signer); 

     // set envelope status to "sent" to immediately send the signature request 
     envDef.Status = "sent"; 

     // Use the EnvelopesApi to create and send the signature request 
     EnvelopesApi envelopesApi = new EnvelopesApi(); 
     EnvelopeSummary envelopeSummary = envelopesApi.CreateEnvelope(accountId, envDef); 


     Console.WriteLine("EnvelopeSummary:\n{0}", JsonConvert.SerializeObject(envelopeSummary)); 

     RecipientViewRequest viewOptions = new RecipientViewRequest() 
     { 
      ReturnUrl = "https://www.epa.gov", 
      ClientUserId = "1234", // must match clientUserId set in step #2! 
      AuthenticationMethod = "email", 
      UserName = recipientName, 
      Email = recipientEmail 
     }; 

     // create the recipient view (aka signing URL) 
     ViewUrl recipientView = envelopesApi.CreateRecipientView(accountId, envelopeSummary.EnvelopeId, viewOptions); 

     // print the JSON response 
     Console.WriteLine("ViewUrl:\n{0}", JsonConvert.SerializeObject(recipientView)); 

     // Start the embedded signing session! 
     System.Diagnostics.Process.Start(recipientView.Url); 

答えて

2

私はあなたの質問をよく理解していません。

あなたのアプリは送信者として「システムユーザー」(「[email protected]」などの電子メールアカウント)を使用し、「自己署名者」に埋め込み署名要求を提示することができます。

こうして、「自己署名者」は情報とサインを記入することができます。

署名された文書は、(DocuSign経由で)システムユーザにしか表示されません。パージポリシーを設定することもできます。

しかし、

署名者は、後の時点で、当社のアプリケーションに個別にこれらのドキュメントをアップロードすることを依頼するフレンドリーなユーザーエクスペリエンスではありません。

代わりに、テキスト(データ)タブのconcealValueOnDocumentパラメータをチェックアウトすることをお勧めします。

ドキュメント:

trueに設定した場合、受信者が任意に(文字はアスタリスクで隠されている)を追加または変更情報をフィールドに、そのデータが表示されていないしながら、フィールドが正常に表示され他の署名者または送信者。

エンベロープが完成すると、DocuSign Consoleの[フォームデータ]リンクを介して情報を送信者が利用できるようになります。 この設定はテキストボックスにのみ適用され、リストボックス、ラジオボタン、またはチェックボックスには影響しません。

この設定を使用すると、署名者は署名時にPIIを見ることができますが、その情報は後続の署名者や情報閲覧者には表示されません。

PIIデータはAPIを介して引き続き使用できますので、統合によって必要に応じて処理できます。

関連する問題