【问题标题】:C#.Net DocuSign Signature PositionC#.Net DocuSign 签名位置
【发布时间】: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


【解决方案1】:

考虑将“标题”字段用于“附加信息”。 原因字段在PDF中是有意义的,不建议将其用作一般数据信息的容器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多