西瓜续费
This commit is contained in:
@@ -499,9 +499,6 @@ namespace Hncore.Pass.Vpn.Service
|
||||
{
|
||||
var resp = await client.GetAsync(this.ExistUrl + "?" + Sign(map));
|
||||
var content = await resp.Content.ReadAsStringAsync();
|
||||
Console.WriteLine("====================================================");
|
||||
Console.WriteLine(content);
|
||||
Console.WriteLine("------------=================================================");
|
||||
JObject jo = (JObject)JsonConvert.DeserializeObject(content);
|
||||
var status = jo["status"].ToString();
|
||||
if (status != "200")
|
||||
|
||||
@@ -351,78 +351,47 @@ namespace Hncore.Pass.Vpn.Service
|
||||
/// <returns></returns>
|
||||
public override async Task<ApiResult<OriginAccountModel>> GetAccountInfo(string account, bool isTest = false)
|
||||
{
|
||||
var client = CreateHttpClient();
|
||||
var map = new Dictionary<string, string>(){
|
||||
{"user",account },
|
||||
{"type","getuserinfo" },
|
||||
};
|
||||
var client = CreateHttpClient();
|
||||
var title = GetOpTitle("GetAccountInfo", account);
|
||||
|
||||
|
||||
var info = "";
|
||||
try
|
||||
{
|
||||
var searchUser = $"user_main/?sum=100&page=1&search_data={account}";
|
||||
var resp = await client.GetAsync(searchUser);
|
||||
var content = await resp.Content.ReadAsStringAsync();
|
||||
//账号信息
|
||||
var resp_info = await client.GetAsync("/userapi/?secretId=20210121152313846555&secretKey=C41nUV6KpjvdYkfr&type=getuserinfo&user="+account);
|
||||
var content_info = await resp_info.Content.ReadAsStringAsync();
|
||||
|
||||
var parser = new HtmlParser();
|
||||
var document = await parser.ParseDocumentAsync(content);
|
||||
////table class="table table-bordered"
|
||||
var trs = document.QuerySelectorAll("#datatable tr").ToList();
|
||||
// var trs= table.QuerySelectorAll("tr").ToList();
|
||||
var retData = new List<OriginAccountModel>();
|
||||
var info = "";
|
||||
if (trs.Count() > 1)
|
||||
JObject jo = (JObject)JsonConvert.DeserializeObject(content_info);
|
||||
var status = jo["code"].ToString();
|
||||
|
||||
|
||||
|
||||
var trData = new OriginAccountModel
|
||||
{
|
||||
//var tr = trs.Skip(1).FirstOrDefault();
|
||||
foreach (var tr in trs.Skip(1))
|
||||
{
|
||||
var tds = tr.QuerySelectorAll("td").ToList();
|
||||
var tdAccount = tds[1].TextContent;
|
||||
if (tdAccount != account)
|
||||
continue;
|
||||
info = string.Join("", tds.Select(m => m.OuterHtml));
|
||||
var trData = new OriginAccountModel
|
||||
{
|
||||
Account = account,
|
||||
Pwd = tds[2].TextContent,
|
||||
AccountType = tds[3].TextContent,
|
||||
Package = tds[3].TextContent,
|
||||
RegistTime = tds[5].TextContent,
|
||||
EndTime = tds[6].TextContent,
|
||||
ConnectCount = tds[4].TextContent,
|
||||
IsActive = tds[7].TextContent,
|
||||
Remark = tds[8].TextContent,
|
||||
};
|
||||
|
||||
trData.RealEndTime = DateTime.Parse(trData.EndTime);
|
||||
if (trData.RealEndTime < DateTime.Now)
|
||||
{
|
||||
trData.RestTime = "已过期";
|
||||
}
|
||||
else
|
||||
{
|
||||
trData.RestTime = (trData.RealEndTime - DateTime.Now).ToString(@"dd\.hh\:mm\:ss");
|
||||
}
|
||||
|
||||
var button = tr.LastElementChild.QuerySelector("button")?.Attributes["onclick"]?.Value;
|
||||
if (button.Has())
|
||||
{
|
||||
var start = button.IndexOf('(');
|
||||
var end = button.IndexOf(")");
|
||||
if (start != -1 && end != -1)
|
||||
{
|
||||
trData.Id = button.Substring(start + 1, end - start);
|
||||
}
|
||||
}
|
||||
return new ApiResult<OriginAccountModel>(trData);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Id = account,
|
||||
Account = account,
|
||||
Pwd = account,
|
||||
AccountType = "",
|
||||
Package = "",
|
||||
ConnectCount = jo["logincount "].ToString(),
|
||||
RegistTime = "",
|
||||
EndTime = jo["expiretime "].ToString(),
|
||||
RestTime = "",
|
||||
Amount = "",
|
||||
Remark = "",
|
||||
};
|
||||
trData.RealEndTime = DateTime.Parse(trData.EndTime);
|
||||
return new ApiResult<OriginAccountModel>(trData);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Error(title, ex.Message);
|
||||
LogHelper.Error(title, ex.Message+"-->info:"+ info);
|
||||
return new ApiResult<OriginAccountModel>(ResultCode.C_INVALID_ERROR, "查询失败");
|
||||
}
|
||||
|
||||
return new ApiResult<OriginAccountModel>(ResultCode.C_INVALID_ERROR, "没有查询到信息");
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 修改账号密码
|
||||
|
||||
Reference in New Issue
Block a user