diff --git a/Host/Views.Mobile/Product/Soft.cshtml b/Host/Views.Mobile/Product/Soft.cshtml index 45dc335..ca3057f 100644 --- a/Host/Views.Mobile/Product/Soft.cshtml +++ b/Host/Views.Mobile/Product/Soft.cshtml @@ -43,7 +43,7 @@

代理商专用客户端


-


+



diff --git a/Host/Views/Product/Index.cshtml b/Host/Views/Product/Index.cshtml index edee204..fce37ad 100644 --- a/Host/Views/Product/Index.cshtml +++ b/Host/Views/Product/Index.cshtml @@ -536,7 +536,7 @@

@restTimes

测试卡

-

使用期限:1小时

+

使用期限:2小时

diff --git a/Host/Views/Product/Soft.cshtml b/Host/Views/Product/Soft.cshtml index 491f075..c3a237f 100644 --- a/Host/Views/Product/Soft.cshtml +++ b/Host/Views/Product/Soft.cshtml @@ -84,7 +84,7 @@
- +
diff --git a/Host/Views/Product/buy.cshtml b/Host/Views/Product/buy.cshtml index 49b2d65..762dcf4 100644 --- a/Host/Views/Product/buy.cshtml +++ b/Host/Views/Product/buy.cshtml @@ -142,10 +142,10 @@
-

5至10位字母或数字或组合

+

4至10位字母或数字或组合

- 5至10位字母或数字或组合 + 4至10位字母或数字或组合
@@ -269,7 +269,7 @@

3至8位字母或数字或组合

- 3至8位字母或数字或组合 + 2至8位字母或数字或组合
@@ -675,7 +675,7 @@ } }, checkOneAccount() { - if (this.OneBuyModel.Account.length > 10 || this.OneBuyModel.Account.length < 5 || !this.hasNumAndChar(this.OneBuyModel.Account)) { + if (this.OneBuyModel.Account.length > 10 || this.OneBuyModel.Account.length < 4 || !this.hasNumAndChar(this.OneBuyModel.Account)) { this.OneChecker.AccountOk = false; return false; } @@ -691,7 +691,7 @@ return true; }, checkMoreAccount() { - if (this.MoreBuyModel.Account.length < 3 || this.MoreBuyModel.Account.length > 8 || !this.hasNumAndChar(this.MoreBuyModel.Account)) { + if (this.MoreBuyModel.Account.length < 2 || this.MoreBuyModel.Account.length > 8 || !this.hasNumAndChar(this.MoreBuyModel.Account)) { this.MoreChecker.AccountOk = false; return false; } diff --git a/Services/Hncore.Pass.Vpn/Service/AgentClient9Service.cs b/Services/Hncore.Pass.Vpn/Service/AgentClient9Service.cs index 4a5fc41..aae0cc8 100644 --- a/Services/Hncore.Pass.Vpn/Service/AgentClient9Service.cs +++ b/Services/Hncore.Pass.Vpn/Service/AgentClient9Service.cs @@ -23,17 +23,16 @@ namespace Hncore.Pass.Vpn.Service string LoginUrl { get; set; } = "api/login"; string LoginCodeUrl { get; set; } = "main/imgcode.html"; string RefrushTokenUrl { get; set; } = "agent/index.html"; - string SingleAddUrl { get; set; } = "api/index/AddAccount?apikey=80cf4f64e990b78a9fc5eb&"; - string SingleReAddUrl { get; set; } = "api/index/updateAccount?apikey=80cf4f64e990b78a9fc5eb&"; + string SingleAddUrl { get; set; } = "api/number"; + string SingleReAddUrl { get; set; } = "api/number/renew"; string MuiltAddUrl { get; set; } = "agent/memberMuiltAdd.html"; - string RefundUrl { get; set; } = "api/index/refund?apikey=80cf4f64e990b78a9fc5eb&"; - string UpdateUrl = "api/index/updateAccount?apikey=80cf4f64e990b78a9fc5eb&";//agent/memberUpdate/id/1155709.html - string OnlineUrl { get; set; } = "api/index/getOnlineList?apikey=80cf4f64e990b78a9fc5eb&"; - string KIllUrl { get; set; } = "api/index/disconnect?apikey=80cf4f64e990b78a9fc5eb&"; - string searchAccountUrl = "api/index/getAccountInfo?apikey=80cf4f64e990b78a9fc5eb&"; + string RefundUrl { get; set; } = "api/number/refund"; + string UpdateUrl = "api/number/";//agent/memberUpdate/id/1155709.html + string OnlineUrl { get; set; } = "api/numberLine/"; + string KIllUrl { get; set; } = "api/numberOffline"; + string searchAccountUrl = "api/numberSingle/"; string searchTestAccountUrl = "api/numberSingle/"; string DeleteUrl { get; set; } = "api/number/refund";//1160862.html"; - string is_exist { get; set; } = "api/index/exist?apikey=80cf4f64e990b78a9fc5eb&";//1160862.html"; IHttpClientFactory m_HttpClientFactory; public AgentClient9Service(IHttpClientFactory httpClientFactory):base(httpClientFactory) { @@ -76,25 +75,37 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task NewAccount(string packageKey, string account, string pwd, int connCount = 1, int accountType = 1, int payCount = 1) { + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + + var time_s = DateTime.Now.GetUnixTimeStamp(); + var agentid = "juipgfwww"; + var nonce = MD5(time_s.ToString()) + i.ToString(); + var apikey = "7492520f74a59483f90e67238b92c0ba"; + var sign = MD5(time_s+nonce+apikey); + + + + var userid = "11"; + + var url = "/api/raduserCreate?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&userid="+userid+"&username="+account+"&password="+pwd+"&prdid=8&maxonline="+connCount+"&day="+packageKey; + var client = CreateHttpClient(); - try + var resp = await client.GetAsync(url); + var content = await resp.Content.ReadAsStringAsync(); + JObject jo = (JObject)JsonConvert.DeserializeObject(content); + Console.WriteLine("====================================================================================="); + Console.WriteLine(content); + Console.WriteLine("====================================================================================="); + var status = jo["errcode"].ToString(); + + if (status =="0") { - var url = this.SingleAddUrl + "type=one&username="+account+"&pass="+pwd+"&taocan="+packageKey+"&connect="+connCount.ToString(); - var resp = await client.GetAsync(url); - var content = await resp.Content.ReadAsStringAsync(); - JObject jo = (JObject)JsonConvert.DeserializeObject(content); - var status = jo["code"].ToString(); - if (status =="10000") - { - return new ApiResult(ResultCode.C_SUCCESS); - } - else - { - return new ApiResult(ResultCode.C_INVALID_ERROR, "开户失败"); - } + return new ApiResult(ResultCode.C_SUCCESS); } - catch (Exception ex) + else { return new ApiResult(ResultCode.C_INVALID_ERROR, "开户失败"); } @@ -110,30 +121,16 @@ namespace Hncore.Pass.Vpn.Service public override async Task NewMuiltAccount(string packageKey, string account, string pwd, int connCount = 1, int accountType = 1,int startNum=0, int endNum=1 ) { var client = CreateHttpClient(); - - var map = new Dictionary(){}; - - - if(packageKey == "test"){ - map = new Dictionary(){ - {"group","test" }, - {"number",account }, - {"password",pwd }, - {"body","api"}, - {"mobile","13073735878"} - }; - } else { - map = new Dictionary(){ - {"group","single" }, - {"number",account }, - {"password",pwd }, - {"connect",connCount.ToString()}, - {"interval","1"}, - {"type",packageKey}, - {"body","api"}, - {"mobile","13073735878"} - }; - } + var map = new Dictionary(){ + {"group","single" }, + {"number",account }, + {"password",pwd }, + {"connect",connCount.ToString()}, + {"interval","1"}, + {"type",packageKey}, + {"body","api"}, + {"mobile","13073735878"} + }; var title = GetOpTitle("NewAccount", account); LogHelper.Info(title, map.ToJson()); try @@ -168,29 +165,38 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task NewReAccount(string packageKey, string account, int connCount, int payCount = 1) { + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + + var time_s = DateTime.Now.GetUnixTimeStamp(); + var agentid = "juipgfwww"; + var nonce = MD5(time_s.ToString()) + i.ToString(); + var apikey = "7492520f74a59483f90e67238b92c0ba"; + var sign = MD5(time_s+nonce+apikey); + + + + var url = "/api/raduserRenew?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&username="+account+"&day="+packageKey; + var client = CreateHttpClient(); - try + var resp = await client.GetAsync(url); + var content = await resp.Content.ReadAsStringAsync(); + Console.WriteLine("=============================================================="); + Console.WriteLine(content); + Console.WriteLine("=============================================================="); + JObject jo = (JObject)JsonConvert.DeserializeObject(content); + var status = jo["errcode"].ToString(); + + if (status =="0") { - var url = this.SingleReAddUrl + "type=rebuy&username="+account+"&taocan="+packageKey; - var resp = await client.GetAsync(url); - var content = await resp.Content.ReadAsStringAsync(); - JObject jo = (JObject)JsonConvert.DeserializeObject(content); - var status = jo["code"].ToString(); - if (status =="10000") - { - return new ApiResult(1); - } - else - { - return new ApiResult(ResultCode.C_INVALID_ERROR, "续费失败"); - } + return new ApiResult(1); } - catch (Exception ex) + else { - return new ApiResult(ResultCode.C_INVALID_ERROR, "续费失败"); + return new ApiResult(ResultCode.C_INVALID_ERROR, "续费失败"); } - } /// /// 删除账号 @@ -200,8 +206,39 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task DeleteAccount(string account) { + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + + var time_s = DateTime.Now.GetUnixTimeStamp(); + var agentid = "juipgfwww"; + var nonce = MD5(time_s.ToString()) + i.ToString(); + var apikey = "7492520f74a59483f90e67238b92c0ba"; + var sign = MD5(time_s+nonce+apikey); + + + + var url = "/api/raduserRefund?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&username="+account; + + var client = CreateHttpClient(); + + var resp = await client.GetAsync(url); + var content = await resp.Content.ReadAsStringAsync(); + Console.WriteLine("=============================================================="); + Console.WriteLine(content); + Console.WriteLine("=============================================================="); + JObject jo = (JObject)JsonConvert.DeserializeObject(content); + var status = jo["errcode"].ToString(); - return false; + if (status =="0") + { + return true; + } + else + { + return false; + } + } /// /// 得到账号信息 @@ -212,34 +249,48 @@ namespace Hncore.Pass.Vpn.Service public override async Task> GetAccountInfo(string account,bool isTest=false) { + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + + var time_s = DateTime.Now.GetUnixTimeStamp(); + var agentid = "juipgfwww"; + var nonce = MD5(time_s.ToString()) + i.ToString(); + var apikey = "7492520f74a59483f90e67238b92c0ba"; + var sign = MD5(time_s+nonce+apikey); + + var url = "/api/raduserInfo?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&username="+account; + var client = CreateHttpClient(); - var url = this.searchAccountUrl + "account="+account; var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); JObject jo = (JObject)JsonConvert.DeserializeObject(content); - var status = jo["code"].ToString(); + var status = jo["errcode"].ToString(); var data = jo["data"]; - if (status =="10000") + if (status =="0") { var trData = new OriginAccountModel { Id = "", Account = data["username"].ToString(), - Pwd = data["pass"].ToString(), + Pwd = data["password"].ToString(), AccountType = "", Package = "", ConnectCount = "", - RegistTime = data["create_time"].ToString(), - EndTime = data["expire_time"].ToString(), + RegistTime = data["createtime"].ToString(), + EndTime = data["expiretime"].ToString(), RestTime = "", Amount = "", Remark = "", }; return new ApiResult(trData); } + else + { + return new ApiResult(ResultCode.C_INVALID_ERROR, "没有查询到信息"); + } + - return new ApiResult(ResultCode.C_INVALID_ERROR, "没有查询到信息"); } /// @@ -252,25 +303,28 @@ namespace Hncore.Pass.Vpn.Service public override async Task UpdateAccountPwd(string account, string pwd) { + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + + var time_s = DateTime.Now.GetUnixTimeStamp(); + var agentid = "juipgfwww"; + var nonce = MD5(time_s.ToString()) + i.ToString(); + var apikey = "7492520f74a59483f90e67238b92c0ba"; + var sign = MD5(time_s+nonce+apikey); + + var url = "/api/raduserChpw?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&username="+account+"&newpass="+pwd; + var client = CreateHttpClient(); - try + var resp = await client.GetAsync(url); + var content = await resp.Content.ReadAsStringAsync(); + JObject jo = (JObject)JsonConvert.DeserializeObject(content); + var status = jo["errcode"].ToString(); + if (status =="0") { - var url = this.UpdateUrl + "type=update_pass&username="+account+"&pass="+pwd; - var resp = await client.GetAsync(url); - var content = await resp.Content.ReadAsStringAsync(); - JObject jo = (JObject)JsonConvert.DeserializeObject(content); - var status = jo["code"].ToString(); - if (status =="10000") - { - return true; - } - else - { - return false; - } + return true; } - catch (Exception ex) + else { return false; } @@ -284,13 +338,35 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task Refund(string account, string packageKey, int days) { - var client = CreateHttpClient(); - var url = this.RefundUrl + "username=" + account; - var resp = await client.GetAsync(url); - var content = await resp.Content.ReadAsStringAsync(); - - return new ApiResult(1); + Random rd = new Random(Guid.NewGuid().GetHashCode()); + + var time_s = DateTime.Now.GetUnixTimeStamp(); + var nonce = MD5(time_s.ToString()); + await this.UpdateAccountPwd(account, nonce.Substring(1, 5)); + + + // var url = "/api/raduserRefund?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&username="+account; + + // var client = CreateHttpClient(); + + // var resp = await client.GetAsync(url); + // var content = await resp.Content.ReadAsStringAsync(); + // Console.WriteLine("==========================tui===================================="); + // Console.WriteLine(content); + // Console.WriteLine("=============================================================="); + // JObject jo = (JObject)JsonConvert.DeserializeObject(content); + // Console.WriteLine("===========================kuan==================================="); + // Console.WriteLine(jo); + // Console.WriteLine("=============================================================="); + // var status = jo["errcode"].ToString(); + + // if (status =="0") + // { + return new ApiResult(1); + // } + // return new ApiResult(ResultCode.C_INVALID_ERROR, "退款失败"); + } /// /// 是否在线 @@ -300,15 +376,29 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task>> OnLine(string account) { + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + + var time_s = DateTime.Now.GetUnixTimeStamp(); + var agentid = "juipgfwww"; + var nonce = MD5(time_s.ToString()) + i.ToString(); + var apikey = "7492520f74a59483f90e67238b92c0ba"; + var sign = MD5(time_s+nonce+apikey); + + var url = "/api/raduserAcct?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&username="+account; + var client = CreateHttpClient(); - var url = this.OnlineUrl + "account="+account; var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); JObject jo = (JObject)JsonConvert.DeserializeObject(content); - var status = jo["code"].ToString(); + Console.WriteLine("========================================================================================="); + Console.WriteLine(content); + Console.WriteLine("========================================================================================="); + var status = jo["errcode"].ToString(); var retData = new List(); - if (status =="10000") + if (status =="0") { if(jo.ContainsKey("data")){ foreach (var tr in jo["data"]) @@ -318,13 +408,13 @@ namespace Hncore.Pass.Vpn.Service var trData = new OriginAccountOnlineModel { Account = account, - ServerIP = jsondata["serveip"].ToString(), - LoginTime = jsondata["start_time"].ToString(), - OnlineTime = jsondata["online_time"].ToString(), - LoginIP = jsondata["userip"].ToString(), - UpStream = jsondata["upbite"].ToString(), - DownStream = jsondata["downbite"].ToString(), - Id= jsondata["id"].ToString(), + ServerIP = jsondata["serverip"].ToString(), + LoginTime = jsondata["starttime"].ToString(), + OnlineTime = "", + LoginIP = jsondata["framedip"].ToString(), + UpStream = "", + DownStream = "", + Id= "{account:\""+account+"\",radacctid:\""+jsondata["radacctid"].ToString()+"\"}", }; @@ -333,9 +423,11 @@ namespace Hncore.Pass.Vpn.Service } return new ApiResult>(retData); } - - return new ApiResult>(ResultCode.C_INVALID_ERROR, "查询失败"); - + else + { + return new ApiResult>(ResultCode.C_INVALID_ERROR, "查询失败"); + } + } /// /// 踢号 @@ -345,27 +437,40 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task KillOut( string id) { + + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + + var time_s = DateTime.Now.GetUnixTimeStamp(); + var agentid = "juipgfwww"; + var nonce = MD5(time_s.ToString()) + i.ToString(); + var apikey = "7492520f74a59483f90e67238b92c0ba"; + var sign = MD5(time_s+nonce+apikey); + + JObject userinfo = (JObject)JsonConvert.DeserializeObject(id); + + var url = "/api/raduserDisconnect?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&username="+userinfo["account"]+"&radacctid="+userinfo["radacctid"]; + var client = CreateHttpClient(); + var title = GetOpTitle("KillOut", id); + var info = ""; + try { - var url = this.KIllUrl + "id="+id; + var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); JObject jo = (JObject)JsonConvert.DeserializeObject(content); - var status = jo["code"].ToString(); - if (status =="10000") + var status = jo["errcode"].ToString(); + if (status =="0") { return true; - } - else - { - return false; - } + } } catch (Exception ex) { - return false; + LogHelper.Error(title, ex.Message + "-->info:" + info); } return false; } @@ -377,19 +482,42 @@ namespace Hncore.Pass.Vpn.Service /// public override async Task Exist(string account) { + Random rd = new Random(Guid.NewGuid().GetHashCode()); + int i = rd.Next(); + + var time_s = DateTime.Now.GetUnixTimeStamp(); + var agentid = "juipgfwww"; + var nonce = MD5(time_s.ToString()) + i.ToString(); + + var apikey = "7492520f74a59483f90e67238b92c0ba"; + var sign = MD5(time_s+nonce+apikey); + + var url = "/api/raduserExist?agentid="+agentid+"&ti="+time_s+"&nonce="+nonce+"&sign="+sign+"&username="+account; + var client = CreateHttpClient(); - var url = this.is_exist + "username=" + account; + var resp = await client.GetAsync(url); var content = await resp.Content.ReadAsStringAsync(); - - + Console.WriteLine("========================================12321============================================="); + Console.WriteLine(content); + Console.WriteLine("====================================================================================="); JObject jo = (JObject)JsonConvert.DeserializeObject(content); - var status = jo["code"].ToString(); - if (status == "-10000") + Console.WriteLine("========================================2313============================================="); + Console.WriteLine(jo); + Console.WriteLine("====================================================================================="); + var status = jo["errcode"].ToString(); + + var is_exit = jo["data"]["exist"]; + Console.WriteLine("========================================12321============================================="); + Console.WriteLine(jo); + Console.WriteLine("====================================================================================="); + + + if (is_exit.ToString() =="0") { - return true; - } - return false; + return false; + } + return true; } } }