using AllBase; using AllBase.Helper; using AllBase.Model.Result; using AllBase.Model.Result.WXResult; using NaiBa.Util; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TemuKJD.BaseForms; using Work; namespace TemuKJD.BLL { public class WxApiBLL { public WXShopTokenInfo GetRandomWxToken(bool isShowErrorDlg = true) { if (GlobalConfig.WxTokenList.Count == 0 || GlobalConfig.WxTokenList.All(t => t.isExpire == true)) { var url = BaseClass.BuildObjString("shop/e57_get_wx_tokens"); var data = UserLogin.GetSignaturex(); var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200")) { BaseMsgForm.ShowError("获取授权失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg")); return new WXShopTokenInfo(); } var tokenStr = JsonHelper.SerializeObject(JsonHelper.JObjectParse(html)["tokens"].FirstOrDefault()); GlobalConfig.WxTokenList = new ConcurrentList(); GlobalConfig.WxTokenList.AddRange(JsonHelper.DeserializeJsonToList(tokenStr)); foreach (var token in GlobalConfig.WxTokenList) { token.mdyTime = Convert.ToDateTime(BaseRegex.GetStringJson(ref html, "mdy_time")); } } var tokenCount = GlobalConfig.WxTokenList.Where(t => t.isExpire != true).Count(); return GlobalConfig.WxTokenList.Where(t => t.isExpire != true).OrderBy(x => Guid.NewGuid()).FirstOrDefault(); } public WXShopTokenInfo GetShopWxToken(ShopLoginInfo shop) { var url = BaseClass.BuildObjString("shop/e57_get_wx_shop_token"); var data = UserLogin.GetSignaturex(); data += "&shop_id=" + shop.ShopId; var html = GetHtml.PostUtf8(url, data); if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":0")) { } else { var token = new WXShopTokenInfo() { shopId = shop.ShopId, accessToken = BaseRegex.GetStringJson(ref html, "accessToken"), mdyTime = DateTime.Now, }; //shop.WxToken = BaseRegex.GetStringJson(ref html, "accessToken"); //shop.WxTokenExpire = DateTime.Now.AddMinutes(60); return token; } return new WXShopTokenInfo() { shopId = shop.ShopId, accessToken = "", mdyTime = DateTime.Now }; } } }