DSocuSign Reminders & NOtifications - notifications

I have enabled reminders and expiration in DocuSign. But when a document is sent to a user, it does not seem to work.
I'm using SOAP APIs on C#.
DocuSignAPI.Notification ntf = new DocuSignAPI.Notification();
DocuSignAPI.Reminders rem = new DocuSignAPI.Reminders();
rem.ReminderEnabled = true;
rem.ReminderEnabled = true;
rem.ReminderDelay = 5;
rem.ReminderFrequency = 3;
DocuSignAPI.Expirations exp = new DocuSignAPI.Expirations();
exp.ExpireEnabled = true;
exp.ExpireAfter = 90;
exp.ExpireWarn = 3;

I set the values to 2016 and noticed that expiration was working but reminders are not. After sending the documents, I could not see the reminders set on the DS web site, if I tried to correct the document.

Related

PKCE flow Error code: 500 code challenge required

I'm trying to get the PKCE example to work, but I keep hitting
Error code: 500
Error: invalid_request : code challenge required
Here's a sample url, it does include a code_challenge param generated with the example code.
https://login.xero.com/identity/connect/authorize
?client_id=XXX
&response_type=code
&scope=openid%20profile%20email%20offline_access%20files%20accounting.transactions%20accounting.contacts&redirect_uri=https%3A%2F%2Flocalhost%3A5001%2F
&code_challenge=tj6n3SLd6FZ8g6jjSJYvfC--4r2PHGnpbSGTwIreNqQ
&code_challenge_method=S256
The registered app is a PKCE flow, kind of out of options what it could be.
Here's the code I use, the only changes are the last 2 lines where I launch the browser a I'm connecting from a desktop app. Tried pasting the generated url into the browser directly but that also didn't work.
XeroConfiguration xconfig = new XeroConfiguration();
xconfig.ClientId = "XXX";
xconfig.CallbackUri = new Uri("https://localhost:5001"); //default for standard webapi template
xconfig.Scope = "openid profile email offline_access files accounting.transactions accounting.contacts";
//xconfig.State = "YOUR_STATE"
var client = new XeroClient(xconfig);
// generate a random codeVerifier
var validChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~";
Random random = new Random();
int charsLength = random.Next(43, 128);
char[] randomChars = new char[charsLength];
for (int i = 0; i < charsLength; i++) {
randomChars[i] = validChars[random.Next(0, validChars.Length)];
}
string codeVerifier = new String(randomChars);
var uri = client.BuildLoginUriPkce(codeVerifier);
Clipboard.SetText(uri);
System.Diagnostics.Process.Start("explorer.exe", $"\"{uri}\"");

Docusign - Embedded Signing with multiple recipients in single document - ASP.Net Core

I'm trying to implement docusign with embedded signing approach in ASP.Net Core using DocuSign.eSign.dll (3.0.1). I have been able to do it with single recipient but now I want that document to be signed by multiple recipients. Does anyone has working example who can share?
Thank you in advance!
I do have an example for you, but using node.JS and not C#, it's the same thing, just translate it to your lang. You can actually either see the live code here -https://loancosample.esigndemos.com and select the right most option (sailboat loan).
The source code is here - https://github.com/docusign/sample-app-loanco-nodejs. The specific one you looking for is here - https://github.com/docusign/sample-app-loanco-nodejs/blob/master/routes/loan-sailboat.js and I can copy/paste here the relevant code:
// Recipients
var signer = new docusign.Signer();
signer.routingOrder = 1;
signer.email = body.inputEmail;
signer.name = body.inputFirstName + ' ' + body.inputLastName;
signer.recipientId = '1';
signer.excludedDocuments = ['3'];
if(body.inputSigningLocation == 'embedded'){
signer.clientUserId = '1001';
}
if(body.inputAccessCode && body.inputAccessCode.length){
signer.accessCode = body.inputAccessCode;
}
if(body.inputAuthentication == 'phone'){
app.helpers.addPhoneAuthToRecipient(signer, body.inputPhone);
}
var appraiserSigner = new docusign.Signer();
appraiserSigner.routingOrder = 2;
appraiserSigner.email = body.inputAppraiserEmail;
appraiserSigner.name = body.inputAppraiserFirstName + ' ' + body.inputAppraiserLastName;
appraiserSigner.recipientId = '2';

sending email to multiple accounts using php ews

The below code is used for sending email using jamesiarmes/php-ews
in my application
$request = new \jamesiarmes\PhpEws\Request\CreateItemType();
$request->MessageDisposition = "SendOnly";
$request->SavedItemFolderId->DistinguishedFolderId->Id = "sentitems";
$request->Items->Message->ItemClass = "IPM.Note";
$request->Items->Message->Subject = "exchange new mail";
$request->Items->Message->Body->BodyType = 'HTML';
$request->Items->Message->Body->_ = "This is a test mail as a part of exchange settings set up ";
$request->Items->Message->ToRecipients->Mailbox->EmailAddress = "rejith.rj#pitsolutions.com";
$response = $this->app['ews']->CreateItem($request);
But the problem is I can add only one email address as recipient, how can I add multiple email addresses in ToRecipients?
I checked out the php-ews documentation. You can create an array with multiple recipients this way:
$toAddresses = array();
$toAddresses[0] = new EWSType_EmailAddressType();
$toAddresses[0]->EmailAddress = 'john.harris#domain.com';
$toAddresses[0]->Name = 'John Harris';
$toAddresses[1] = new EWSType_EmailAddressType();
$toAddresses[1]->EmailAddress = 'sara.smith#domain.com';
$toAddresses[1]->Name = 'Sara Smith';
And then add it to your object like this:
$request->Items->Message->ToRecipients = $toAddresses;
Try this and feedback me please.
Seems to me that your problem has not been solve yet?
Following works for me:
$toAddresses = array();
$toAddresses[0]="test#test.com";
$toAddresses[1]="test2#test.com";
$api = MailAPI::withUsernameAndPassword("server", "username", "password");
$message = new Type\MessageType();
$message->setBody('Some Text');
$message->setSubject('Test Subject');
$message->setToRecipients($toAddresses);

EchoSign: Extra signature box appears while sending out to multiple signers

I'm trying to create an url widget using below code to allow the document be signed by multiple signers. But when I upload the document, an extra signature box appears at the beginning, then the remaining signature boxes appear for each email address I mention in the WidgetCreationInfo.CounterSigners property. I need to remove the extra signature box from the document.
var senderInfo = new com.echosign.secure22.SenderInfo();
senderInfo.email = "abx#xyz.com";
senderInfo.password = "******";
var widgetInfo = new com.echosign.secure22.WidgetCreationInfo();
widgetInfo.name = "test widget";
widgetInfo.fileInfos = new EchoSign.com.echosign.secure22.FileInfo[1];
widgetInfo.fileInfos[0] = new EchoSign.com.echosign.secure22.FileInfo();
widgetInfo.fileInfos[0].file = System.IO.File.ReadAllBytes(fileName);
widgetInfo.fileInfos[0].fileName = System.IO.Path.GetFileName(fileName);
widgetInfo.callbackInfo = new com.echosign.secure22.CallbackInfo();
widgetInfo.callbackInfo.signedDocumentUrl = redirectUrl;
widgetInfo.signatureFlow = EchoSign.com.echosign.secure22.SignatureFlow.SENDER_SIGNATURE_NOT_REQUIRED;
widgetInfo.counterSigners = new com.echosign.secure22.RecipientInfo[2];
widgetInfo.counterSigners[0] = new com.echosign.secure22.RecipientInfo();
widgetInfo.counterSigners[0].email = "abc#gmail.com";
widgetInfo.counterSigners[0].role = com.echosign.secure22.RecipientRole.SIGNER;
widgetInfo.counterSigners[0].roleSpecified = true;
widgetInfo.counterSigners[1] = new com.echosign.secure22.RecipientInfo();
widgetInfo.counterSigners[1].email = "xyz#yahoo.com";
widgetInfo.counterSigners[1].role = com.echosign.secure22.RecipientRole.SIGNER;
widgetInfo.counterSigners[1].roleSpecified = true;
var result = ES22.createEmbeddedWidget(apiKey, senderInfo, widgetInfo);
Can anyone please help?
The first signature block is for the widget signer. The rest of the recipients you have added are counter signers and would need to sign once the first signer of the widget signs. If you simply need a document to be signed by multiple signers, you can create a normal agreement instead of a widget. If yow want to host the signing page, you can use eSign services API to retrieve the signing URL of the signers in the agreement. Let me know if this helps.

WCF Client access with Message Contracts

I have a web service , i add some extra class which have message contract and after that it changed the way we access some of the methods( and i have not added message contract to these classes these are data contracts ), earlier i.e before we could create one object for request and response (like see the Before part) we are creating a single object for OrderStatusResponse Class. But if you see now the After(we have to create separate objects for request and response).
is this a side effect of enabling "Always generate message contract?"
Before
SmartConnect.Service1Client Client =
new SmartConnectClient.SmartConnect.Service1Client();
SmartConnect.OrderStatusResponse Status =
new SmartConnectClient.SmartConnect.OrderStatusResponse();
Status.UserID = "1234";
Status.Password = "abcd";
Status.SoftwareKey = "abc";
Status.OrderNumber = "1234";
Status = Client.GetOrderStatus(Status);
lbl_OS.Text = Status.Status.ToString();
lbl_RM.Text = Status.ReturnMessage.ToString();
After
SmartConnectRepublic.SmartConnectClient SmartClient =
new WCF_Client.SmartConnectRepublic.SmartConnectClient();
//SmartConnectRepublic.OrderStatusResponse Status =
new WCF_Client.SmartConnectRepublic.OrderStatusResponse();
WCF_Client.SmartConnectRepublic.GetOrderStatusRequest request =
new WCF_Client.SmartConnectRepublic.GetOrderStatusRequest();
request.status = new WCF_Client.SmartConnectRepublic.OrderStatusResponse();
request.status.OrderNumber = "1055055";
request.status.UserID = "1234";
request.status.Password = "dfsdfsd";
request.status.SoftwareKey = "sdfsdfsdfs";
WCF_Client.SmartConnectRepublic.GetOrderStatusResponse response =
new WCF_Client.SmartConnectRepublic.GetOrderStatusResponse();
response = SmartClient.GetOrderStatus(request);
lbl_Status.Text = response.GetOrderStatusResult.Status;
lbl_RC.Text = response.GetOrderStatusResult.ReturnCode.ToString();
lbl_RM.Text = response.GetOrderStatusResult.ReturnCode.ToString();
Yes, I suspect it is a difference with using message contracts. You seem to have figured it out, though.