C#.Net调用DocuSign接口如何将reason标签内容置入签名框内
DocuSign签名位置配置调整方案
适配需求说明
- 不再使用
appearance标签绑定逻辑 - 直接将
reason存储的用户信息写入签名框内部 - 适配客户提供的已预标注多同页签名位置的DocuSign文档
核心配置修改点
- 移除原有代码中全部
appearance相关字段,避免原有绑定逻辑干扰 - 将
Flags参数值从0调整为8,该参数对应官方「将Reason内容直接渲染到签名展示区域」的配置规则 - 若文档已提前通过DocuSign标注好签名字段,可直接删除
x/y/width/height等坐标参数,仅需将SigFieldName的值和文档内预定义的签名字段名称一一对应即可,接口会自动匹配对应签名位置
修改后核心代码示例
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"; 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" 请求体为JSON格式字符串(可使用JavaScriptSerializer或Newtonsoft.Json从对象构建) String DigSigRequestBody = "{ \"CreateAndSignField\" : " + // 结构名指定操作类型 "{ \"file\": " + "\"" + File2Base64String("c:\\tmp\\PurchaseOrder.pdf") + "\", " + "\"fileType\": \"PDF\", " + "\"page\": \"1\", " + "\"timeFormat\": \"h:mm:ss\", " + "\"dateFormat\": \"dd/MM/yyyy\", " + "\"SigFieldName\": \"Employee\", " + "\"Reason\": \"" + REASON + "\", " + "\"Flags\": \"8\", " + "\"RetFileMode\": \"0\", " + "\"RetSigFieldMode\": \"0\"" + "}" + "}"; 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); } } }
内容的提问来源于stack exchange,提问作者Sudeep
相关产品推荐
相关产品推荐

