using Microsoft.Extensions.Caching.Memory;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Threading.Tasks;
|
using System.Xml;
|
using CommonUtil;
|
using WeiXinKfSDK;
|
using WeiXinKfSDK.Response;
|
using Operater.DTO.TopMessage;
|
using CommonUtil.RabbitMQ;
|
using DbAccess;
|
using System.Text;
|
|
namespace Api.MessageReceive.Service
|
{
|
public class WxKfService
|
{
|
public static WxKfToken _wxkfToken;
|
|
public static GzhToken _gzhToken;
|
|
public static ISysSqlHelper dbMain = SysSqlHelper.CreateSqlHelper("db_main");
|
//public async Task WxMessageHandle(string xmlMessage)
|
public async static Task WxMessageHandle(string xmlMessage, string msgtype)
|
{
|
TradeMqMessage tradeMqMessage = new TradeMqMessage()
|
{
|
MsgType = msgtype,
|
MsgBody = xmlMessage
|
};
|
string ret = MQClientFullChannel.SendMessageStatic(0, "wxkf_message", JSONUtil.ObjectToJson(tradeMqMessage));
|
if (ret != "ok")
|
{
|
LogUtil.Info($"发MQ失败:{xmlMessage}", "wx处理失败");
|
}
|
|
}
|
|
public async static Task RecordeGzhInfo(GetGzhUserInfoResonse userInfo)
|
{
|
try
|
{
|
string nickName = "";
|
if(!userInfo.nickname.IsNullOrEmpty())
|
{
|
nickName= Encoding.UTF8.GetString(Encoding.GetEncoding("ISO-8859-1").GetBytes(userInfo.nickname));
|
}
|
string record = $"replace into gzh_userinfo values('{userInfo.openid}','{nickName}','{userInfo.sex}','{userInfo.province}','{userInfo.city}','{userInfo.headimgurl}','{userInfo.unionid}',now())";
|
dbMain.ExecuteNonQuery(record);
|
}
|
catch (Exception e)
|
{
|
LogUtil.Info($"发MQ失败:{e.ToString()}", "gzh入库失败");
|
}
|
}
|
|
/// <summary>
|
/// 获取公众号token
|
/// </summary>
|
/// <returns></returns>
|
public static string GetGzhToken()
|
{
|
if(_gzhToken.IsNull()|| _gzhToken.ExpressTime<DateTime.Now)
|
{
|
if(_gzhToken.IsNull())
|
{
|
_gzhToken = new GzhToken();
|
}
|
var token = WeiXinKfClient.GetGzhAccessToken();
|
_gzhToken.AccessToken = token.access_token;
|
_gzhToken.ExpressTime = DateTime.Now.AddSeconds(token.expires_in);
|
}
|
return _gzhToken.AccessToken;
|
}
|
}
|
}
|