Files
KJD_WebService/TEMUKJD/BLL/WxApiBLL.cs
T

71 lines
2.9 KiB
C#

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.WxGlobalTokenList.Count == 0 || GlobalConfig.WxGlobalTokenList.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.WxGlobalTokenList = new ConcurrentList<WXShopTokenInfo>();
GlobalConfig.WxGlobalTokenList.AddRange(JsonHelper.DeserializeJsonToList<WXShopTokenInfo>(tokenStr));
foreach (var token in GlobalConfig.WxGlobalTokenList)
{
token.mdyTime = Convert.ToDateTime(BaseRegex.GetStringJson(ref html, "mdy_time"));
}
}
var tokenCount = GlobalConfig.WxGlobalTokenList.Where(t => t.isExpire != true).Count();
return GlobalConfig.WxGlobalTokenList.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 };
}
}
}