/// <summary> /// 执行具体消息处理委托 /// </summary> /// <returns></returns> private async Task <WechatChatContext> ExecuteProcessor(string appId, string recMsgXml, IDictionary <string, string> recMsgDirs, InternalBaseProcessor processor) { var recMsg = processor.CreateRecMsg(); recMsg.LoadMsgDirs(recMsgDirs); recMsg.RecMsgXml = recMsgXml; recMsg.AppId = appId; var msgContext = new WechatChatContext { RecMsg = recMsg }; var pTask = processor.InternalExecute(recMsg); if (pTask != null) { msgContext.ReplyMsg = await pTask; } if (msgContext.ReplyMsg == null) { msgContext.ReplyMsg = (await ProcessUnknowMsg(recMsg)) ?? WechatNoneReplyMsg.None; } msgContext.ReplyMsg.ToUserName = recMsg.FromUserName; msgContext.ReplyMsg.FromUserName = recMsg.ToUserName; msgContext.ReplyMsg.CreateTime = DateTime.Now.ToUtcSeconds(); return(msgContext); }
/// <summary> /// 执行结束方法 /// </summary> /// <param name="msgContext"></param> protected virtual Task ProcessEnd(WechatChatContext msgContext) { return(Task.CompletedTask); }