署名するために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);