using Ds.Module.WeChat.Models; using Ds.Module.WeChat.Service; using DS.Module.Nuget; using MediatR; using SKIT.FlurlHttpClient.Wechat.Api; using SKIT.FlurlHttpClient.Wechat.Work.Events; namespace Ds.Module.WeChat.Mediator { /// /// 表示 TEXT 事件的数据 /// public class VoiceMessageEventCommand : IRequest { public VoiceMessageEvent EventObj { get; set; } } /// /// 处理TEXT 事件的数据-以被动回复文本消息为例 /// public class VoiceMessageEventCommandHandler : IRequestHandler { private readonly IWeChatApiHttpClientFactory _weChatApiHttpClientFactory; public VoiceMessageEventCommandHandler(IWeChatApiHttpClientFactory weChatApiHttpClientFactory) { _weChatApiHttpClientFactory = weChatApiHttpClientFactory; } public async Task Handle(VoiceMessageEventCommand 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); jm.Data = replyXml; } return await Task.FromResult(jm); } } }