Согласно вашему описанию, вы хотите успешно запустить тестовую демонстрацию API DocuSign.
Я предлагаю вам зарегистрировать новую учетную запись DSA, не рекомендуется использовать тестовую учетную запись.
Ссылка для регистрации: https://go.docusign.com/signup/dsa-developer/
Вы можете попробовать следующий код :
Примечание: //D:\\work\\PurchaseOrder.pdf is a self-created pdf
//D:\\work\\PurchaseOrder.DSA-REST-SIGNED.pdf code is generated pdf
stati c void Main (string [] args) {
String baseURL = "https://prime-dsa-devctr.docusign.net:8081";
String resourcePath = "sapiws/v1/digital_signature";
String apiUrl = baseURL + "/" + resourcePath;
var client = new RestClient(apiUrl);
var request = new RestRequest(Method.PUT);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Basic " + DSABasicAuthorizationString("Vtestdemo1@hotmail.com", "testpwd12"));
// "digital_signature" request body as Json formated String (use JavaScriptSerializer or Newtonsoft.Json to build from object)
String DigSigRequestBody =
"{ \"CreateAndSignField\" : " + //structure name specifies the operation / function
"{ \"file\": " + "\"" + File2Base64String("D:\\work\\PurchaseOrder.pdf") + "\", " +
"\"fileType\": \"PDF\", " +
"\"x\": \"91\", " +
"\"y\": \"164\", " +
"\"width\": \"113\", " +
"\"height\": \"38\", " +
"\"page\": \"1\", " +
"\"timeFormat\": \"h:mm:ss\", " +
"\"dateFormat\": \"dd/MM/yyyy\", " +
"\"appearance\": [\"GRAPHICAL_IMAGE\", \"SIGNED_BY\", \"TIME\"]" +
"}" +
"}";
request.AddParameter("application/json", DigSigRequestBody, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
JObject joResponse = JObject.Parse(response.Content);
Base64String2Path(joResponse["signedFile"].Value<string>(), "D:\\work\\PurchaseOrder.DSA-REST-SIGNED.pdf");
Console.WriteLine("success");
Console.ReadKey();
}
private static void Base64String2Path(string Base64String, string FilePath)
{
Byte[] bytes = Convert.FromBase64String(Base64String);
File.WriteAllBytes(FilePath, bytes);
}
private static String File2Base64String(String FilePath)
{
Byte[] bytes = File.ReadAllBytes(FilePath);
String fileB64Data = System.Convert.ToBase64String(bytes);
return fileB64Data;
}
private static String DSABasicAuthorizationString(String username, string password)
{
var DSABasicAuthorizationBytes = System.Text.Encoding.UTF8.GetBytes(username + ":" + password);
return System.Convert.ToBase64String(DSABasicAuthorizationBytes);
}
Ссылка на файл PDF: https://github.com/docusign/docusign-signature-appliance-api-recipes/blob/master/dsa-rest/Hello-World-examples/PurchaceOrder.pdf
Результат: