/*********************************************************************** * Project: baifenBinfa.Net * * Web: https://baifenBinfa.com * * ProjectName: 百分兵法管理系统 * * Author: * * Email: * * CreateTime: 2020-08-13 23:57:23 * Description: 暂无 ***********************************************************************/ using System.Threading; using System.Threading.Tasks; using CoreCms.Net.Utility.Helper; using CoreCms.Net.WeChat.Service.HttpClients; using CoreCms.Net.WeChat.Service.Models; using MediatR; using SKIT.FlurlHttpClient.Wechat.Api; using SKIT.FlurlHttpClient.Wechat.Api.Events; namespace CoreCms.Net.WeChat.Service.Mediator { /// /// 表示 TEXT 事件的数据 /// public class TextMessageEventCommand : IRequest { public TextMessageEvent EventObj { get; set; } } /// /// 处理TEXT 事件的数据-以被动回复文本消息为例 /// public class TextMessageEventCommandHandler : IRequestHandler { private readonly WeChat.Service.HttpClients.IWeChatApiHttpClientFactory _weChatApiHttpClientFactory; public TextMessageEventCommandHandler(IWeChatApiHttpClientFactory weChatApiHttpClientFactory) { _weChatApiHttpClientFactory = weChatApiHttpClientFactory; } public async Task Handle(TextMessageEventCommand request, CancellationToken cancellationToken) { var jm = new WeChatApiCallBack() { Status = true }; if (request.EventObj != null) { var client = _weChatApiHttpClientFactory.CreateWxOpenClient(); var replyModel = new SKIT.FlurlHttpClient.Wechat.Api.Events.TransferCustomerServiceReply() { ToUserName = request.EventObj.FromUserName, FromUserName = request.EventObj.ToUserName, CreateTimestamp = CommonHelper.GetTimeStampByTotalSeconds() }; var replyXml = client.SerializeEventToXml(replyModel, false); jm.Data = replyXml; } return await Task.FromResult(jm); } } }