using System; using Newtonsoft.Json.Linq; using Newtonsoft.Json; using HZQR.Common; using RedisHelp; using System.Configuration; namespace EShang.Common.GeneralMethod { /// /// 安徽交控相关方法 /// public class AHJKHelper { /// /// 获取token /// /// /// /// 异常日志 public static bool GetAHJKtoken(ref Model.tokenModel tokenModel, RedisHelper redisHelper, ref string failureStr) { //判断对应键值在缓存中是否存在,若存在直接从缓存取数据 if (redisHelper.KeyExists("AHJKtoken")) { //从缓存中取出token string resultStr = redisHelper.StringGet("AHJKtoken"); tokenModel = JsonConvert.DeserializeObject(resultStr); if (tokenModel.overdueTime > DateTime.Now) { return true; } } else { //重新加载token tokenModel.appKey = Config.AppSettings.AHJKappKey; tokenModel.appSecret = Config.AppSettings.AHJKappSecret; } string result = HttpUtil.HttpUrlPost(JsonConvert.SerializeObject(tokenModel), Config.AppSettings.AHJKUrl + "sys/auth/token/login?appKey=" + tokenModel.appKey + "&appSecret=" + tokenModel.appSecret, "application/json"); JObject keyValuePairs = JObject.Parse(result); if (keyValuePairs["code"].ToString() == "0") { tokenModel.token = keyValuePairs["token"].ToString(); tokenModel.expire = keyValuePairs["expire"].TryParseToInt(); tokenModel.overdueTime = DateTime.Now.AddSeconds(tokenModel.expire); //将token存入缓存中 redisHelper.StringSet("AHJKtoken", JsonConvert.SerializeObject(tokenModel)); return true; } else { failureStr = keyValuePairs["msg"].ToString(); return false; } } } }