GetSigningLinks - C#

Copy
// DocumentNOW V2 GetSigningLinks example

// force TLS 1.2 if .net < 4.6
ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

Guid accountContextID = new Guid(<fromYourAccount>);
Guid documentID = new Guid(<savedFromYourSubmission>);
Guid authToken = new Guid(<savedFromYourSubmission>);

// assuming we set the namespace on the service proxy to DocNow ...
DocNow.LinkServiceClient linker = new DocNow.LinkServiceClient("BasicHttpBinding_ILinkService");
DocNow.GetSigningLinksRequest linkrequest = new DocNow.GetSigningLinksRequest();

linkrequest.DocumentId = documentID;            
linkrequest.DocumentAuthToken = authToken;
linkrequest.ContextIdentifier = accountContextID;
// this is significant if signers are signing in sequential steps            
linkrequest.IncludeOnlyCurrentSigners = true; 
linkrequest.IsAuthenticated = false;      
// quirk of .net proxy, we are setting this to true to indicate we are NOT passing an envelopeID, but a documentID is present          
linkrequest.DocumentIdSpecified = true;             
// ditto
linkrequest.DocumentAuthTokenSpecified = true;      
// this is expiration we would like to set on the signing link, NOT the document
linkrequest.LinkExpirationDate = DateTime.Today.AddHours(24);   
linkrequest.LinkExpirationDateSpecified = true;  

DocNow.GetSigningLinksResult linksresult = linker.GetSigningLinks(linkrequest);
if (linksresult.Exceptions != null)
{
    StringBuilder sb = new StringBuilder();
    foreach (DocNow.LinkException exception in linksresult.Exceptions)
    {
        sb.AppendFormat("{0} : {1}{2}", exception.Severity.ToString(), exception.Value, Environment.NewLine);
    }
    Console.WriteLine(sb.ToString());
}
else
{
    // spit out the link for each signer
    foreach (DocNow.SigningLink link in linksresult.SigningLinks)
    {
        // depending on how the signer was setup, we may need to identify them by email OR their phone number
        Console.WriteLine(link.SignatoryEmail.Length > 0 ? link.SignatoryEmail : link.SignatoryMobilePhone);
        Console.WriteLine(link.Url);
    }
}