From 046a5b945607052b5956208ef112f63b60d15de5 Mon Sep 17 00:00:00 2001
From: James Fan
Date: Wed, 3 Jun 2020 17:57:50 +0800
Subject: [PATCH 1/7] =?UTF-8?q?feature:=20=E6=8F=90=E4=BE=9B=20Json=20?=
=?UTF-8?q?=E5=B7=A5=E5=85=B7=E7=B1=BB=EF=BC=8C=E6=96=B9=E4=BE=BF=E6=B5=8B?=
=?UTF-8?q?=E8=AF=95=E5=BA=94=E7=94=A8=E8=BE=93=E5=87=BA=E4=B8=8E=E8=AF=B7?=
=?UTF-8?q?=E6=B1=82=E6=A0=BC=E5=BC=8F=E4=B8=80=E8=87=B4=E7=9A=84=20JSON?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Sdk/Http/JsonContent.cs | 24 +++--------------------
Sdk/Properties/AssemblyInfo.cs | 6 +++---
Sdk/Sdk.csproj | 1 +
Sdk/Util/Json.cs | 36 ++++++++++++++++++++++++++++++++++
4 files changed, 43 insertions(+), 24 deletions(-)
create mode 100644 Sdk/Util/Json.cs
diff --git a/Sdk/Http/JsonContent.cs b/Sdk/Http/JsonContent.cs
index 28253da..ddb15d6 100644
--- a/Sdk/Http/JsonContent.cs
+++ b/Sdk/Http/JsonContent.cs
@@ -1,8 +1,6 @@
-using Newtonsoft.Json;
-using Newtonsoft.Json.Converters;
-using Newtonsoft.Json.Serialization;
-using System.Net.Http;
+using System.Net.Http;
using System.Text;
+using Signit.Sdk.Util;
namespace Signit.Sdk.Http
{
@@ -10,22 +8,6 @@ namespace Signit.Sdk.Http
{
public JsonContent(object model) : base(ToJson(model), Encoding.UTF8, "application/json") { }
- private static readonly JsonSerializerSettings defaultJsonSettings = CreateDefaultJsonSettings();
-
- private static JsonSerializerSettings CreateDefaultJsonSettings()
- {
- var settings = new JsonSerializerSettings
- {
- ContractResolver = new CamelCasePropertyNamesContractResolver(),
- };
-
- settings.Converters.Add(new StringEnumConverter());
- return settings;
- }
-
- private static string ToJson(object model, JsonSerializerSettings settings = null)
- {
- return JsonConvert.SerializeObject(model, settings ?? defaultJsonSettings);
- }
+ private static string ToJson(object model) => model.ToJson();
}
}
diff --git a/Sdk/Properties/AssemblyInfo.cs b/Sdk/Properties/AssemblyInfo.cs
index 4a7bf64..82825e6 100644
--- a/Sdk/Properties/AssemblyInfo.cs
+++ b/Sdk/Properties/AssemblyInfo.cs
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("SignIt")]
[assembly: AssemblyProduct("Sdk")]
-[assembly: AssemblyCopyright("Copyright © SignIt 2019")]
+[assembly: AssemblyCopyright("Copyright © SignIt 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: AssemblyVersion("1.0.1.0")]
+[assembly: AssemblyFileVersion("1.0.1.0")]
diff --git a/Sdk/Sdk.csproj b/Sdk/Sdk.csproj
index 6417192..4c5a073 100644
--- a/Sdk/Sdk.csproj
+++ b/Sdk/Sdk.csproj
@@ -161,6 +161,7 @@
+
diff --git a/Sdk/Util/Json.cs b/Sdk/Util/Json.cs
new file mode 100644
index 0000000..ba602e0
--- /dev/null
+++ b/Sdk/Util/Json.cs
@@ -0,0 +1,36 @@
+using System;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using Newtonsoft.Json.Serialization;
+
+namespace Signit.Sdk.Util
+{
+ public static class Json
+ {
+ private static readonly JsonSerializerSettings defaultJsonSettings = CreateDefaultJsonSettings();
+
+ private static JsonSerializerSettings CreateDefaultJsonSettings()
+ {
+ var settings = new JsonSerializerSettings
+ {
+ ContractResolver = new CamelCasePropertyNamesContractResolver(),
+ };
+
+ settings.Converters.Add(new StringEnumConverter());
+ return settings;
+ }
+
+ public static string ToJson(this object model, JsonSerializerSettings settings = null)
+ {
+ return JsonConvert.SerializeObject(model, settings ?? defaultJsonSettings);
+ }
+
+ public static string ToJson(this object model, Action configure)
+ {
+ if (configure == null) { return ToJson(model); }
+ var settings = CreateDefaultJsonSettings();
+ configure(settings);
+ return ToJson(model, settings);
+ }
+ }
+}
--
Gitee
From a8424f4d973ebf09b0f614dd8fc4457393cf8223 Mon Sep 17 00:00:00 2001
From: James Fan
Date: Fri, 5 Jun 2020 11:40:38 +0800
Subject: [PATCH 2/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=B1=BB=E5=9E=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Sdk/.editorconfig | 7 ++++++
Sdk/HISTORY.md | 18 +++++++++++++++
Sdk/Types/FormType.cs | 45 +++++++++++++++++--------------------
Sdk/Types/IdCardType.cs | 45 +++++++++++++++++++++++--------------
Sdk/Types/PersonAuthType.cs | 32 ++++++++++++++++++--------
5 files changed, 97 insertions(+), 50 deletions(-)
create mode 100644 Sdk/.editorconfig
create mode 100644 Sdk/HISTORY.md
diff --git a/Sdk/.editorconfig b/Sdk/.editorconfig
new file mode 100644
index 0000000..6e928bc
--- /dev/null
+++ b/Sdk/.editorconfig
@@ -0,0 +1,7 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 4
+end_of_line = lf
diff --git a/Sdk/HISTORY.md b/Sdk/HISTORY.md
new file mode 100644
index 0000000..7f0a1ce
--- /dev/null
+++ b/Sdk/HISTORY.md
@@ -0,0 +1,18 @@
+# 升级历史简要记录
+
+> Ref Repository (Java)
+>
+> - https://github.com/signit-wesign/java-sdk.git
+> - https://github.com/signit-wesign/java-sdk-sample
+
+## v1.0.1 2020-06-05
+
+> *Ref: [java-sdk]: `575a3bc7fcb5e2b817ea1a9fe1e1899d30fe89d2`*
+
+### 已知问题
+
+- 没有 `cn.signit.sdk.type.WebhookEventType`
+
+## v1.0.0 2019-05-26
+
+> *Ref: java-sdk: `c06f5d4156657198d61f8ba7f4816cdf848fa8d6`*
\ No newline at end of file
diff --git a/Sdk/Types/FormType.cs b/Sdk/Types/FormType.cs
index 074c598..bfdf00c 100644
--- a/Sdk/Types/FormType.cs
+++ b/Sdk/Types/FormType.cs
@@ -1,33 +1,30 @@
namespace Signit.Sdk.Types
{
- /**
- *
- * 表单类型枚举.
- *
- * @since 2.0.0
- */
+ ///
+ /// 表单类型枚举.
+ /// @since v1.0
+ ///
public enum FormType
{
-
- /**
- * 印章签名表单域
- */
+ /// 印章签名表单域
SEAL_SIGN,
- /**
- * 手写签名表单域
- */
+
+ /// 手写签名表单域
WRITE_SIGN,
- /**
- * 文本表单域
- */
+
+ /// 文本表单域
TEXT,
- /**
- * 骑缝章表单域
- */
+
+ /// 骑缝章表单域
MULTI_CHECK_MARK,
- /**
- * 二维码骑缝章表单域
- */
- MULTI_QRCODE_MARK
+
+ /// 二维码骑缝章表单域
+ MULTI_QRCODE_MARK,
+
+ ///
+ /// 时间戳表单
+ /// @since v1.1
+ ///
+ DATE,
}
-}
\ No newline at end of file
+}
diff --git a/Sdk/Types/IdCardType.cs b/Sdk/Types/IdCardType.cs
index ae9990f..a81690e 100644
--- a/Sdk/Types/IdCardType.cs
+++ b/Sdk/Types/IdCardType.cs
@@ -1,25 +1,36 @@
namespace Signit.Sdk.Types
{
- /**
- *
- * 身份证类型枚举.
- *
- * @since 1.0.2
- */
+ ///
+ /// 身份证类型枚举
+ /// @since 1.0
+ ///
public enum IdCardType
{
- /**
- * 二代身份证
- */
+ /// 二代身份证
SECOND_GENERATION_IDCARD,
- /**
- * 临时身份证
- */
+
+ /// 临时身份证
TEMPORARY_IDCARD,
- /**
- * 护照
- */
- PASSPORT
+ /// 护照
+ PASSPORT,
+
+ ///
+ /// 香港身份证
+ /// @since v1.1
+ ///
+ HONG_KONG_IDCARD,
+
+ ///
+ /// 澳门身份证
+ /// @since v1.1
+ ///
+ MA_CAO_IDCARD,
+
+ ///
+ /// 台湾身份证
+ /// @since v1.1
+ ///
+ TAI_WAN_IDCARD,
}
-}
\ No newline at end of file
+}
diff --git a/Sdk/Types/PersonAuthType.cs b/Sdk/Types/PersonAuthType.cs
index aa78860..75eb2aa 100644
--- a/Sdk/Types/PersonAuthType.cs
+++ b/Sdk/Types/PersonAuthType.cs
@@ -1,16 +1,30 @@
namespace Signit.Sdk.Types
{
- /**
- * 个人实名认证方式
- *
- * @since 2.1.0
- */
+ ///
+ /// 个人实名认证方式
+ /// @since v1.0
+ ///
public enum PersonAuthType
{
- /**
- * 三网手机号三元素实名认证方式
- */
- PHONE_AUTH
+ /// 三网手机号三元素实名认证方式
+ PHONE_AUTH,
+ ///
+ /// 人脸识别认证方式
+ /// @since v1.1
+ ///
+ FACE_AUTH,
+
+ ///
+ /// 支付宝芝麻认证方式
+ /// @since v1.1
+ ///
+ ZM_AUTH,
+
+ ///
+ /// 三网手机号三元素实名认证+人脸识别认证,双重认证方式
+ /// @since v1.1
+ ///
+ PHONE_FACE_AUTH,
}
}
\ No newline at end of file
--
Gitee
From 5bedecf4ecc9c02d3996093506284228cca78079 Mon Sep 17 00:00:00 2001
From: James Fan
Date: Fri, 5 Jun 2020 14:13:03 +0800
Subject: [PATCH 3/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E7=BB=93=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Sdk/.editorconfig | 2 +
Sdk/Entity/BaseFileData.cs | 14 +-
Sdk/Entity/FileData.cs | 20 ++-
Sdk/Entity/InitialValue.cs | 95 ++++++-----
Sdk/Entity/KeywordPosition.cs | 5 +-
Sdk/Entity/Receiver.cs | 155 +++++++++++-------
.../Enterprise/EnterpriseVerifyRequest.cs | 20 ++-
Sdk/Http/Envelope/EnvelopeBasicInfo.cs | 62 ++++---
Sdk/Http/Webhook/EnvelopeStarted.cs | 26 ++-
Sdk/Http/Webhook/RawDataBasicInfo.cs | 63 +++++--
Sdk/Http/Webhook/WebhookDataBase.cs | 4 +-
Sdk/Sdk.csproj | 2 +
12 files changed, 319 insertions(+), 149 deletions(-)
diff --git a/Sdk/.editorconfig b/Sdk/.editorconfig
index 6e928bc..3dda769 100644
--- a/Sdk/.editorconfig
+++ b/Sdk/.editorconfig
@@ -5,3 +5,5 @@ charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
+trim_trailing_whitespace = true
+
diff --git a/Sdk/Entity/BaseFileData.cs b/Sdk/Entity/BaseFileData.cs
index 47f9b24..9e59168 100644
--- a/Sdk/Entity/BaseFileData.cs
+++ b/Sdk/Entity/BaseFileData.cs
@@ -1,8 +1,20 @@
-namespace Signit.Sdk.Entity
+namespace Signit.Sdk.Entity
{
public class BaseFileData
{
+ ///
+ /// 文件数据 URL 地址
+ ///
public string Url { get; set; }
+
+ ///
+ /// 采用 BASE64 编码的文件内容,支持最大约 10MB 文件数据
+ ///
public string Base64 { get; set; }
+
+ ///
+ /// 文件名
+ ///
+ public string Name { get; set; }
}
}
diff --git a/Sdk/Entity/FileData.cs b/Sdk/Entity/FileData.cs
index ea2c98a..b0814a3 100644
--- a/Sdk/Entity/FileData.cs
+++ b/Sdk/Entity/FileData.cs
@@ -1,13 +1,31 @@
-namespace Signit.Sdk.Entity
+using System;
+
+namespace Signit.Sdk.Entity
{
public class FileData
{
+ ///
+ /// 待签名文件(html/pdf/doc/docx/xls/xlsx/ppt/pptx)的URL地址。
+ /// 注意:如果 Url 和 Base64 同时存在,优先使用 Base64
+ ///
public string Url { get; set; }
+
+ ///
+ /// 待签名文件(html/pdf/doc/docx/xls/xlsx/ppt/pptx)数据的 BASE64 编码,
+ /// 支持最大约 10MB 的文件数据。
+ /// 注意:如果 Url 和 Base64 同时存在,优先使用 Base64
+ ///
public string Base64 { get; set; }
+
+ ///
+ /// 待签名的文件是否转换成单页的形式,否则,默认使用A4尺寸自动进行分页。
+ /// 注:待签名文件为html时该值有效,且此单页最大支持的高度为5000mm
+ ///
public bool EnableSinglePage { get; set; }
public FileData() { }
+ [Obsolete("将在 v1.2 中删除此构造,请使用对象初始化语法代替")]
public FileData(string url)
{
Url = url;
diff --git a/Sdk/Entity/InitialValue.cs b/Sdk/Entity/InitialValue.cs
index e8bf1cc..4a7bcb6 100644
--- a/Sdk/Entity/InitialValue.cs
+++ b/Sdk/Entity/InitialValue.cs
@@ -1,73 +1,80 @@
-using Signit.Sdk.Types;
+using Signit.Sdk.Types;
namespace Signit.Sdk.Entity
{
- /**
- * 签名初始化数据。包含印章数据、手写数据、证书数据、证书签名证书秘钥访问口令、证书类型、 渲染模式、签名地理位置、联系方式、签名是否锁定、签名原因。
- * 印章数据、手写数据仅一个不为空的有效。
- */
+ ///
+ /// 签名初始化数据。包含印章数据、手写数据、证书数据、证书签名证书秘钥访问口令、证书类型、
+ /// 渲染模式、签名地理位置、联系方式、签名是否锁定、签名原因。
+ /// 印章数据、手写数据仅一个不为空的有效。
+ ///
public class InitialValue
{
- /**
- * 印章数据.
- */
+ ///
+ /// 印章数据.
+ ///
public SealData SealData { get; set; }
- /**
- * 手写签名数据.
- */
+ ///
+ /// 手写签名数据.
+ ///
public WriteData WriteData { get; set; }
- /**
- * 证书数据.
- */
+ ///
+ /// 证书数据.
+ ///
public CertData CertData { get; set; }
- /**
- * 证书签名证书密钥访问口令.
- */
+ ///
+ /// 证书签名证书密钥访问口令.
+ ///
public string CertPassin { get; set; }
- /**
- * 证书类型.
- * 对应枚举:CertType
- */
+ ///
+ /// 证书类型.
+ /// 对应枚举:CertType
+ ///
public CertType CertType { get; set; }
- /**
- * 渲染模式. 对应枚举:
- * 对应枚举:RenderMode
- */
+ ///
+ /// 渲染模式. 对应枚举:
+ /// 对应枚举:RenderMode
+ ///
public RenderMode RenderingMode { get; set; } = RenderMode.GRAPHIC;
- /**
- * 签名地理位置.
- */
+ ///
+ /// 签名地理位置.
+ ///
public string Location { get; set; }
- /**
- * 联系方式.
- */
+ ///
+ /// 联系方式.
+ ///
public string Contact { get; set; }
- /**
- * 签名是否锁定.
- */
+ ///
+ /// 签名是否锁定.
+ ///
public bool Locked { get; set; }
- /**
- * 签名原因.
- */
+ ///
+ /// 签名原因.
+ ///
public string Reason { get; set; }
- /**
- * 文本框文本内容
- */
+ ///
+ /// 文本框文本内容
+ ///
public string TextContent { get; set; }
- /**
- * 二维码内容字符串.
- */
+ ///
+ /// 二维码内容字符串.
+ ///
public string QrcodeContent { get; set; }
+
+ ///
+ /// 时间表单的时间戳(单位:毫秒(ms)).
+ /// @since v1.1
+ ///
+ public long Timestamp { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Sdk/Entity/KeywordPosition.cs b/Sdk/Entity/KeywordPosition.cs
index d928c7a..f338530 100644
--- a/Sdk/Entity/KeywordPosition.cs
+++ b/Sdk/Entity/KeywordPosition.cs
@@ -1,4 +1,4 @@
-using Signit.Sdk.Types;
+using Signit.Sdk.Types;
namespace Signit.Sdk.Entity
{
@@ -15,6 +15,9 @@ namespace Signit.Sdk.Entity
public float? Scale { get; set; }
public string Pages { get; set; }
+ public string ReplaceTextAfterLocate { get; set; }
+ public bool DeleteTextAfterLocate { get; set; }
+
///
/// x 方向的便移量 正是往右,负是往左,坐标缩放前进行最后的微调参数
///
diff --git a/Sdk/Entity/Receiver.cs b/Sdk/Entity/Receiver.cs
index 65fcbc5..c311e8b 100644
--- a/Sdk/Entity/Receiver.cs
+++ b/Sdk/Entity/Receiver.cs
@@ -1,85 +1,130 @@
-using Signit.Sdk.Types;
using System.Collections.Generic;
+using Signit.Sdk.Types;
namespace Signit.Sdk.Entity
{
- /**
- * 接收方信息。 包含接收方名字、接收方联系方式、安全等级、接收方类型、 接收方是否必须预分配表单域、设置接收方私人信息、接收方处理顺序、
- * 签署认证等级、接收方所在企业名称、信封自定义元数据信息、预设表单信息.
- */
+ ///
+ /// 接收方信息。 包含接收方名字、接收方联系方式、安全等级、接收方类型、
+ /// 接收方是否必须预分配表单域、设置接收方私人信息、接收方处理顺序、
+ /// 签署认证等级、接收方所在企业名称、信封自定义元数据信息、预设表单信息.
+ ///
public class Receiver
{
- /**
- * 接收方名字.
- */
+ ///
+ /// 接收方名字.
+ ///
public string Name { get; set; }
- /**
- * 接收方联系方式.
- */
+
+ ///
+ /// 接收方联系方式.
+ ///
public Contact Contact { get; set; }
- /**
- * 安全等级.
- *
- * 对应枚举:SecureLevel
- *
- */
+
+ ///
+ /// 安全等级.
+ ///
+ /// 对应枚举:SecureLevel
+ ///
+ ///
public SecureLevel SecureLevel { get; set; }
- /**
- * 接收方类型。 接收方类型:ReceiverType
- *
- */
+
+ ///
+ /// 接收方类型。 接收方类型:ReceiverType
+ ///
+ ///
public ReceiverType Type { get; set; }
- /**
- * 接收方是否必须预分配表单域.
- */
+
+ ///
+ /// 接收方是否必须预分配表单域.
+ ///
public bool NeedForm { get; set; }
- /**
- * 设置接收方私人信息.
- */
+
+ ///
+ /// 设置接收方私人信息.
+ ///
public string AssignedMessage { get; set; }
- /**
- * 接收方处理顺序.
- */
+
+ ///
+ /// 接收方处理顺序.
+ ///
public int AssignedSequence { get; set; }
- /**
- * 接收方所在企业名称.
- */
+ ///
+ /// 接收方所在企业名称.
+ ///
public string EnterpriseName { get; set; }
- /**
- * 信封自定义元数据信息.
- */
+
+ ///
+ /// 信封自定义元数据信息.
+ ///
public string Metadata { get; set; }
- /**
- * 预设表单信息.
- */
+
+ ///
+ /// 预设表单信息.
+ ///
public IList PresetForms { get; set; }
public EnvelopeRoleType RoleType { get; set; }
- /**
- * 流程完成后删除当前参与者的信封。 默认:false
- *
- */
+ ///
+ /// 流程完成后删除当前参与者的信封。 默认:false
+ ///
public bool DeleteCompletedEnvelope { get; set; }
- /**
- * 参与者处理表单各种模式的枚举
- */
+
+ ///
+ /// 参与者处理表单各种模式的枚举
+ ///
public ParticipantHandleMode HandleMode { get; set; }
public IList SelectedAuthTypes { get; set; }
- /**
- * 启用嵌入模式,调用方系统中直接嵌入易企签WEB流程时设置为true,签署流程消息只会通过webhook事件消息方式通知,用户在易企签平台设置的短信/邮件等消息将自动屏蔽。非必填,默认值:false.
- * @since 2.1.0
- */
+ ///
+ /// 启用嵌入模式,调用方系统中直接嵌入易企签WEB流程时设置为true,
+ /// 签署流程消息只会通过webhook事件消息方式通知,用户在易企签平台设置的短信/邮件等消息将自动屏蔽。
+ /// 非必填,默认值:false.
+ ///
public bool EnableEmbeddedMode { get; set; }
- /**
- * 签署接收方用户在调用方系统的唯一标识.
- * enableEmbeddedMode为false时,非必填;当enableEmbeddedMode为true时,则必填。默认:null
- * @since 2.1.0
- */
+ ///
+ /// 签署接收方用户在调用方系统的唯一标识.
+ /// enableEmbeddedMode为false时,非必填;当enableEmbeddedMode为true时,则必填。默认:null
+ ///
public string ClientId { get; set; }
+
+ ///
+ /// 参与者唯一标识.
+ /// @since v1.1
+ ///
+ public string ParticipantWsid { get; set; }
+
+ ///
+ /// 是否是外部.
+ /// @since v1.1
+ ///
+ public bool IsExternal { get; set; }
+
+ ///
+ /// 是否是委托外部.
+ /// @since v1.1
+ ///
+ public bool IsEntrust { get; set; }
+
+ ///
+ /// 是否允许撤销.
+ /// @since v1.1
+ ///
+ public bool AllowRevoke { get; set; }
+
+ ///
+ /// 是否区分顺序.
+ /// @since v1.1
+ ///
+ public bool SequenceSensitive { get; set; }
+
+ ///
+ /// 用户ID.
+ /// @since v1.1
+ ///
+ public string UserWsid { get; set; }
}
}
diff --git a/Sdk/Http/Enterprise/EnterpriseVerifyRequest.cs b/Sdk/Http/Enterprise/EnterpriseVerifyRequest.cs
index 0745b3e..8b1fb47 100644
--- a/Sdk/Http/Enterprise/EnterpriseVerifyRequest.cs
+++ b/Sdk/Http/Enterprise/EnterpriseVerifyRequest.cs
@@ -1,6 +1,6 @@
-using Signit.Sdk.Entity;
-using Signit.Sdk.Types;
using System.Collections.Generic;
+using Signit.Sdk.Entity;
+using Signit.Sdk.Types;
namespace Signit.Sdk.Http.Enterprise
{
@@ -54,6 +54,12 @@ namespace Signit.Sdk.Http.Enterprise
///
public EnterpriseAuthType AuthType { get; set; }
+ ///
+ /// 设置经办人或者法人的个人实名认证方式,默认为:PHONE_AUTH
+ /// @since v1.1
+ ///
+ public List AuthModes { get; set; }
+
///
/// 企业对公银行信息.
///
@@ -63,5 +69,13 @@ namespace Signit.Sdk.Http.Enterprise
/// 额外认证所需照片信息数组.
///
public IList ExtraAuthImages { get; set; }
+
+ ///
+ /// 启用嵌入模式,调用方系统中直接嵌入易企签WEB流程时设置为true,
+ /// 签署流程消息只会通过webhook事件消息方式通知,用户在易企签平台设置的短信/邮件等消息将自动屏蔽。
+ /// 非必填,默认值:false.
+ /// @since v1.1
+ ///
+ public bool EnableEmbeddedMode { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Sdk/Http/Envelope/EnvelopeBasicInfo.cs b/Sdk/Http/Envelope/EnvelopeBasicInfo.cs
index 4ee4af0..9e27e5d 100644
--- a/Sdk/Http/Envelope/EnvelopeBasicInfo.cs
+++ b/Sdk/Http/Envelope/EnvelopeBasicInfo.cs
@@ -1,37 +1,55 @@
-using Signit.Sdk.Types;
+using Signit.Sdk.Types;
namespace Signit.Sdk.Http.Envelope
{
- /**
- * 信封基本信息. 包含信封标题、信封主题、信封类型、信封认证等级、自定义元数据信息.
- */
+ ///
+ /// 信封基本信息. 包含信封标题、信封主题、信封类型、信封认证等级、自定义元数据信息.
+ ///
public class EnvelopeBasicInfo
{
- /**
- * 信封标题.
- */
+ ///
+ /// 信封标题.
+ ///
public string Title { get; set; }
- /**
- * 信封主题.
- */
+ ///
+ /// 信封主题.
+ ///
public string Subject { get; set; }
- /**
- * 信封类型.
- * 对应枚举:EnvelopeType
- */
+ ///
+ /// 信封类型.
+ /// 对应枚举:EnvelopeType
+ ///
public EnvelopeType Type { get; set; }
- /**
- * 信封认证等级.
- * 对应枚举:AuthLevel
- */
+ ///
+ /// 信封认证等级.
+ /// 对应枚举:AuthLevel
+ ///
public AuthLevel AuthLevel { get; set; }
- /**
- * 自定义元数据信息.
- */
+ ///
+ /// 自定义元数据信息.
+ ///
public string Metadata { get; set; }
+
+ ///
+ /// 时间单位:天;如果 `当前时间 > 信封发起时间 + 逾期时间` 后,信封将不可签署
+ /// @since v1.1
+ ///
+ public int Expire { get; set; }
+
+ ///
+ /// 信封ID.
+ /// @since v1.1
+ ///
+ public string EnvelopeWsid { get; set; }
+
+ ///
+ /// 模式.
+ /// @since v1.1
+ ///
+ public string Mode { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/Sdk/Http/Webhook/EnvelopeStarted.cs b/Sdk/Http/Webhook/EnvelopeStarted.cs
index 532a281..5d8215b 100644
--- a/Sdk/Http/Webhook/EnvelopeStarted.cs
+++ b/Sdk/Http/Webhook/EnvelopeStarted.cs
@@ -1,28 +1,40 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
namespace Signit.Sdk.Http.Webhook
{
public class EnvelopeStarted : AbstractWebhookResponse
{
- // 执行的动作对应的URL地址
+ ///
+ /// 执行的动作对应的URL地址
+ ///
public string ActionUrl { get; set; }
- // 流程允许在易企签WEB执行的动作
+ ///
+ /// 流程允许在易企签WEB执行的动作
+ ///
public IList Actions { get; set; }
- // 接收方对应的在易企签的帐号
+ ///
+ /// 接收方对应的在易企签的帐号
+ ///
public string Account { get; set; }
- // 信封基本信息
+ ///
+ /// 信封基本信息
+ ///
public RawDataBasicInfo BasicEnvelope { get; set; }
public Sender SenderParticipant { get; set; }
public Receiver ReceiverParticipant { get; set; }
- // 已完成的签署数据
+ ///
+ /// 已完成的签署数据
+ ///
public SignData SignData { get; set; }
- // 客户端回调地址
+ ///
+ /// 客户端回调地址
+ ///
public string ReturnUrl { get; set; }
}
}
diff --git a/Sdk/Http/Webhook/RawDataBasicInfo.cs b/Sdk/Http/Webhook/RawDataBasicInfo.cs
index a68643c..6df9d8b 100644
--- a/Sdk/Http/Webhook/RawDataBasicInfo.cs
+++ b/Sdk/Http/Webhook/RawDataBasicInfo.cs
@@ -1,31 +1,68 @@
-namespace Signit.Sdk.Http.Webhook
+namespace Signit.Sdk.Http.Webhook
{
- /**
- * 信封基本信息.
- *
- * @since 2.0.0
- */
+ ///
+ /// 信封基本信息.
+ ///
public class RawDataBasicInfo
{
- // 信封全局唯一ID
+ ///
+ /// 信封全局唯一ID
+ ///
public string Wsid { get; set; }
- // 信封状态
+ ///
+ /// 信封发起者ID
+ ///
+ public string SenderWsid { get; set; }
+
+ ///
+ /// 信封发起者名字
+ ///
+ public string SenderName { get; set; }
+
+ ///
+ /// 信封状态
+ ///
public string Status { get; set; }
- // 信封创建时间
+ ///
+ /// 信封类型
+ ///
+ public string Type { get; set; }
+
+ ///
+ /// 信封标题
+ ///
+ public string Title { get; set; }
+
+ ///
+ /// 信封主题
+ ///
+ public string Subject { get; set; }
+
+ ///
+ /// 信封创建时间
+ ///
public long? CreatedDatetime { get; set; }
- // 信封过期时间
+ ///
+ /// 信封过期时间
+ ///
public long? ExpireDatetime { get; set; }
- // 信封最新状态时间
+ ///
+ /// 信封最新状态时间
+ ///
public long? StatusDatetime { get; set; }
- // 信封最新状态原因
+ ///
+ /// 信封最新状态原因
+ ///
public string StatusReason { get; set; }
- // 当前签署方的序号
+ ///
+ /// 当前签署方的序号
+ ///
public int? CurrentSequence { get; set; }
}
}
diff --git a/Sdk/Http/Webhook/WebhookDataBase.cs b/Sdk/Http/Webhook/WebhookDataBase.cs
index e936384..758b81e 100644
--- a/Sdk/Http/Webhook/WebhookDataBase.cs
+++ b/Sdk/Http/Webhook/WebhookDataBase.cs
@@ -1,11 +1,11 @@
-namespace Signit.Sdk.Http.Webhook
+namespace Signit.Sdk.Http.Webhook
{
public class WebhookDataBase
{
public string Event { get; set; }
public SourceType Source { get; set; }
public TargetType Target { get; set; }
- public bool NeedCallback { get; set; }
+ public bool NeedCallBack { get; set; }
public class SourceType
{
diff --git a/Sdk/Sdk.csproj b/Sdk/Sdk.csproj
index 4c5a073..24f3d58 100644
--- a/Sdk/Sdk.csproj
+++ b/Sdk/Sdk.csproj
@@ -168,7 +168,9 @@
+
+
--
Gitee
From d4400f9f17ee654ec8a31a689b8ad9bf5bad1dca Mon Sep 17 00:00:00 2001
From: James Fan
Date: Fri, 5 Jun 2020 14:51:37 +0800
Subject: [PATCH 4/7] =?UTF-8?q?=E4=BD=BF=E7=94=A8=20ThreadLocal=20?=
=?UTF-8?q?=E5=B0=81=E8=A3=85=E9=83=A8=E5=88=86=E6=88=90=E5=91=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Sdk/SignitClient.cs | 49 ++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 44 insertions(+), 5 deletions(-)
diff --git a/Sdk/SignitClient.cs b/Sdk/SignitClient.cs
index 02e1cf2..1ea33bf 100644
--- a/Sdk/SignitClient.cs
+++ b/Sdk/SignitClient.cs
@@ -1,14 +1,41 @@
-using Newtonsoft.Json;
+/**
+ * The MIT License (MIT)
+ *
+ * Copyright (C) 2018 signit.cn
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+using System.Collections.Specialized;
+using System.Threading;
+using Newtonsoft.Json;
using Signit.Sdk.Http;
using Signit.Sdk.Http.Webhook;
using Signit.Sdk.Types;
using Signit.Sdk.Util;
-using System.Collections.Specialized;
-using System.Diagnostics;
using Viyi.Util;
namespace Signit.Sdk
{
+ ///
+ /// 易企签快捷签署 Java SDK的基本操作类.
+ ///
public class SignitClient
{
public static WebhookData ParseWebhookData(string raw)
@@ -31,8 +58,20 @@ namespace Signit.Sdk
//private const Pattern RIGHT_QUOTATION = Pattern.compile("\\}\"");
//private const Pattern BACKLASH_QUOTATION = Pattern.compile("\\\\\"");
- public string BaseUrl { get; set; }
- public string OAuthTokenUrl { get; set; }
+ private ThreadLocal baseUrl = new ThreadLocal();
+ private ThreadLocal oAuthTokenUrl = new ThreadLocal();
+
+ public string BaseUrl
+ {
+ get => baseUrl.Value;
+ set => baseUrl.Value = value;
+ }
+
+ public string OAuthTokenUrl
+ {
+ get => oAuthTokenUrl.Value;
+ set => oAuthTokenUrl.Value = value;
+ }
public SignitClient(ApiOptions options = null) : this(null, null, options) { }
--
Gitee
From 7d0cc2c3c98dfc974c9a5855962177c39308e87a Mon Sep 17 00:00:00 2001
From: James Fan
Date: Fri, 5 Jun 2020 17:13:18 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=B8=80=E4=BA=9B?=
=?UTF-8?q?=E7=BB=86=E8=8A=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Enterprise/EnterpriseVerifyRequest.cs | 2 +-
Sdk/Http/Envelope/EnvelopeBasicInfo.cs | 2 +-
Sdk/Http/HttpClientSync.Response.cs | 31 +++++++++++++++++--
Sdk/Http/Webhook/WebhookDataBase.cs | 2 +-
Sdk/Sdk.csproj | 1 -
Sdk/SignitClient.cs | 7 +++--
Sdk/Types/NamingStyle.cs | 31 -------------------
Sdk/Types/ParticipantHandleMode.cs | 31 +++++++++----------
Sdk/Util/Json.cs | 14 ++++++++-
9 files changed, 64 insertions(+), 57 deletions(-)
delete mode 100644 Sdk/Types/NamingStyle.cs
diff --git a/Sdk/Http/Enterprise/EnterpriseVerifyRequest.cs b/Sdk/Http/Enterprise/EnterpriseVerifyRequest.cs
index 8b1fb47..915eb7f 100644
--- a/Sdk/Http/Enterprise/EnterpriseVerifyRequest.cs
+++ b/Sdk/Http/Enterprise/EnterpriseVerifyRequest.cs
@@ -76,6 +76,6 @@ namespace Signit.Sdk.Http.Enterprise
/// 非必填,默认值:false.
/// @since v1.1
///
- public bool EnableEmbeddedMode { get; set; }
+ public bool? EnableEmbeddedMode { get; set; }
}
}
diff --git a/Sdk/Http/Envelope/EnvelopeBasicInfo.cs b/Sdk/Http/Envelope/EnvelopeBasicInfo.cs
index 9e27e5d..c685ac0 100644
--- a/Sdk/Http/Envelope/EnvelopeBasicInfo.cs
+++ b/Sdk/Http/Envelope/EnvelopeBasicInfo.cs
@@ -38,7 +38,7 @@ namespace Signit.Sdk.Http.Envelope
/// 时间单位:天;如果 `当前时间 > 信封发起时间 + 逾期时间` 后,信封将不可签署
/// @since v1.1
///
- public int Expire { get; set; }
+ public int? Expire { get; set; }
///
/// 信封ID.
diff --git a/Sdk/Http/HttpClientSync.Response.cs b/Sdk/Http/HttpClientSync.Response.cs
index 546d403..9ed173d 100644
--- a/Sdk/Http/HttpClientSync.Response.cs
+++ b/Sdk/Http/HttpClientSync.Response.cs
@@ -1,5 +1,6 @@
-using Newtonsoft.Json;
using System.Net;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
namespace Signit.Sdk.Http
{
@@ -15,7 +16,33 @@ namespace Signit.Sdk.Http
{
return string.IsNullOrWhiteSpace(Content)
? default(T)
- : JsonConvert.DeserializeObject(Content);
+ : FromJson(Content);
+ }
+
+ private T FromJson(string json)
+ {
+ try
+ {
+ var jo = JsonConvert.DeserializeObject(json) as JObject;
+
+ if (jo.ContainsKey("error"))
+ {
+ throw new SignitException(jo
+ .GetValue("error")
+ .Value());
+ }
+
+ if (jo.ContainsKey("errorWsid"))
+ {
+ throw new SignitException(json);
+ }
+
+ return jo.ToObject();
+ }
+ catch (JsonSerializationException jse)
+ {
+ throw new SignitException(jse);
+ }
}
}
}
diff --git a/Sdk/Http/Webhook/WebhookDataBase.cs b/Sdk/Http/Webhook/WebhookDataBase.cs
index 758b81e..ab05580 100644
--- a/Sdk/Http/Webhook/WebhookDataBase.cs
+++ b/Sdk/Http/Webhook/WebhookDataBase.cs
@@ -5,7 +5,7 @@ namespace Signit.Sdk.Http.Webhook
public string Event { get; set; }
public SourceType Source { get; set; }
public TargetType Target { get; set; }
- public bool NeedCallBack { get; set; }
+ public bool? NeedCallBack { get; set; }
public class SourceType
{
diff --git a/Sdk/Sdk.csproj b/Sdk/Sdk.csproj
index 24f3d58..269d1c7 100644
--- a/Sdk/Sdk.csproj
+++ b/Sdk/Sdk.csproj
@@ -153,7 +153,6 @@
-
diff --git a/Sdk/SignitClient.cs b/Sdk/SignitClient.cs
index 1ea33bf..a9690fc 100644
--- a/Sdk/SignitClient.cs
+++ b/Sdk/SignitClient.cs
@@ -33,11 +33,15 @@ using Viyi.Util;
namespace Signit.Sdk
{
+ // TODO 还没有添加重试机制
+
///
/// 易企签快捷签署 Java SDK的基本操作类.
///
public class SignitClient
{
+ private const int MAX_COUNT = 3;
+
public static WebhookData ParseWebhookData(string raw)
{
return JsonConvert.DeserializeObject(raw);
@@ -52,7 +56,6 @@ namespace Signit.Sdk
private readonly ApiOptions options;
//private HttpClientWrapper httpClient;
- //private readonly int MAX_COUNT = 3;
//private readonly AtomicInteger count = new AtomicInteger(MAX_COUNT);
//private const Pattern LEFT_QUOTATION = Pattern.compile("\"\\{");
//private const Pattern RIGHT_QUOTATION = Pattern.compile("\\}\"");
@@ -183,7 +186,7 @@ namespace Signit.Sdk
.Post(BaseUrl, request, headers);
var result = response.GetObject();
- if (!result.IsSuccess)
+ if (result?.IsSuccess != true)
{
result.Error = response.GetObject();
}
diff --git a/Sdk/Types/NamingStyle.cs b/Sdk/Types/NamingStyle.cs
deleted file mode 100644
index 23138ce..0000000
--- a/Sdk/Types/NamingStyle.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-namespace Signit.Sdk.Types
-{
- /**
- * 命名风格的枚举.
- *
- * @author zhd
- * @since 1.0.0
- */
- public enum NamingStyle
- {
- /**
- * 小驼峰命名风格.如:nameStyle
- */
- CAMEL,
-
- /**
- * 字母间均大写命名风格.如:NameStyle
- */
- PASCAL,
-
- /**
- * 字母间均以下划线分隔命名风格(unix命名风格).如:name_style
- */
- SNAKE,
-
- /**
- * 字母间均以连词符分隔命名风格.如:name-style
- */
- KEBAB
- }
-}
diff --git a/Sdk/Types/ParticipantHandleMode.cs b/Sdk/Types/ParticipantHandleMode.cs
index b73840c..ce36477 100644
--- a/Sdk/Types/ParticipantHandleMode.cs
+++ b/Sdk/Types/ParticipantHandleMode.cs
@@ -1,25 +1,22 @@
namespace Signit.Sdk.Types
{
- /**
- * 参与者处理表单的模式枚举
- *
- * @since 2.0.0
- */
+ ///
+ /// 参与者处理表单的模式枚举
+ ///
public enum ParticipantHandleMode
{
- /**
- * 正常处理模式(默认).
- *
- * @since 2.0.0
- */
+ ///
+ /// 正常处理模式(默认).
+ ///
NORMAL,
- /**
- * 静默处理模式.
- * 该接受方不用执行签署流程,自动完成签署。接收方设置为静默签署条件:①接收方类型为签署者SIGNER;②接收方和发起方为同一企业下的同一人;③该接收方有预设表单,且该接收方的预设表单均设置了初始值(手写签名表单除外)。
- *
- * @since 2.0.0
- */
- SILENCE
+ ///
+ /// 静默处理模式。
+ /// 该接受方不用执行签署流程,自动完成签署。接收方设置为静默签署条件:
+ /// - ① 接收方类型为签署者SIGNER;
+ /// - ② 接收方和发起方为同一企业下的同一人;
+ /// - ③ 该接收方有预设表单,且该接收方的预设表单均设置了初始值(手写签名表单除外)。
+ ///
+ SILENCE,
}
}
\ No newline at end of file
diff --git a/Sdk/Util/Json.cs b/Sdk/Util/Json.cs
index ba602e0..a629208 100644
--- a/Sdk/Util/Json.cs
+++ b/Sdk/Util/Json.cs
@@ -1,6 +1,8 @@
-using System;
+using System;
+using System.IO;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
+using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Serialization;
namespace Signit.Sdk.Util
@@ -32,5 +34,15 @@ namespace Signit.Sdk.Util
configure(settings);
return ToJson(model, settings);
}
+
+ public static T FromFile(string filePath)
+ {
+ using (var reader = new StreamReader(filePath))
+ using (var jsonReader = new JsonTextReader(reader))
+ {
+ var jo = JToken.ReadFrom(jsonReader) as JObject;
+ return jo.ToObject();
+ }
+ }
}
}
--
Gitee
From a1239cb4993137e48b79f8c862f2764826f10b06 Mon Sep 17 00:00:00 2001
From: James Fan
Date: Fri, 5 Jun 2020 17:23:03 +0800
Subject: [PATCH 6/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Sdk/Properties/AssemblyInfo.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Sdk/Properties/AssemblyInfo.cs b/Sdk/Properties/AssemblyInfo.cs
index 82825e6..8fca3b9 100644
--- a/Sdk/Properties/AssemblyInfo.cs
+++ b/Sdk/Properties/AssemblyInfo.cs
@@ -1,4 +1,4 @@
-using System.Reflection;
+using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.1.0")]
-[assembly: AssemblyFileVersion("1.0.1.0")]
+[assembly: AssemblyVersion("1.0.2.0")]
+[assembly: AssemblyFileVersion("1.0.2.0")]
--
Gitee
From f9653412ed9396380e803c464ec45a3a1d9e2451 Mon Sep 17 00:00:00 2001
From: James Fan
Date: Fri, 5 Jun 2020 17:24:16 +0800
Subject: [PATCH 7/7] =?UTF-8?q?=E6=9B=B4=E6=AD=A3=E7=89=88=E6=9C=AC?=
=?UTF-8?q?=E5=8F=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Sdk/Properties/AssemblyInfo.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Sdk/Properties/AssemblyInfo.cs b/Sdk/Properties/AssemblyInfo.cs
index 8fca3b9..7418c03 100644
--- a/Sdk/Properties/AssemblyInfo.cs
+++ b/Sdk/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.2.0")]
-[assembly: AssemblyFileVersion("1.0.2.0")]
+[assembly: AssemblyVersion("1.1.1.0")]
+[assembly: AssemblyFileVersion("1.1.1.0")]
--
Gitee