diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessageChangeEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessageChangeEvent.cs index ed1b4eff..03de8c5d 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessageChangeEvent.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessageChangeEvent.cs @@ -35,19 +35,48 @@ /// /// 获取或设置用户管理订阅通知数据列表。 /// - [Newtonsoft.Json.JsonProperty("List")] - [System.Text.Json.Serialization.JsonPropertyName("List")] + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] [System.Xml.Serialization.XmlElement("List", typeof(Types.EventItem))] public Types.EventItem[] EventList { get; set; } = default!; } } + private readonly object _lockObj = new object(); + /// /// 获取或设置事件数据。 /// - [Newtonsoft.Json.JsonProperty("SubscribeMsgChangeEvent")] - [System.Text.Json.Serialization.JsonPropertyName("SubscribeMsgChangeEvent")] + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] [System.Xml.Serialization.XmlElement("SubscribeMsgChangeEvent")] public Types.EventData EventData { get; set; } = default!; + + /// + /// 获取或设置用户管理订阅通知数据列表。 + /// 等效于 + /// + [Newtonsoft.Json.JsonProperty("List")] + [System.Text.Json.Serialization.JsonPropertyName("List")] + [System.Xml.Serialization.XmlIgnore] + public Types.EventData.Types.EventItem[]? EventDataList + { + get { return this.EventData?.EventList; } + set + { + if (this.EventData == null) + { + lock (_lockObj) + { + if (this.EventData == null) + { + this.EventData = new Types.EventData(); + } + } + } + + this.EventData.EventList = value!; + } + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessagePopupEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessagePopupEvent.cs index 593bfa32..b8a66a4c 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessagePopupEvent.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessagePopupEvent.cs @@ -43,19 +43,48 @@ /// /// 获取或设置用户订阅通知弹窗数据列表。 /// - [Newtonsoft.Json.JsonProperty("List")] - [System.Text.Json.Serialization.JsonPropertyName("List")] + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] [System.Xml.Serialization.XmlElement("List", typeof(Types.EventItem))] public Types.EventItem[] EventList { get; set; } = default!; } } + private readonly object _lockObj = new object(); + /// /// 获取或设置事件数据。 /// - [Newtonsoft.Json.JsonProperty("SubscribeMsgPopupEvent")] - [System.Text.Json.Serialization.JsonPropertyName("SubscribeMsgPopupEvent")] + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] [System.Xml.Serialization.XmlElement("SubscribeMsgPopupEvent")] public Types.EventData EventData { get; set; } = default!; + + /// + /// 获取或设置用户订阅通知弹窗数据列表。 + /// 等效于 + /// + [Newtonsoft.Json.JsonProperty("List")] + [System.Text.Json.Serialization.JsonPropertyName("List")] + [System.Xml.Serialization.XmlIgnore] + public Types.EventData.Types.EventItem[]? EventDataList + { + get { return this.EventData?.EventList; } + set + { + if (this.EventData == null) + { + lock (_lockObj) + { + if (this.EventData == null) + { + this.EventData = new Types.EventData(); + } + } + } + + this.EventData.EventList = value!; + } + } } } diff --git a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessageSentEvent.cs b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessageSentEvent.cs index 487876e7..05945bb9 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessageSentEvent.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.Api/Events/MpSubscribeMessage/SubscribeMessageSentEvent.cs @@ -51,19 +51,48 @@ /// /// 获取或设置发送订阅通知数据列表。 /// - [Newtonsoft.Json.JsonProperty("List")] - [System.Text.Json.Serialization.JsonPropertyName("List")] + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] [System.Xml.Serialization.XmlElement("List", typeof(Types.EventItem))] public Types.EventItem[] EventList { get; set; } = default!; } } + private readonly object _lockObj = new object(); + /// /// 获取或设置事件数据。 /// - [Newtonsoft.Json.JsonProperty("SubscribeMsgSentEvent")] - [System.Text.Json.Serialization.JsonPropertyName("SubscribeMsgSentEvent")] + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] [System.Xml.Serialization.XmlElement("SubscribeMsgSentEvent")] public Types.EventData EventData { get; set; } = default!; + + /// + /// 获取或设置发送订阅通知数据列表。 + /// 等效于 + /// + [Newtonsoft.Json.JsonProperty("List")] + [System.Text.Json.Serialization.JsonPropertyName("List")] + [System.Xml.Serialization.XmlIgnore] + public Types.EventData.Types.EventItem[]? EventDataList + { + get { return this.EventData?.EventList; } + set + { + if (this.EventData == null) + { + lock (_lockObj) + { + if (this.EventData == null) + { + this.EventData = new Types.EventData(); + } + } + } + + this.EventData.EventList = value!; + } + } } } diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpSubscribeMessage/SubscribeMessageChangeEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpSubscribeMessage/SubscribeMessageChangeEvent.json new file mode 100644 index 00000000..8edc4d62 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpSubscribeMessage/SubscribeMessageChangeEvent.json @@ -0,0 +1,13 @@ +{ + "ToUserName": "gh_123456789abc", + "FromUserName": "o7esq5OI1Uej6Xixw1lA2H7XDVbc", + "CreateTime": "1610968440", + "MsgType": "event", + "Event": "subscribe_msg_change_event", + "List": [ + { + "TemplateId": "BEwX0BOT3MqK3Uc5oTU3CGBqzjpndk2jzUf7VfExd8", + "SubscribeStatusString": "reject" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpSubscribeMessage/SubscribeMessagePopupEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpSubscribeMessage/SubscribeMessagePopupEvent.json new file mode 100644 index 00000000..3ab6d23c --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpSubscribeMessage/SubscribeMessagePopupEvent.json @@ -0,0 +1,14 @@ +{ + "ToUserName": "gh_123456789abc", + "FromUserName": "o7esq5OI1Uej6Xixw1lA2H7XDVbc", + "CreateTime": "1620973045", + "MsgType": "event", + "Event": "subscribe_msg_popup_event", + "List": [ + { + "TemplateId": "hD-ixGOhYmUfjOnI8MCzQMPshzGVeux_2vzyvQu7O68", + "SubscribeStatusString": "accept", + "PopupScene": "0" + } + ] +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpSubscribeMessage/SubscribeMessageSentEvent.json b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpSubscribeMessage/SubscribeMessageSentEvent.json new file mode 100644 index 00000000..ef62be52 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.Api.UnitTests/EventSamples/MpSubscribeMessage/SubscribeMessageSentEvent.json @@ -0,0 +1,15 @@ +{ + "ToUserName": "gh_123456789abc", + "FromUserName": "o7esq5PHRGBQYmeNyfG064wEFVpQ", + "CreateTime": "1620963428", + "MsgType": "event", + "Event": "subscribe_msg_sent_event", + "List": [ + { + "TemplateId": "BEwX0BO-T3MqK3Uc5oTU3CGBqzjpndk2jzUf7VfExd8", + "MsgID": "1864323726461255680", + "ErrorCode": "0", + "ErrorStatus": "success" + } + ] +}