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 - - <![CDATA[公众平台官网链接]]> - - - 1234567890123456 + + + 1351776360 + + 23.134521 + 113.358803 + 20 + + 1234567890123456 \ No newline at end of file