using System;
using System.Net.Http;
using System.Threading.Tasks;
using Hncore.Infrastructure.Common;
using Hncore.Infrastructure.Extension;
using Hncore.Infrastructure.Serializer;
using Hncore.Infrastructure.WebApi;
using MsgCenterClient.WechatMpTplMsg;
namespace MsgCenterClient
{
public class MsgCenterHttpClient
{
private IHttpClientFactory _httpClientFactory;
internal static string _BaseUrl = "";
public string BaseUrl => _BaseUrl;
public MsgCenterHttpClient(IHttpClientFactory httpClientFactory)
{
_httpClientFactory = httpClientFactory;
}
private HttpClient CreateHttpClient()
{
return _httpClientFactory.CreateClient();
}
///
/// 发送微信公众号模板消息
///
///
///
public async Task SendWechatMpTplMsg(MsgBase msgBase)
{
var body = msgBase.ToRequestObject();
try
{
var res = await CreateHttpClient()
.PostAsJsonGetString(BaseUrl + "/api/msgcenter/v1/msg/SendMPTplMessage", body);
return res.FromJsonTo();
}
catch (Exception e)
{
LogHelper.Error("发送微信公众号模板消息失败", e + "\n消息内容:\n" + body.ToJson(true));
return new ApiResult(ResultCode.C_UNKNOWN_ERROR);
}
}
///
/// 发送微信小程序模板消息
///
///
///
public async Task SendMiniAppTplMsg(MiniAppMsgBase msgBase)
{
var body = msgBase.ToRequestObject();
try
{
var res = await CreateHttpClient()
.PostAsJsonGetString(BaseUrl + "/api/msgcenter/v1/msg/SendMiniAppTplMessage", body);
return res.FromJsonTo();
}
catch (Exception e)
{
LogHelper.Error("发送小程序模板消息失败", e + "\n消息内容:\n" + body.ToJson(true));
return new ApiResult(ResultCode.C_UNKNOWN_ERROR);
}
}
}
}