using Aop.Api.Domain; using ApiTools.Core; using log4net.Core; using MediatR; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ApiTools.Application { public class WxmpSubscribMessageCommandHandler( ILogger logger, WxmpUtils utils, IHttpContextAccessor httpContextAccessor ) : IRequestHandler, IRequestHandler { private readonly ILogger logger = logger; private readonly WxmpUtils utils = utils; private readonly IHttpContextAccessor httpContextAccessor = httpContextAccessor; /// /// 微信小程序发送订阅消息 /// /// /// /// public async Task Handle(SendWxmpSubscribMessageCommand request, CancellationToken cancellationToken) { await utils.WxmpSendSubscribMessage(new WxmpSendSubscribMessageRequest { Data = request.Data, TemplateId = request.TemplateId, Page = request.Page, WxmpCode = request.WxmpCode, Touser = request.Touser, }); return Guid.Empty; } /// /// 微信小程序订阅消息通知 /// /// /// /// public async Task Handle(WxmpSubscribMessageNotifyCommand request, CancellationToken cancellationToken) { var req = httpContextAccessor.HttpContext.Request; logger.LogInformation($"微信小程序订阅消息通知query:{req.QueryString.Value}"); req.EnableBuffering(); req.Body.Position = 0; using var reader = new StreamReader(req.Body, Encoding.UTF8, leaveOpen: true); var body = await reader.ReadToEndAsync(); logger.LogInformation($"微信小程序订阅消息通知body:{body}"); req.Body.Position = 0; return true; } } }