Asp.Net Core微信服务中间件-.NetCore2.1

 又封周末,闲暇无聊,随手写了一个关于微信公众号服务的中间件,基于.NetCore2.1。服务类库采用.Net Standard2.0,兼容.net 4.6.1。

整体思路是,设计一个中间件,提供微信消息推送服务。目前实现了,接收微信消息推送后,根据消息类型,对事件消息和被动接收消息分别进行了处理。

在中间件和服务之间,创建一个服务提供类,拥有提供消息的处理逻辑,开发者,可以实现服务提供接口,完成自己的逻辑。下面,让我们看看关于中间件的代码设计:

这里,我新建了一个名为WeiXinMiddleware的类,代码如下:

复制代码
    /// <summary>    /// <![CDATA[微信中间件]]>    /// </summary>    public class WeiXinMiddleware     {         /// <summary>        ///         /// </summary>        private RequestDelegate Next = null;          /// <summary>        /// <![CDATA[配置]]>        /// </summary>        public IConfiguration Configuration { get; }           /// <summary>        /// <![CDATA[中间件配置信息]]>        /// </summary>        public OAuth.WeiXinServerOptions ServerOptions { get; set; }          /// <summary>        /// <![CDATA[构造]]>        /// </summary>        /// <param name="requestDelegate"></param>        /// <param name="configuration"></param>        public WeiXinMiddleware(RequestDelegate requestDelegate, IConfiguration configuration, OAuth.WeiXinServerOptions serverOptions)         {             Next = requestDelegate;             Configuration = configuration;             ServerOptions = serverOptions;         }          /// <summary>        /// <![CDATA[调用]]>        /// </summary>        /// <param name="context"></param>        /// <returns></returns>        public async Task Invoke(HttpContext context)         {if (context.Request.Path == ServerOptions.NotifyPath)             {                 //微信服务                if (ServerOptions.WeiXinServerProvider == null) ServerOptions.WeiXinServerProvider = (OAuth.IWeiXinServerProvider)context.RequestServices.GetService(typeof(OAuth.IWeiXinServerProvider));                 await ServerOptions.WeiXinServerProvider.Run(context, Configuration);                 return;             }             await Next.Invoke(context);         }     }
复制代码

代码其实很简单,就是在类内部定义一个Invoke任务,再声明一个Next属性,用于请求的下一步处理委托。在中间件的构造函数中,进行了注入,其中有一个

WeiXinServerOptions 类,它便是定义中间件所需的配置信息,也是对外提供的接口,让我们看看具体的代码:
复制代码
 /// <summary>    ///     /// </summary>    public class WeiXinServerOptions     {         /// <summary>        
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信