sunpengfei
2025-11-21 f0bf887e538163e65101a4b9e2a165eb7694a90e
ApiTools.Core/Utils/WxmpUtils/WxmpUtils.cs
@@ -130,6 +130,27 @@
        }
        /// <summary>
        /// 查询订阅消息模板
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        public async Task<GetWxmpSubscribMessageTemplatesResponse> GetWxmpSubscribMessageTemplate(GetWxmpSubscribMessageTemplatesRequest command)
        {
            var option = options.Value.Items.FirstOrDefault(it => it.Code == command.WxmpCode);
            if (option == null || option.AppId.IsNull() || option.AppSecret.IsNull())
                throw Oops.Oh(EnumErrorCodeType.s400, "发送订阅消息失败,缺失配置:WxmpOptions");
            var accessToken = await GetAccessToken(command.WxmpCode);
            var jsonContent = JsonConvert.SerializeObject(command, new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            });
            var response = await httpRemoteService.GetAsAsync<GetWxmpSubscribMessageTemplatesResponse>(
                "https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate",
                builder => builder.WithQueryParameter("access_token", accessToken));
            return response;
        }
        /// <summary>
        /// 发送订阅消息
        /// </summary>
        /// <param name="command"></param>
@@ -140,11 +161,11 @@
            if (option == null || option.AppId.IsNull() || option.AppSecret.IsNull())
                throw Oops.Oh(EnumErrorCodeType.s400, "发送订阅消息失败,缺失配置:WxmpOptions");
            command.EnvVersion = option.EnvVersion;
            if (!options.Value.SubscribMessageTemplates.ContainsKey(command.TemplateId))
                throw Oops.Oh(EnumErrorCodeType.s400, "发送订阅消息失败,模板不存在");
            var template = options.Value.SubscribMessageTemplates[command.TemplateId];
            command.TemplateId = template.TemplateId;
            if (command.Page.IsNull()) command.Page = template.Page;
            //if (!options.Value.SubscribMessageTemplates.ContainsKey(command.TemplateId))
            //    throw Oops.Oh(EnumErrorCodeType.s400, "发送订阅消息失败,模板不存在");
            //var template = options.Value.SubscribMessageTemplates[command.TemplateId];
            //command.TemplateId = template.TemplateId;
            //if (command.Page.IsNull()) command.Page = template.Page;
            var accessToken = await GetAccessToken(command.WxmpCode);
            var jsonContent = JsonConvert.SerializeObject(command, new JsonSerializerSettings
            {