diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpJob/MassSendJobFinishEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpJob/MassSendJobFinishEvent.cs
index 29a50d5e..0f48edd9 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpJob/MassSendJobFinishEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpJob/MassSendJobFinishEvent.cs
@@ -9,6 +9,172 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
public class MassSendJobFinishEvent : WechatApiEvent, WechatApiEvent.Serialization.IJsonSerializable, WechatApiEvent.Serialization.IXmlSerializable
{
+ public static class Types
+ {
+ public class CopyrightCheckResult
+ {
+ public static class Types
+ {
+ public class CopyrightCheckResultItem
+ {
+ ///
+ /// 获取或设置文章在图文消息中的位置(从 0 开始)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ArticleIdx")]
+ [System.Text.Json.Serialization.JsonPropertyName("ArticleIdx")]
+ [System.Xml.Serialization.XmlElement("ArticleIdx")]
+ public int ArticleIndex { get; set; }
+
+ ///
+ /// 获取或设置用户声明文章的状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("UserDeclareState")]
+ [System.Text.Json.Serialization.JsonPropertyName("UserDeclareState")]
+ [System.Xml.Serialization.XmlElement("UserDeclareState")]
+ public int UserDeclareState { get; set; }
+
+ ///
+ /// 获取或设置系统校验的状态。
+ ///
+ [Newtonsoft.Json.JsonProperty("AuditState")]
+ [System.Text.Json.Serialization.JsonPropertyName("AuditState")]
+ [System.Xml.Serialization.XmlElement("AuditState")]
+ public int AuditState { get; set; }
+
+ ///
+ /// 获取或设置相似原创文的链接。
+ ///
+ [Newtonsoft.Json.JsonProperty("OriginalArticleUrl")]
+ [System.Text.Json.Serialization.JsonPropertyName("OriginalArticleUrl")]
+ [System.Xml.Serialization.XmlElement("OriginalArticleUrl")]
+ public string OriginalArticleUrl { get; set; } = default!;
+
+ ///
+ /// 获取或设置相似原创文的类型。
+ ///
+ [Newtonsoft.Json.JsonProperty("OriginalArticleType")]
+ [System.Text.Json.Serialization.JsonPropertyName("OriginalArticleType")]
+ [System.Xml.Serialization.XmlElement("OriginalArticleType")]
+ public int OriginalArticleType { get; set; }
+
+ ///
+ /// 获取或设置是否能转载。
+ ///
+ [Newtonsoft.Json.JsonProperty("CanReprint")]
+ [System.Text.Json.Serialization.JsonPropertyName("CanReprint")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]
+ [System.Xml.Serialization.XmlElement("CanReprint")]
+ public bool CanReprint { get; set; }
+
+ ///
+ /// 获取或设置是否需要替换成原创文内容。
+ ///
+ [Newtonsoft.Json.JsonProperty("NeedReplaceContent")]
+ [System.Text.Json.Serialization.JsonPropertyName("NeedReplaceContent")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]
+ [System.Xml.Serialization.XmlElement("NeedReplaceContent")]
+ public bool RequireReplaceContent { get; set; }
+
+ ///
+ /// 获取或设置是否需要注明转载来源。
+ ///
+ [Newtonsoft.Json.JsonProperty("NeedShowReprintSource")]
+ [System.Text.Json.Serialization.JsonPropertyName("NeedShowReprintSource")]
+ [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.NumericalBooleanConverter))]
+ [System.Xml.Serialization.XmlElement("NeedShowReprintSource")]
+ public bool RequireShowReprintSource { get; set; }
+ }
+
+ public class CopyrightCheckResultList
+ {
+ ///
+ /// 获取或设置校验结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("item")]
+ [System.Text.Json.Serialization.JsonPropertyName("item")]
+ [System.Xml.Serialization.XmlArrayItem("item", Type = typeof(CopyrightCheckResultItem))]
+ public CopyrightCheckResultItem[] Items { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置校验数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("Count")]
+ [System.Text.Json.Serialization.JsonPropertyName("Count")]
+ [System.Xml.Serialization.XmlElement("Count")]
+ public int CheckCount { get; set; }
+
+ ///
+ /// 获取或设置整体校验结果。
+ ///
+ [Newtonsoft.Json.JsonProperty("CheckState")]
+ [System.Text.Json.Serialization.JsonPropertyName("CheckState")]
+ [System.Xml.Serialization.XmlElement("CheckState")]
+ public int CheckState { get; set; }
+
+ ///
+ /// 获取或设置校验结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("ResultList")]
+ [System.Text.Json.Serialization.JsonPropertyName("ResultList")]
+ [System.Xml.Serialization.XmlElement("ResultList", Type = typeof(Types.CopyrightCheckResultList))]
+ public Types.CopyrightCheckResultList ResultList { get; set; } = default!;
+ }
+
+ public class ArticleUrlResult
+ {
+ public static class Types
+ {
+ public class ArticleUrlResultItem
+ {
+ ///
+ /// 获取或设置文章在图文消息中的位置(从 0 开始)。
+ ///
+ [Newtonsoft.Json.JsonProperty("ArticleIdx")]
+ [System.Text.Json.Serialization.JsonPropertyName("ArticleIdx")]
+ [System.Xml.Serialization.XmlElement("ArticleIdx")]
+ public int ArticleIndex { get; set; }
+
+ ///
+ /// 获取或设置文章链接。
+ ///
+ [Newtonsoft.Json.JsonProperty("ArticleUrl")]
+ [System.Text.Json.Serialization.JsonPropertyName("ArticleUrl")]
+ [System.Xml.Serialization.XmlElement("ArticleUrl")]
+ public string ArticleUrl { get; set; } = default!;
+ }
+
+ public class ArticleUrlResultList
+ {
+ ///
+ /// 获取或设置校验结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("item")]
+ [System.Text.Json.Serialization.JsonPropertyName("item")]
+ [System.Xml.Serialization.XmlArrayItem("item", Type = typeof(ArticleUrlResultItem))]
+ public ArticleUrlResultItem[] Items { get; set; } = default!;
+ }
+ }
+
+ ///
+ /// 获取或设置文章数量。
+ ///
+ [Newtonsoft.Json.JsonProperty("Count")]
+ [System.Text.Json.Serialization.JsonPropertyName("Count")]
+ [System.Xml.Serialization.XmlElement("Count")]
+ public int ArticleCount { get; set; }
+
+ ///
+ /// 获取或设置发送结果列表。
+ ///
+ [Newtonsoft.Json.JsonProperty("ResultList")]
+ [System.Text.Json.Serialization.JsonPropertyName("ResultList")]
+ [System.Xml.Serialization.XmlElement("ResultList", Type = typeof(Types.ArticleUrlResultList))]
+ public Types.ArticleUrlResultList ResultList { get; set; } = default!;
+ }
+ }
+
///
/// 获取或设置消息 ID。
///
@@ -56,5 +222,21 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
[System.Text.Json.Serialization.JsonPropertyName("ErrorCount")]
[System.Xml.Serialization.XmlElement("ErrorCount")]
public int ErrorCount { get; set; }
+
+ ///
+ /// 获取或设置版权校验结果信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("CopyrightCheckResult")]
+ [System.Text.Json.Serialization.JsonPropertyName("CopyrightCheckResult")]
+ [System.Xml.Serialization.XmlElement("CopyrightCheckResult", IsNullable = true)]
+ public Types.CopyrightCheckResult? CopyrightCheckResult { get; set; }
+
+ ///
+ /// 获取或设置文章发送结果信息。
+ ///
+ [Newtonsoft.Json.JsonProperty("ArticleUrlResult")]
+ [System.Text.Json.Serialization.JsonPropertyName("ArticleUrlResult")]
+ [System.Xml.Serialization.XmlElement("ArticleUrlResult", IsNullable = true)]
+ public Types.ArticleUrlResult? ArticleUrlResult { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpReply/NewsMessageReply.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpReply/NewsMessageReply.cs
index 5bf7a4c2..a8b5b70d 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpReply/NewsMessageReply.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpReply/NewsMessageReply.cs
@@ -43,7 +43,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
/// 获取或设置图文列表。
///
- [System.Xml.Serialization.XmlElement("item", Type = typeof(ArticleItem))]
+ [System.Xml.Serialization.XmlArrayItem("item", Type = typeof(ArticleItem))]
public ArticleItem[] Items { get; set; } = new ArticleItem[0];
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppAuthorizationApplyEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppAuthorizationApplyEvent.cs
index 9b52db23..c18782eb 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppAuthorizationApplyEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppAuthorizationApplyEvent.cs
@@ -25,6 +25,12 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
[System.Xml.Serialization.XmlElement("mp_appid")]
public string MediaPlatformAppId { get; set; } = default!;
+ ///
+ /// 获取或设置操作时间字符串(格式:yyyy-MM-dd HH:mm)。
+ ///
+ [System.Xml.Serialization.XmlElement("operation_time")]
+ public string OperateTimeString { get; set; } = default!;
+
///
/// 获取或设置错误码。
///
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppVerifyApplyEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppVerifyApplyEvent.cs
index 98261c8b..d3fa8e70 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppVerifyApplyEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppVerifyApplyEvent.cs
@@ -25,6 +25,12 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
[System.Xml.Serialization.XmlElement("mp_appid")]
public string MediaPlatformAppId { get; set; } = default!;
+ ///
+ /// 获取或设置操作时间字符串(格式:yyyy-MM-dd HH:mm)。
+ ///
+ [System.Xml.Serialization.XmlElement("operation_time")]
+ public string OperateTimeString { get; set; } = default!;
+
///
/// 获取或设置错误码。
///
@@ -34,7 +40,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
/// 获取或设置错误信息。
///
- [System.Xml.Serialization.XmlElement("msg")]
+ [System.Xml.Serialization.XmlElement("msg", IsNullable = true)]
public string? ErrorMessage { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppVerifyEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppVerifyEvent.cs
index c9792c56..997c46af 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppVerifyEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/BetaAppVerifyEvent.cs
@@ -25,6 +25,12 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
[System.Xml.Serialization.XmlElement("mp_appid")]
public string MediaPlatformAppId { get; set; } = default!;
+ ///
+ /// 获取或设置操作时间字符串(格式:yyyy-MM-dd HH:mm)。
+ ///
+ [System.Xml.Serialization.XmlElement("operation_time")]
+ public string OperateTimeString { get; set; } = default!;
+
///
/// 获取或设置错误码。
///
@@ -34,7 +40,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
/// 获取或设置错误信息。
///
- [System.Xml.Serialization.XmlElement("msg")]
+ [System.Xml.Serialization.XmlElement("msg", IsNullable = true)]
public string? ErrorMessage { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/WeappAuditDelayEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/WeappAuditDelayEvent.cs
index 67587c9b..cdb80162 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/WeappAuditDelayEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/WeappAuditDelayEvent.cs
@@ -14,5 +14,11 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
[System.Xml.Serialization.XmlElement("DelayTime")]
public long DelayTimestamp { get; set; }
+
+ ///
+ /// 获取或设置审核拒绝原因。
+ ///
+ [System.Xml.Serialization.XmlElement("Reason", IsNullable = true)]
+ public string? RejectReason { get; set; }
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/WxaAppealRecordEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/WxaAppealRecordEvent.cs
index d065bd53..d19abcbf 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/WxaAppealRecordEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenComponent/WxaAppealRecordEvent.cs
@@ -52,7 +52,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
/// 获取或设置证明材料 MediaId 列表。
///
- [System.Xml.Serialization.XmlElement("proof_material_id", Type = typeof(string))]
+ [System.Xml.Serialization.XmlArrayItem("proof_material_id", Type = typeof(string))]
public string[] ProofMediaIdList { get; set; } = default!;
}
}
@@ -90,7 +90,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
/// 获取或设置申诉材料列表。
///
- [System.Xml.Serialization.XmlElement("material", Type = typeof(Types.Material), IsNullable = true)]
+ [System.Xml.Serialization.XmlArrayItem("material", Type = typeof(Types.Material), IsNullable = true)]
public Types.Material[]? MaterialList { get; set; }
///
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductSceneGroupAuditEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductSceneGroupAuditEvent.cs
index a3412e4e..f6d2fb8d 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductSceneGroupAuditEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/OpenProduct/OpenProductSceneGroupAuditEvent.cs
@@ -48,7 +48,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
[Newtonsoft.Json.JsonProperty("group_id")]
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
- [System.Xml.Serialization.XmlElement("status")]
+ [System.Xml.Serialization.XmlElement("group_id")]
public int GroupId { get; set; }
///
@@ -72,7 +72,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
[Newtonsoft.Json.JsonProperty("scene_group_ext_list")]
[System.Text.Json.Serialization.JsonPropertyName("scene_group_ext_list")]
- [System.Xml.Serialization.XmlElement("scene_group_ext_list", Type = typeof(Types.SceneGroupExtra))]
+ [System.Xml.Serialization.XmlArrayItem("scene_group_ext_list", Type = typeof(Types.SceneGroupExtra))]
public Types.SceneGroupExtra[] SceneGroupExtraList { get; set; } = default!;
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/AddExpressPathEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/AddExpressPathEvent.cs
index 8b9b059c..e42d145a 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/AddExpressPathEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/AddExpressPathEvent.cs
@@ -84,7 +84,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
[Newtonsoft.Json.JsonProperty("Actions")]
[System.Text.Json.Serialization.JsonPropertyName("Actions")]
- [System.Xml.Serialization.XmlElement("Actions", Type = typeof(Types.Action))]
+ [System.Xml.Serialization.XmlArrayItem("Actions", Type = typeof(Types.Action))]
public Types.Action[] ActionList { get; set; } = default!;
}
}
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/AddWaybillEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/AddWaybillEvent.cs
index 4870620f..bcd8b544 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/AddWaybillEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/AddWaybillEvent.cs
@@ -167,7 +167,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
[Newtonsoft.Json.JsonProperty("DetailList")]
[System.Text.Json.Serialization.JsonPropertyName("DetailList")]
- [System.Xml.Serialization.XmlElement("DetailList", Type = typeof(Types.GoodsDetail))]
+ [System.Xml.Serialization.XmlArrayItem("DetailList", Type = typeof(Types.GoodsDetail))]
public Types.GoodsDetail[]? GoodsDetailList { get; set; }
}
@@ -246,9 +246,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
/// 获取或设置商户订单号。
///
- [Newtonsoft.Json.JsonProperty("OrderId")]
- [System.Text.Json.Serialization.JsonPropertyName("OrderId")]
- [System.Xml.Serialization.XmlElement("OrderId")]
+ [Newtonsoft.Json.JsonProperty("OrderID")]
+ [System.Text.Json.Serialization.JsonPropertyName("OrderID")]
+ [System.Xml.Serialization.XmlElement("OrderID")]
public string OrderId { get; set; } = default!;
///
diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/CancelWaybillEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/CancelWaybillEvent.cs
index 30974a8f..acf0d2c6 100644
--- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/CancelWaybillEvent.cs
+++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/WxaExpress/CancelWaybillEvent.cs
@@ -36,9 +36,9 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Events
///
/// 获取或设置商户订单号。
///
- [Newtonsoft.Json.JsonProperty("OrderId")]
- [System.Text.Json.Serialization.JsonPropertyName("OrderId")]
- [System.Xml.Serialization.XmlElement("OrderId")]
+ [Newtonsoft.Json.JsonProperty("OrderID")]
+ [System.Text.Json.Serialization.JsonPropertyName("OrderID")]
+ [System.Xml.Serialization.XmlElement("OrderID")]
public string OrderId { get; set; } = default!;
///
diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpMessage/LocationMessageEvent.xml b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpMessage/LocationMessageEvent.xml
index c5497ffc..04aa6cb8 100644
--- a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpMessage/LocationMessageEvent.xml
+++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpMessage/LocationMessageEvent.xml
@@ -1,10 +1,11 @@
-
-
- 1351776360
-
-
-
-
- 1234567890123456
+
+
+ 1351776360
+
+ 23.134521
+ 113.358803
+ 20
+
+ 1234567890123456
\ No newline at end of file