using dodohold.core;
using System.Net;
namespace molilian.core
{
public partial class AlimamaPlus
{
///
/// 获取可提现余额
///
public void GetDrawBalance()
{
DateTime date = DateTime.Now.AddDays(-1);
TkPoolDTO result = new TkPoolDTO();
try
{
string t = $"{date.Convert2UnixTimestamp(true)}";
string dt = date.ToString("yyyy-MM-dd");
string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/settle.account.balance.get.json?" +
$"t={t}&_tb_token_={_tb_token}";
var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
.AddHeaders("X-Requested-With", "XMLHttpRequest")
.AddHeaders("Cookie", _cookies);
client.Proxy = _proxy;
if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
var response = client.Request(url);
var body = response.Body();
var root = body.Convert2JsonElement();
int resultCode = root.Read("resultCode", 0);
bool success = root.Read("success", false);
if (!success)
{
_ = new LoggerLibrary("account", "error")
.Info(url, body)
.SaveAsync();
throw new Exception(body);
}
var drawBalance = root.PathRead("data.totalBalance", 0);
TkPoolCore.UpdateDrawBalance(_accountName, drawBalance);
}
catch (Exception ex) { }
}
public (bool, string) RenewCookie()
{
string cache_key = $"cache:tk_pool:{_accountName}:RenewCookie";
long count = RedisHelper.IncrBy(cache_key);
RedisHelper.Expire(cache_key, 30);
if (count > 1) return (true, "前一个cookie续签正在执行中");
try
{
{
string url = "https://pub.alimama.com/common/getUnionPubContextInfo.json";
var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
.AddHeaders("X-Requested-With", "XMLHttpRequest")
.AddHeaders("Cookie", _cookies);
#if DEBUG
#else
client.Proxy = _proxy;
#endif
if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
var response = client.Request(url);
var body = response.Body();
}
/*
{"invalidKey":null,"info":{"ok":true,"message":null},"data":{"noLogin":true,"ip":"121.206.54.236","loginUrlPrefix":"http://www.alimama.com/member/login.htm?forward=","env":"product"},"ok":true} */
{
string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/union.userLoginInfo.get";
var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
.AddHeaders("X-Requested-With", "XMLHttpRequest")
.AddHeaders("Cookie", _cookies);
#if DEBUG
#else
client.Proxy = _proxy;
#endif
if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
var response = client.Request(url);
var body = response.Body();
var body2 = body;
}
{
string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/union.login";
var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
.AddHeaders("X-Requested-With", "XMLHttpRequest")
.AddHeaders("Cookie", _cookies);
#if DEBUG
#else
client.Proxy = _proxy;
#endif
if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
var response = client.Request(url);
var body = response.Body();
var root = body.Convert2JsonElement();
/*
{"success":true,"model":{}}
*/
bool success = root.PathRead("success", true);
string msgCode = root.PathRead("msgCode", string.Empty);
string msgInfo = root.PathRead("msgInfo", string.Empty);
if (!success)
{
_ = new LoggerLibrary("account", "error")
.Info(url, body)
.SaveAsync();
return (false, body);
}
//{"success":false,"msgInfo":"用户淘宝未登录","msgCode":"USER_TB_NOT_LOGIN"}
}
string aso_url;
{
string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/union.auto.signIn.mama.url.get";
var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
.AddHeaders("X-Requested-With", "XMLHttpRequest")
.AddHeaders("Cookie", _cookies);
#if DEBUG
#else
client.Proxy = _proxy;
#endif
if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
var response = client.Request(url);
var body = response.Body();
/*
{"success":false,"msgInfo":"用户淘宝未登录","msgCode":"USER_TB_NOT_LOGIN"}
{"model":{"url":"https://www.alimama.com/aso/tvs?domain=taobao&sign_account=670430e31dbb7459635d7db887fbc39b&sign_time=1717670916&token=64616532303JDaxNfPy83okP3kLScwCkGiuMcyC4Pcyn92UtF465646233393431&target=6874747073JDaxNfPy83okP3kLScwCkGiuMcyC4PcynF6D&defaultLoginURL=https%3A%2F%2Flogin.taobao.com%2Fmember%2Flogin.jhtml%3Ffrom%3Dalimama"},"success":true}
*/
var root = body.Convert2JsonElement();
aso_url = root.PathRead("model.url", string.Empty);
bool success = root.Read("success", false);
if (!success)
{
_ = new LoggerLibrary("account", "error")
.Info(url, body)
.SaveAsync();
return (false, body);
}
}
{
var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
.AddHeaders("X-Requested-With", "XMLHttpRequest")
.AddHeaders("Cookie", _cookies);
#if DEBUG
#else
client.Proxy = _proxy;
#endif
//client.AllowAutoRedirect = false;
if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
var response = client.Request(aso_url);
List cookies_list = response.ResponseMessage.GetCookies();
var body = response.Body();
}
{
string url = "https://pub.alimama.com/common/getUnionPubContextInfo.json";
var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
.AddHeaders("X-Requested-With", "XMLHttpRequest")
.AddHeaders("Cookie", _cookies);
#if DEBUG
#else
client.Proxy = _proxy;
#endif
if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
var response = client.Request(url);
var body = response.Body();
/*
{"invalidKey":null,"info":{"ok":true,"message":null},"ok":true,"data":{"nnormalGradeLevel":3,"mmNick":"tb628735153169@alimama","hasHighCommPerm":1,"ip":"121.206.54.236","avatar":"//img.alicdn.com/bao/uploaded/i3/6000000006221/O1CN01S9dQzd1vpGrjjldrF_!!6000000006221-0-userheaderimgshow.jpg","userType":1,"env":"product","imgUrlPrefix":"//img.alicdn.com/tfscom","memberid":6172912691,"hasPubPermission":"1","newVersion":1}}
*/
}
new DBContext.Table("tk_pool")
.Add("status", 1)
.Add("last_time", DateTime.Now)
.Where("name=@name", new { name = _accountName })
.Update();
_ = TkPoolCore.List(true);
NotifyCore.Notify(new NifyMessage
{
message = $"【淘客{_accountId}:{_accountName}】cookie 续期",
tags = ["green_circle"]
});
EndPointCore.NotifyReload(true);
//NotifyCore.AnPushNotify("Cookie更新", $"【淘宝联盟:{_accountName}】cookie 续期");
return (true, string.Empty);
}
catch (Exception ex)
{
_ = new LoggerLibrary("account", "error")
.Info(ex.Message, ex.StackTrace)
.SaveAsync();
string message = $"【cookie续期异常】{_accountName}\n\n{ex.Message}\n{ex.StackTrace}";
NotifyCore.Notify(new NifyMessage
{
message = message,
priority = NifyMessagePriority.high,
tags = ["red_circle"]
});
return (false, "cookie续期异常");
}
}
}
}