水滴上线
This commit is contained in:
@@ -16,6 +16,9 @@ using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using System.Security.Cryptography;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
namespace Hncore.Pass.Vpn.Service
|
||||
{
|
||||
public class AgentClient13Service:AgentClientBaseService
|
||||
@@ -170,28 +173,43 @@ namespace Hncore.Pass.Vpn.Service
|
||||
/// <returns></returns>
|
||||
public override async Task<ApiResult> NewReAccount(string packageKey, string account, int connCount, int payCount = 1)
|
||||
{
|
||||
var product_id = "";
|
||||
var product_sub_id = "";
|
||||
var product_item_id = "";
|
||||
var type = "";
|
||||
var days = "";
|
||||
if(packageKey.Contains("-")){
|
||||
string[] arrStr = packageKey.Split('-');
|
||||
product_id = arrStr[0];
|
||||
product_sub_id = arrStr[1];
|
||||
product_item_id = arrStr[2];
|
||||
days = arrStr[3];
|
||||
|
||||
Random rd = new Random(Guid.NewGuid().GetHashCode());
|
||||
int i = rd.Next();
|
||||
if (product_id == "1") {
|
||||
type = "0";
|
||||
}
|
||||
if (product_id == "2") {
|
||||
type = "1";
|
||||
}
|
||||
}
|
||||
Dictionary<string, string> map = new Dictionary<string, string>(){
|
||||
{"product_id",product_id },
|
||||
{"product_sub_id",product_sub_id },
|
||||
{"product_item_id",product_item_id },
|
||||
{"days",days },
|
||||
{"type",type },
|
||||
{"account",account },
|
||||
};
|
||||
|
||||
var time_s = DateTime.Now.GetUnixTimeStamp();
|
||||
var agentid = "admin1";
|
||||
var nonce = MD5(time_s.ToString()) + i.ToString();
|
||||
var apikey = "0c4641686764e0ee56ef54b16fddc966";
|
||||
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();
|
||||
|
||||
var resp = await client.GetAsync(url);
|
||||
map = signAct(map);
|
||||
|
||||
var client = CreateHttpClient();
|
||||
var resp = await client.PostAsForm("https://jyip.net/open-api/account-renew", map);
|
||||
var content = await resp.Content.ReadAsStringAsync();
|
||||
JObject jo = (JObject)JsonConvert.DeserializeObject(content);
|
||||
var status = jo["errcode"].ToString();
|
||||
|
||||
if (status =="0")
|
||||
var status = jo["code"].ToString();
|
||||
|
||||
if (status == "200")
|
||||
{
|
||||
return new ApiResult(1);
|
||||
}
|
||||
@@ -298,25 +316,28 @@ namespace Hncore.Pass.Vpn.Service
|
||||
/// <returns></returns>
|
||||
public override async Task<bool> UpdateAccountPwd(string account, string pwd)
|
||||
{
|
||||
var account_r = "";
|
||||
var type = "";
|
||||
if(account.Contains("-")){
|
||||
string[] arrStr = account.Split('-');
|
||||
account_r = arrStr[0];
|
||||
type = arrStr[1];
|
||||
}
|
||||
Dictionary<string, string> map = new Dictionary<string, string>(){
|
||||
{"passwd",pwd },
|
||||
{"account",account },
|
||||
{"type",type },
|
||||
};
|
||||
|
||||
Random rd = new Random(Guid.NewGuid().GetHashCode());
|
||||
int i = rd.Next();
|
||||
|
||||
var time_s = DateTime.Now.GetUnixTimeStamp();
|
||||
var agentid = "admin1";
|
||||
var nonce = MD5(time_s.ToString()) + i.ToString();
|
||||
var apikey = "0c4641686764e0ee56ef54b16fddc966";
|
||||
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();
|
||||
|
||||
var resp = await client.GetAsync(url);
|
||||
map = signAct(map);
|
||||
|
||||
var client = CreateHttpClient();
|
||||
var resp = await client.PostAsForm("https://jyip.net/open-api/edit-password", map);
|
||||
var content = await resp.Content.ReadAsStringAsync();
|
||||
JObject jo = (JObject)JsonConvert.DeserializeObject(content);
|
||||
var status = jo["errcode"].ToString();
|
||||
if (status =="0")
|
||||
var status = jo["code"].ToString();
|
||||
|
||||
if (status == "200")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -479,5 +500,39 @@ namespace Hncore.Pass.Vpn.Service
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private static Dictionary<string, string> signAct(Dictionary<string, string> body)
|
||||
{
|
||||
var authStr="";
|
||||
body.Add("st",DateTime.Now.GetUnixTimeStamp().ToString());
|
||||
body.Add("appid","49330ae23dad78f9");
|
||||
body = body.OrderBy(kv => kv.Key).ToDictionary(kv => kv.Key, p => p.Value);
|
||||
|
||||
|
||||
foreach (var item in body)
|
||||
{
|
||||
authStr=authStr+item.Value;
|
||||
}
|
||||
|
||||
body.Add("sign",Md5(Md5(authStr)+"ddb4311a227fb118cacd63cc68416ab5"));
|
||||
return body;
|
||||
}
|
||||
|
||||
//Md5摘要
|
||||
private static string Md5(string text)
|
||||
{
|
||||
MD5 md5 = new MD5CryptoServiceProvider();
|
||||
byte[] fromData = System.Text.Encoding.UTF8.GetBytes(text);
|
||||
byte[] targetData = md5.ComputeHash(fromData);
|
||||
string byte2String = null;
|
||||
|
||||
for (int i = 0; i < targetData.Length; i++)
|
||||
{
|
||||
byte2String += targetData[i].ToString("x2");
|
||||
}
|
||||
|
||||
return byte2String;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ namespace Hncore.Pass.Vpn.Service
|
||||
{"account",account },
|
||||
{"password",pwd },
|
||||
{"conn_max",connCount.ToString() },
|
||||
{"t_id","666" },
|
||||
{"t_id","121" },
|
||||
};
|
||||
|
||||
map = signAct(map);
|
||||
|
||||
@@ -145,6 +145,13 @@ namespace Hncore.Pass.Vpn.Service
|
||||
{
|
||||
return new ApiResult(ResultCode.C_INVALID_ERROR, "密码不能为空");
|
||||
}
|
||||
if (entity.ProductId == 28) {
|
||||
if (entity.PackageName.Contains("固态")) {
|
||||
entity.Account = entity.Account + "-" + "1";
|
||||
} else {
|
||||
entity.Account = entity.Account + "-" + "0";
|
||||
}
|
||||
}
|
||||
var agentRet = await m_AgentService.UpdateAccountPwd(entity.ProductId.Value, entity.Account, request.Pwd);
|
||||
if (!agentRet)
|
||||
{
|
||||
@@ -166,6 +173,13 @@ namespace Hncore.Pass.Vpn.Service
|
||||
{
|
||||
return new ApiResult(ResultCode.C_INVALID_ERROR, "密码不能为空");
|
||||
}
|
||||
if (entity.ProductId == 28) {
|
||||
if (entity.PackageName.Contains("固态")) {
|
||||
entity.Account = entity.Account + "-" + "1";
|
||||
} else {
|
||||
entity.Account = entity.Account + "-" + "0";
|
||||
}
|
||||
}
|
||||
var agentRet = await m_AgentService.UpdateAccountPwd(entity.ProductId.Value, entity.Account, request.RePwd);
|
||||
if (!agentRet)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user