lijin
2025-11-21 0f9263238c5760267db714bb9fb6f4b86e202b22
签入
5个文件已修改
1个文件已添加
129 ■■■■■ 已修改文件
ApiTools.Application/WxUtils/Commands/SaveWxCommandHandler.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Core/ApiTools.Core.xml 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Core/Enums/WxmpUtils/EnumTemplate.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Core/Models/WxmpUtils/Commands/SaveWxSendCommand.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Core/Utils/WxmpUtils/WxmpGetQrCodeRequest.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ApiTools.Application/WxUtils/Commands/SaveWxCommandHandler.cs
@@ -23,13 +23,13 @@
            return await utils.WxSend(new SendRequest
            {
                WxmpCode = request.WxmpCode,
                EnvVersion = request.EnvVersion,
                template_id = request.template_id,
                page = request.page,
                touser = request.touser,
                data = request.data,
                miniprogram_state = request.miniprogram_state,
                lang = request.lang
                //EnvVersion = request.EnvVersion,
                Template_id = request.Template_id.ToString(),
                Page = request.Page,
                Touser = request.Touser,
                Data = request.Data,
                //miniprogram_state = request.miniprogram_state,
                Lang = request.Lang
            });
        }
    }
ApiTools.Core/ApiTools.Core.xml
@@ -3278,29 +3278,29 @@
            小程序编号
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.EnvVersion">
        <member name="P:ApiTools.Core.SaveWxSendCommand.Template_id">
            <summary>
            要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。
            所需下发的订阅模板id(做成枚举)
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.template_id">
        <member name="P:ApiTools.Core.SaveWxSendCommand.Page">
            <summary>
            所需下发的订阅模板id
            点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转(做到配置文件里面)
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.page">
            <summary>
            点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.touser">
        <member name="P:ApiTools.Core.SaveWxSendCommand.Touser">
            <summary>
            接收者(用户)的 openid
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.data">
        <member name="P:ApiTools.Core.SaveWxSendCommand.Data">
            <summary>
            模板内容,格式形如{ "phrase3": { "value": "审核通过" }, "name1": { "value": "订阅" }, "date2": { "value": "2019-12-25 09:42" } }
            </summary>
        </member>
        <member name="P:ApiTools.Core.SaveWxSendCommand.Lang">
            <summary>
            语言(默认中文)
            </summary>
        </member>
        <member name="T:ApiTools.Core.SaveWxSettingCommand">
@@ -7005,22 +7005,22 @@
            要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。
            </summary>
        </member>
        <member name="P:ApiTools.Core.SendRequest.template_id">
        <member name="P:ApiTools.Core.SendRequest.Template_id">
            <summary>
            所需下发的订阅模板id
            </summary>
        </member>
        <member name="P:ApiTools.Core.SendRequest.page">
        <member name="P:ApiTools.Core.SendRequest.Page">
            <summary>
            点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转
            </summary>
        </member>
        <member name="P:ApiTools.Core.SendRequest.touser">
        <member name="P:ApiTools.Core.SendRequest.Touser">
            <summary>
            接收者(用户)的 openid
            </summary>
        </member>
        <member name="P:ApiTools.Core.SendRequest.data">
        <member name="P:ApiTools.Core.SendRequest.Data">
            <summary>
            模板内容,格式形如{ "phrase3": { "value": "审核通过" }, "name1": { "value": "订阅" }, "date2": { "value": "2019-12-25 09:42" } }
            </summary>
ApiTools.Core/Enums/WxmpUtils/EnumTemplate.cs
New file
@@ -0,0 +1,19 @@
using Furion.FriendlyException;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ApiTools.Core.Enums.WxmpUtils
{
    [ErrorCodeType]
    public enum EnumTemplate
    {
        [ErrorCodeItemMetadata("模板1")]
        Template01 = 01,
        [ErrorCodeItemMetadata("模板2")]
        Template02 = 02,
    }
}
ApiTools.Core/Models/WxmpUtils/Commands/SaveWxSendCommand.cs
@@ -1,4 +1,5 @@
using MediatR;
using ApiTools.Core.Enums.WxmpUtils;
using MediatR;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@@ -20,32 +21,39 @@
        /// </summary>
        public string WxmpCode { get; set; }
        /// <summary>
        /// 要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。
        /// </summary>
        public string EnvVersion { get; set; }
        ///// <summary>
        ///// 要打开的小程序版本。正式版为 "release",体验版为 "trial",开发版为 "develop"。默认是正式版。(读取配置)
        ///// </summary>
        //public string EnvVersion { get; set; }
        /// <summary>
        /// 所需下发的订阅模板id
        /// 所需下发的订阅模板id(做成枚举)
        /// </summary>
        public string template_id { get; set; }
        public EnumTemplate Template_id { get; set; }
        /// <summary>
        /// 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转
        /// 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转(做到配置文件里面)
        /// </summary>
        public string page { get; set; }
        public string Page { get; set; }
        /// <summary>
        /// 接收者(用户)的 openid
        /// </summary>
        public string touser { get; set; }
        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 object Data { get; set; }
        public string lang { get; set; }
        ///// <summary>
        ///// 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
        ///// </summary>
        //public string miniprogram_state { get; set; }
        /// <summary>
        /// 语言(默认中文)
        /// </summary>
        public string Lang { get; set; }
    }
}
ApiTools.Core/Utils/WxmpUtils/WxmpGetQrCodeRequest.cs
@@ -129,38 +129,38 @@
        /// <summary>
        /// 所需下发的订阅模板id
        /// </summary>
        [JsonProperty("template_id")]
        [JsonProperty("Template_id")]
        [Required]
        public string template_id { get; set; }
        public string Template_id { get; set; }
        /// <summary>
        /// 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转
        /// </summary>
        [JsonProperty("page")]
        [JsonProperty("Page")]
        [Required]
        public string page { get; set; }
        public string Page { get; set; }
        /// <summary>
        /// 接收者(用户)的 openid
        /// </summary>
        [JsonProperty("touser")]
        [JsonProperty("Touser")]
        [Required]
        public string touser { get; set; }
        public string Touser { get; set; }
        /// <summary>
        /// 模板内容,格式形如{ "phrase3": { "value": "审核通过" }, "name1": { "value": "订阅" }, "date2": { "value": "2019-12-25 09:42" } }
        /// </summary>
        [JsonProperty("data")]
        [JsonProperty("Data")]
        [Required]
        public object data { get; set; }
        public object Data { get; set; }
        [JsonProperty("跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版")]
        [Required]
        public string miniprogram_state { get; set; }
        public string Miniprogram_state { get; set; }
        [JsonProperty("进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN")]
        [Required]
        public string lang { get; set; }
        public string Lang { get; set; }
    }
ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
@@ -4,6 +4,7 @@
using Azure.Core;
using Furion.FriendlyException;
using Furion.HttpRemote;
using Furion.JsonSerialization;
using Mapster;
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.Options;
@@ -15,8 +16,10 @@
using System.Net.Http.Json;
using System.Text;
using System.Text.Json.Nodes;
using System.Text.Unicode;
using System.Threading;
using System.Threading.Tasks;
using static System.Net.Mime.MediaTypeNames;
namespace ApiTools.Core
{
@@ -148,11 +151,14 @@
                .WithQueryParameter("access_token", accessToken)
                .SetJsonContent(jsonContent));
            response.EnsureSuccessStatusCode();
            if (response.Content.Headers.ContentType.ToString() == "application/json; charset=UTF-8")
            //var a = response.Content.Headers.ContentType.ToString();
            //application/json; encoding=utf-8
            //if (response.Content.Headers.ContentType.ToString() == "application/json; charset=UTF-8")
            if (response.Content.Headers.ContentType.ToString() == "application/json; encoding=utf-8")
            {
                var jsonResult = await response.Content.ReadAsStringAsync();
                var callback = jsonResult.JsonTo<SendResponse>();
                if (callback == null || callback.ErrorCode != 0)
                //var callback = jsonResult.JsonTo<SendResponse>();
                //if (callback == null || callback.ErrorCode != 0)
                    //throw Oops.Oh(EnumErrorCodeType.s510, $"获取小程序码失败:{callback.errmsg},请联系管理员");
                return jsonResult;
            }