【发布时间】:2021-08-15 07:26:23
【问题描述】:
我对签名位置的查询。 当前方法:现在我们使用外观标签在文档中放置签名。我在原因标签中添加数据并将其与外观标签绑定,并使用“X”和“Y”标签提及位置。 必改:需要在签名框内添加原因标签(用户信息)。我们的客户在同一文档的多个位置提供带有签名框的文档(使用 DocuSign)。我需要在签名框中添加原因标签(用户信息),而不是使用外观标签。我在这里分享代码部分。
using RestSharp;
using System;
using System.IO;
using Newtonsoft.Json.Linq;
namespace DSARestCsharpSample
{
class Program
{
static void Main(string[] args)
{
String baseURL = "https://prime-dsa-devctr.docusign.net:8081%22;
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("{dsa-user-name}", "{dsa-user-password}"));
// "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("c:\\tmp\\PurchaseOrder.pdf") + "\", " +
"\"fileType\": \"PDF\", " +
"\"x\": \"" + DOCUSIGN_X + "\", " +
"\"y\": \"" + DOCUSIGN_Y + "\", " +
"\"width\": \"187\", " +
"\"height\": \"38\", " +
"\"page\": \"1\", " +
"\"timeFormat\": \"h:mm:ss\", " +
"\"dateFormat\": \"dd/MM/yyyy\", " +
"\"appearance\": \"100\", " +
"\"SigFieldName\": \"Employee\", " +
"\"Reason\": \"" + REASON + "\", " +
"\"Flags\": \"0\", " +
"\"RetFileMode\": \"0\", " +
"\"RetSigFieldMode\": \"0\", " +
"\"appearance\": [\"Reason\", \"TIME\"]" +
"}" +
"}";
request.AddParameter("application/json", DigSigRequestBody, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
JObject joResponse = JObject.Parse(response.Content);
Base64String2Path(joResponse["signedFile"].Value<string>(), "c:\\tmp\\PurchaseOrder.DSA-REST-SIGNED.pdf");
}
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);
}
}
}
【问题讨论】:
-
您使用的是 DocuSign 签名设备,是吗?
-
是 @LarryK
标签: c# asp.net-mvc docusignapi