lijin
2025-11-20 df6224a4e27e0dadc648cc51ff362e2d7e24a034
微信消息推送接口
4个文件已修改
1个文件已添加
126 ■■■■ 已修改文件
ApiTools.Application/ApiTools.Application.csproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Application/ApiTools.Application.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Application/WxUtils/Commands/SaveWxCommandHandler.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Core/ApiTools.Core.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Core/Models/WxmpUtils/Commands/SaveWxSendCommand.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Application/ApiTools.Application.csproj
@@ -8,11 +8,6 @@
        <ImplicitUsings>enable</ImplicitUsings>
    </PropertyGroup>
    <ItemGroup>
      <Compile Remove="WxUtils\Commands\SaveWxCommandHandler.cs" />
    </ItemGroup>
    <ItemGroup>
        <None Remove="ApiTools.Application.xml" />
    </ItemGroup>
ApiTools.Application/ApiTools.Application.xml
@@ -279,6 +279,14 @@
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="M:ApiTools.CommonServer.Application.SaveWxCommandHandler.Handle(ApiTools.Core.SaveWxSendCommand,System.Threading.CancellationToken)">
            <summary>
            该接口用于发送订阅消息
            </summary>
            <param name="request"></param>
            <param name="cancellationToken"></param>
            <returns></returns>
        </member>
        <member name="M:ApiTools.CommonServer.Application.SaveWxSettingCommandHandler.Handle(ApiTools.Core.SaveWxSettingCommand,System.Threading.CancellationToken)">
            <summary>
            保存微信配置
ApiTools.Application/WxUtils/Commands/SaveWxCommandHandler.cs
@@ -9,21 +9,28 @@
namespace ApiTools.CommonServer.Application
{
    public class SaveWxCommandHandler(WxmpUtils utils) : IRequestHandler<SaveWxSettingCommand, Guid>
    public class SaveWxCommandHandler(WxmpUtils utils) : IRequestHandler<SaveWxSendCommand, string>
    {
        public async Task<Guid> Handle(SaveWxSettingCommand request, CancellationToken cancellationToken)
        private readonly WxmpUtils utils = utils;
        /// <summary>
        /// 该接口用于发送订阅消息
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<string> Handle(SaveWxSendCommand request, CancellationToken cancellationToken)
        {
            return await utils.WxSend(new SendRequest
            {
                WxmpCode = request.Code,
                WxmpCode = request.WxmpCode,
                EnvVersion = request.EnvVersion,
                template_id = request.t,
                page = request.ChannelCreatedUserId,
                touser = request.ChannelCreatedUserId,
                data =
                miniprogram_state=
                lang=
            }, request.TemplateParam, cancellationToken);
                template_id = request.template_id,
                page = request.page,
                touser = request.touser,
                data = request.data,
                miniprogram_state = request.miniprogram_state,
                lang = request.lang
            });
        }
    }
}
ApiTools.Core/ApiTools.Core.xml
@@ -3073,6 +3073,41 @@
            签名名称
            </summary>
        </member>
        <member name="T:ApiTools.Core.SaveWxSendCommand">
            <summary>
            该接口用于发送订阅消息
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.WxmpCode">
            <summary>
            小程序编号
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.EnvVersion">
            <summary>
            要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.template_id">
            <summary>
            所需下发的订阅模板id
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.page">
            <summary>
            点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.touser">
            <summary>
            接收者(用户)的 openid
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.data">
            <summary>
            模板内容,格式形如{ "phrase3": { "value": "审核通过" }, "name1": { "value": "订阅" }, "date2": { "value": "2019-12-25 09:42" } }
            </summary>
        </member>
        <member name="T:ApiTools.Core.SaveWxSettingCommand">
            <summary>
            保存微信配置
ApiTools.Core/Models/WxmpUtils/Commands/SaveWxSendCommand.cs
New file
@@ -0,0 +1,51 @@
using MediatR;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ApiTools.Core
{
    /// <summary>
    /// 该接口用于发送订阅消息
    /// </summary>
    [Resource([EnumResourceController.CommonServerWxUtils], Method = EnumResourceMethod.Post)]
    public class SaveWxSendCommand : IRequest<string>
    {
        /// <summary>
        /// 小程序编号
        /// </summary>
        public string WxmpCode { get; set; }
        /// <summary>
        /// 要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。
        /// </summary>
        public string EnvVersion { get; set; }
        /// <summary>
        /// 所需下发的订阅模板id
        /// </summary>
        public string template_id { get; set; }
        /// <summary>
        /// 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转
        /// </summary>
        public string page { get; set; }
        /// <summary>
        /// 接收者(用户)的 openid
        /// </summary>
        public string touser { get; set; }
        /// <summary>
        /// 模板内容,格式形如{ "phrase3": { "value": "审核通过" }, "name1": { "value": "订阅" }, "date2": { "value": "2019-12-25 09:42" } }
        /// </summary>
        public object data { get; set; }
        public string miniprogram_state { get; set; }
        public string lang { get; set; }
    }
}