Skip to content

Commit

Permalink
Merge pull request #2985 from JeffreySu/Developer
Browse files Browse the repository at this point in the history
Developer
  • Loading branch information
JeffreySu committed Jan 16, 2024
2 parents 5f6da57 + ae23b73 commit 858040a
Show file tree
Hide file tree
Showing 6 changed files with 135 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
#region Apache License Version 2.0

/*----------------------------------------------------------------
Copyright 2024 Jeffrey Su & Suzhou Senparc Network Technology Co.,Ltd.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific language governing permissions
and limitations under the License.
Detail: https://github.com/JeffreySu/WeiXinMPSDK/blob/master/license.md
----------------------------------------------------------------*/

#endregion Apache License Version 2.0

/*----------------------------------------------------------------
Copyright (C) 2024 Senparc
文件名:RequestMessageEvent_PublishJobFinish.cs
文件功能描述:公众号文章事件推送发布结果
创建标识:IcedMango - 20240116 增加公众号文章事件推送发布结果实体
----------------------------------------------------------------*/

using Senparc.NeuChar.Entities;
using System;
using System.Collections.Generic;

namespace Senparc.Weixin.MP.Entities
{
// 示例:
// 推送的XML结构成功时示例:
// <xml>
// <ToUserName><![CDATA[gh_4d00ed8d6399]]></ToUserName>
// <FromUserName><![CDATA[oV5CrjpxgaGXNHIQigzNlgLTnwic]]></FromUserName>
// <CreateTime>1481013459</CreateTime>
// <MsgType><![CDATA[event]]></MsgType>
// <Event><![CDATA[PUBLISHJOBFINISH]]></Event>
// <PublishEventInfo>
// <publish_id>2247503051</publish_id>
// <publish_status>0</publish_status>
// <article_id><![CDATA[b5O2OUs25HBxRceL7hfReg-U9QGeq9zQjiDvyWP4Hq4]]></article_id>
// <article_detail>
// <count>1</count>
// <item>
// <idx>1</idx>
// <article_url><![CDATA[ARTICLE_URL]]></article_url>
// </item>
// </article_detail>
// </PublishEventInfo>
// </xml>

// 原创审核不通过时示例:
// <xml>
// <ToUserName><![CDATA[gh_4d00ed8d6399]]></ToUserName>
// <FromUserName><![CDATA[oV5CrjpxgaGXNHIQigzNlgLTnwic]]></FromUserName>
// <CreateTime>1481013459</CreateTime>
// <MsgType><![CDATA[event]]></MsgType>
// <Event><![CDATA[PUBLISHJOBFINISH]]></Event>
// <PublishEventInfo>
// <publish_id>2247503051</publish_id>
// <publish_status>2</publish_status>
// <fail_idx>1</fail_idx>
// <fail_idx>2</fail_idx>
// </PublishEventInfo>
// </xml>

/// <summary>
/// 事件推送发布结果
/// 文档地址: https://developers.weixin.qq.com/doc/offiaccount/Publish/Callback_on_finish.html
/// 由于发布任务提交后,发布任务可能在一定时间后才完成,因此,发布接口调用时,仅会给出发布任务是否提交成功的提示,若发布任务提交成功,则在发布任务结束时,会向开发者在公众平台填写的开发者URL(callback URL)推送事件。
/// </summary>
public class RequestMessageEvent_PublishJobFinish : RequestMessageEventBase, IRequestMessageEventBase
{
public override Event Event
{
get { return Event.PUBLISHJOBFINISH; }
}

/// <summary>
/// PublishEventInfo
/// </summary>
public Publish_Event_Info PublishEventInfo { get; set; }


public RequestMessageEvent_PublishJobFinish()
{
PublishEventInfo = new Publish_Event_Info();
}
}
}
5 changes: 5 additions & 0 deletions src/Senparc.Weixin.MP/Senparc.Weixin.MP/Enums.cs
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,11 @@ public enum Event
/// </summary>
MASSSENDJOBFINISH,

/// <summary>
/// 发布任务结果
/// </summary>
PUBLISHJOBFINISH,

/// <summary>
/// 模板信息发送完成
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@ public override IRequestMessageBase GetRequestEntityMappingResult(RequestMsgType
case "MASSSENDJOBFINISH":
requestMessage = new RequestMessageEvent_MassSendJobFinish();
break;
case "PUBLISHJOBFINISH":
requestMessage = new RequestMessageEvent_PublishJobFinish();
break;
case "TEMPLATESENDJOBFINISH"://模板信息
requestMessage = new RequestMessageEvent_TemplateSendJobFinish();
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ public virtual async Task<IResponseMessageBase> OnEventRequestAsync(IRequestMess
case Event.MASSSENDJOBFINISH://群发消息成功
responseMessage = await OnEvent_MassSendJobFinishRequestAsync(RequestMessage as RequestMessageEvent_MassSendJobFinish).ConfigureAwait(false);
break;
case Event.PUBLISHJOBFINISH://事件推送发布结果
responseMessage = await OnEvent_PublishJobFinishRequestAsync(RequestMessage as RequestMessageEvent_PublishJobFinish).ConfigureAwait(false);
break;
case Event.TEMPLATESENDJOBFINISH://推送模板消息成功
responseMessage = await OnEvent_TemplateSendJobFinishRequestAsync(RequestMessage as RequestMessageEvent_TemplateSendJobFinish).ConfigureAwait(false);
break;
Expand Down Expand Up @@ -320,7 +323,15 @@ public virtual async Task<IResponseMessageBase> OnEvent_MassSendJobFinishRequest
{
return await DefaultAsyncMethod(requestMessage, () => OnEvent_MassSendJobFinishRequest(requestMessage)).ConfigureAwait(false);
}


/// <summary>
/// 发布任务推送结果
/// </summary>
/// <returns></returns>
public virtual async Task<IResponseMessageBase> OnEvent_PublishJobFinishRequestAsync(RequestMessageEvent_PublishJobFinish requestMessage)
{
return await DefaultAsyncMethod(requestMessage, () => OnEvent_PublishJobFinishRequest(requestMessage)).ConfigureAwait(false);
}

/// <summary>
/// 【异步方法】发送模板消息返回结果
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ public virtual IResponseMessageBase OnEventRequest(IRequestMessageEventBase requ
case Event.MASSSENDJOBFINISH://群发消息成功
responseMessage = OnEvent_MassSendJobFinishRequest(RequestMessage as RequestMessageEvent_MassSendJobFinish);
break;
case Event.PUBLISHJOBFINISH://事件推送发布结果
responseMessage = OnEvent_PublishJobFinishRequest(RequestMessage as RequestMessageEvent_PublishJobFinish);
break;
case Event.TEMPLATESENDJOBFINISH://推送模板消息成功
responseMessage = OnEvent_TemplateSendJobFinishRequest(RequestMessage as RequestMessageEvent_TemplateSendJobFinish);
break;
Expand Down Expand Up @@ -319,6 +322,15 @@ public virtual IResponseMessageBase OnEvent_MassSendJobFinishRequest(RequestMess
{
return DefaultResponseMessage(requestMessage);
}

/// <summary>
/// 发布任务推送结果
/// </summary>
/// <returns></returns>
public virtual IResponseMessageBase OnEvent_PublishJobFinishRequest(RequestMessageEvent_PublishJobFinish requestMessage)
{
return DefaultResponseMessage(requestMessage);
}


/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net462;netstandard2.0;netstandard2.1</TargetFrameworks>
<Version>16.20.4</Version>
<Version>16.20.5</Version>
<AssemblyName>Senparc.Weixin.MP</AssemblyName>
<RootNamespace>Senparc.Weixin.MP</RootNamespace>
<GeneratePackageOnBuild Condition=" '$(Configuration)' == 'Release' ">true</GeneratePackageOnBuild>
Expand Down Expand Up @@ -529,7 +529,8 @@
v16.20.1 添加 TemplateApi.AddTemplate() 参数
v16.20.2 fix bug: self menu onfig result. PR #2963 / Issue #2804
v16.20.3 添加 OCR 接口 / PR #2967
</PackageReleaseNotes>
v16.20.5 中间件增加事件推送发布结果类型回调 / PR #2984
</PackageReleaseNotes>
<RepositoryUrl>https://github.com/JeffreySu/WeiXinMPSDK</RepositoryUrl>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
Expand Down

0 comments on commit 858040a

Please sign in to comment.