66 lines
2.7 KiB
C#
66 lines
2.7 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()
|
|
{
|
|
if (GlobalConfig.WxTokenList.Count == 0 || GlobalConfig.WxTokenList.All(t => t.isExpire == true))
|
|
{
|
|
var url = BaseClass.BuildPDDObjString("product/get_wx_tokens");
|
|
var data = UserLogin.GetSignaturex();
|
|
var 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<WXShopTokenInfo>();
|
|
GlobalConfig.WxTokenList.AddRange(JsonHelper.DeserializeJsonToList<WXShopTokenInfo>(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 string GetShopWxToken(ShopLoginInfo shop)
|
|
{
|
|
if (string.IsNullOrEmpty(shop.WxToken) || DateTime.Now.AddMinutes(115) > shop.WxTokenExpire)
|
|
{
|
|
var url = BaseClass.BuildPDDObjString("product/get_shop_wx_token");
|
|
var data = UserLogin.GetSignaturex();
|
|
data += "&shop_id=" + shop.ShopId;
|
|
var html = GetHtml.PostUtf8(url, data);
|
|
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
|
|
{
|
|
BaseMsgForm.ShowError("获取授权失败,请重试!" + BaseRegex.GetStringJson(ref html, "msg"));
|
|
return "";
|
|
}
|
|
var tokenStr = BaseRegex.GetStringJson(ref html, "token");
|
|
var ExpireStr = BaseRegex.GetStringJson(ref html, "expire");
|
|
shop.WxToken = tokenStr;
|
|
shop.WxTokenExpire = Convert.ToDateTime(ExpireStr);
|
|
}
|
|
return shop.WxToken;
|
|
}
|
|
}
|
|
}
|