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;
}
}
}