You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#.Net调用DocuSign接口如何将reason标签内容置入签名框内

DocuSign签名位置配置调整方案

适配需求说明

  • 不再使用appearance标签绑定逻辑
  • 直接将reason存储的用户信息写入签名框内部
  • 适配客户提供的已预标注多同页签名位置的DocuSign文档

核心配置修改点

  1. 移除原有代码中全部appearance相关字段,避免原有绑定逻辑干扰
  2. 将Flags参数值从0调整为8,该参数对应官方「将Reason内容直接渲染到签名展示区域」的配置规则
  3. 若文档已提前通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 22:21:01