public static void FormDirectSample(ServiceClient client) { //get FormDirect forms var forms = client.getFormList(); var tfnForm = forms.FirstOrDefault(t => t.Name.Contains("TFN")); var superannuationChoiceForm = forms.FirstOrDefault(t => t.Name.Contains("Superannuation")); //set invitee infomation for employee tfnForm.Signers[0].FirstName = SampleParameters.Invitee1_FirstName; tfnForm.Signers[0].LastName = SampleParameters.Invitee1_LastName; tfnForm.Signers[0].Email = SampleParameters.Invitee1_Email; tfnForm.Signers[0].MobileCountry = SampleParameters.Invitee1_MobileCountry; //e.g. 61 for Australia tfnForm.Signers[0].MobileNumber = SampleParameters.Invitee1_MobileNumber; //set invitee infomation for employer superannuationChoiceForm.Signers[0].FirstName = SampleParameters.Invitee2_FirstName; superannuationChoiceForm.Signers[0].LastName = SampleParameters.Invitee2_LastName; superannuationChoiceForm.Signers[0].Email = SampleParameters.Invitee2_Email; //send forms var documents = client.sendForms( formsToSend: new List<SecuredSigningClientSdk.Models.FormDirect> { tfnForm, superannuationChoiceForm }, dueDate: DateTime.Now.AddDays(5)); }
public static void SmartTagAdvancedUsage4_Attachment(ServiceClient client) { var attachment= new System.IO.FileInfo(SampleParameters.Path2AttachmentFile); var attachmentReference = client.uploadAttachmentFile(attachment); var file = new System.IO.FileInfo(SampleParameters.Path2SmartTagDocument); var documentReference = client.uploadDocumentFile(file); var signers = new SmartTagInvitee[] { new SmartTagInvitee { FirstName=SampleParameters.Invitee1_FirstName, LastName=SampleParameters.Invitee1_LastName, Email=SampleParameters.Invitee1_Email, //if sms needed //MobileCountry=SampleParameters.Invitee1_MobileCountry, //MobileNumber=SampleParameters.Invitee1_MobileNumber, Attachments=new List<string> { attachmentReference } } }; var smartTagResp = client.sendSmartTagDocument(new List<string> { documentReference }, DateTime.Now.AddDays(7), signers); }
/// <summary> /// Basic Usage. For more details about Smart Tag API, see: /// <see cref="http://www.securedsigning.com/documentation/developer/smarttag-api" /> /// </summary> /// <param name="client"></param> public static void SmartTagSample(ServiceClient client) { var file = new System.IO.FileInfo(SampleParameters.Path2SmartTagDocument); var documentReference = client.uploadDocumentFile(file); var smartTagResp = client.sendSmartTagDocument(new List<string> { documentReference }, DateTime.Now.AddDays(7)); }
static void Main(string[] args) { //initialise API Client var client = new ServiceClient( serviceUrl: SampleParameters.SecuredSigningServiceBase, version: SampleParameters.SecuredSigningServiceVersion, apiKey: SampleParameters.APIKey, secret: SampleParameters.APISecret, accessUrl: SampleParameters.CallbackUrl ); //see https://www.securedsigning.com/developer/api-documentation#auth for more details about OAuth 2, default enabled for API Key from March 2016. earlier API Key should ignore it. #region OAuth2 var state = SampleParameters.OAuth2State; //get OAuth2 access token in WinForm //Application.EnableVisualStyles(); //var form = new OAuth2AuthoriseForm(client, state, OAuth2Client.OAuth2Scope.Basic | OAuth2Client.OAuth2Scope.FormDirect | OAuth2Client.OAuth2Scope.FormFiller | OAuth2Client.OAuth2Scope.SmartTag); //form.OnAuthorized = (_tokenResp, _state) => //{ // System.Diagnostics.Debug.Assert(_state == state); // client.AccessToken = _tokenResp.Access_Token; // form.Close(); //}; //Application.Run(form); //AccountSample(client); //get OAuth2 access token in Server var authorizeUrl = client.OAuth2.CreateAuthorizeRequest(state, OAuth2Client.OAuth2Scope.Basic.ToString(), OAuth2Client.OAuth2Scope.FormDirect.ToString(), OAuth2Client.OAuth2Scope.FormFiller.ToString(), OAuth2Client.OAuth2Scope.SmartTag.ToString()); //start oauthorize process in a webpage System.Diagnostics.Process.Start(authorizeUrl); //run an server implemented by HttpListener, you can implement your own server using ASP.Net, etc. Server.SampleServer server = new Server.SampleServer(); var code = server.StartOnce(); var tokenResp = client.OAuth2.GetToken(code); client.AccessToken = tokenResp.Access_Token; tokenResp = client.OAuth2.RefreshToken(tokenResp.Refresh_Token); client.AccessToken = tokenResp.Access_Token; AccountSample(client); #endregion //FormDirectSample(client); //FormFillerSample(client); FormFillerSample_EmbeddedSigning(client); //SmartTagSample(client); Console.Read(); }
public static void SmartTagAdvancedUsage2_Embedded(ServiceClient client) { var file = new System.IO.FileInfo(SampleParameters.Path2SmartTagDocument); var documentReference = client.uploadDocumentFile(file); var smartTagResp = client.sendSmartTagDocument(new List<string> { documentReference }, DateTime.Now.AddDays(7), true); var signingKey = smartTagResp[0].Signers[0].SigningKey; //populate signing key into a embedded signing webpage. }
public static void SmartTagAdvancedUsage1_EmailTemplate(ServiceClient client) { var invitationTemplates = client.getInvitationEmailTemplates(); //Let's say there're 2 templates, take the first one var templateReference = invitationTemplates[0].Reference; var file = new System.IO.FileInfo(SampleParameters.Path2SmartTagDocument); var documentReference = client.uploadDocumentFile(file); var smartTagResp = client.sendSmartTagDocument(new List<string> { documentReference }, DateTime.Now.AddDays(7), templateReference); }
static void AccountSample(ServiceClient client) { var account=client.getAccountInfo(); Console.WriteLine($"Hello {account.Name}!"); var documents = client.getActiveDocuments("InBox"); }
public static void FormFillerSample_EmbeddedSigning(ServiceClient client) { //get FormFiller templates var templates = client.getFormFillerTemplates(); //e.g. There're 3 templates. We select the second one. var t2 = templates[1]; //set Signer(s) for template //e.g. There's 1 signer in t2 //[ // { // "SignerReference": "048109...086112", // "FirstName": "", // "LastName": "", // "Email": "" // } //] t2.Signers = client.getFormFillerSignerTemplate(t2.Reference).Signers; t2.Signers[0].FirstName = SampleParameters.Invitee1_FirstName; t2.Signers[0].LastName = SampleParameters.Invitee1_LastName; t2.Signers[0].Email = SampleParameters.Invitee1_Email; //set Field(s) value for template (optional) //e.g. There's 2 fields in t2 //[ // { // "Label": "Question1", // "Value": "", // "FieldType": "Text", // "IsRequired": false, // "ID": "154107214180236225199245158115055014119106193119", // "ReadOnly": true // }, // { // "Label": "Question2", // "Value": "", // "FieldType": "Text", // "IsRequired": false, // "ID": "150138217070090110130118010201151101188219145216", // "ReadOnly": false // } //] var fields = client.getFormFillerFieldTemplate(t2.Reference).Fields; //e.g. We only want to prefill the first field t2.Fields = new List<SecuredSigningClientSdk.Models.FormFillerField>(); var f1 = fields[0]; f1.Value = SampleParameters.FormFillerSampleFieldValue; t2.Fields.Add(f1); //send template(s) var documents = client.sendFormFillerTemplates( templates: new List<SecuredSigningClientSdk.Models.FormFillerTemplate> { t2 }, dueDate: DateTime.Now.AddDays(5), embedded: true); var signingKey = documents.Signers.FirstOrDefault(t => !string.IsNullOrWhiteSpace(t.SigningKey))?.SigningKey; //populate signing key into a embedded signing webpage. //a sample server hosts the embedded signing webpage, implement your own page instead. Console.WriteLine(signingKey); var server = new Server.SampleServer() { SDKClient = client, KeepSecretInServer = true }; System.Diagnostics.Process.Start($"{SampleParameters.EmbeddedSigningUrl}?key={signingKey}"); var runResult = server.StartOnce(); Console.WriteLine("Go to browser to sign the document"); server.Listen(); bool signed = false; while (!signed) { System.Threading.Thread.Sleep(5000); Console.WriteLine("Check document status"); var status = client.getStatus(documents.Documents.First()?.Reference); if (status.Status == "Complete") { signed = true; } } server.Stop(); Console.WriteLine("Done"); Console.Read(); }
public static void FormFillerSample(ServiceClient client) { //get FormFiller templates var templates = client.getFormFillerTemplates(); //e.g. There're 3 templates. We select the first and second one. var t1 = templates[0]; var t2 = templates[1]; //set Signer(s) for template //e.g. There're 2 signers in t1 //[ // { // "SignerReference": "186210...025238", // "FirstName": "", // "LastName": "", // "Email": "" // }, // { // "SignerReference": "023215...001032", // "FirstName": "", // "LastName": "", // "Email": "" // } //] // //and there's 1 signer in t2 //[ // { // "SignerReference": "048109...086112", // "FirstName": "", // "LastName": "", // "Email": "" // } //] t1.Signers = client.getFormFillerSignerTemplate(t1.Reference).Signers; t2.Signers = client.getFormFillerSignerTemplate(t2.Reference).Signers; t1.Signers[0].FirstName = t2.Signers[0].FirstName= SampleParameters.Invitee1_FirstName; t1.Signers[0].LastName = t2.Signers[0].LastName = SampleParameters.Invitee1_LastName; t1.Signers[0].Email = t2.Signers[0].Email= SampleParameters.Invitee1_Email; t1.Signers[1].FirstName = SampleParameters.Invitee2_FirstName; t1.Signers[1].LastName = SampleParameters.Invitee2_LastName; t1.Signers[1].Email = SampleParameters.Invitee2_Email; //set Field(s) value for template (optional) //e.g. There's 2 fields in t2 //[ // { // "Label": "Question1", // "Value": "", // "FieldType": "Text", // "IsRequired": false, // "ID": "154107214180236225199245158115055014119106193119", // "ReadOnly": true // }, // { // "Label": "Question2", // "Value": "", // "FieldType": "Text", // "IsRequired": false, // "ID": "150138217070090110130118010201151101188219145216", // "ReadOnly": false // } //] var fields = client.getFormFillerFieldTemplate(t2.Reference).Fields; //e.g. We only want to prefill the first field t2.Fields = new List<SecuredSigningClientSdk.Models.FormFillerField>(); var f1 = fields[0]; f1.Value = SampleParameters.FormFillerSampleFieldValue; t2.Fields.Add(f1); //send template(s) var documents = client.sendFormFillerTemplates( templates: new List<SecuredSigningClientSdk.Models.FormFillerTemplate> { t1, t2 }, dueDate: DateTime.Now.AddDays(5)); //well done. }