1.抖音修复,

2.检测url有效性
This commit is contained in:
老道 2022-12-13 12:37:59 +08:00
parent 4a2b5826b0
commit 8596133f25
4 changed files with 172 additions and 258 deletions

View File

@ -574,16 +574,17 @@ namespace FLSystem.Forms
//#endregion
System.Timers.Timer timer = new System.Timers.Timer();
timer.Elapsed += Timer_Elapsed;
timer.Interval = 60 * 60 * 1000 * 5;
//timer.Interval = 1000 * 10;
timer.Start();
//更新头像
//System.Timers.Timer timer = new System.Timers.Timer();
//timer.Elapsed += Timer_Elapsed;
//timer.Interval = 60 * 60 * 1000 * 5;
////timer.Interval = 1000 * 10;
//timer.Start();
//下载黑名单
timerBlackUser = new System.Timers.Timer(1000);
timerBlackUser.Elapsed += Timer_ElapsedBlackUser;
timer.Interval = 1000;
//timerBlackUser.Interval = 1000;
timerBlackUser.Start();
}
catch (Exception ex)

View File

@ -64,51 +64,81 @@ namespace Api.Framework.Cps
try
{
var jObj = JObject.Parse(html);
if (jObj != null && jObj["code"] != null)
if (jObj["code"] == null || jObj["code"].Value<int>() != 0)
{
if (jObj["msg"]?.Value<string>() == "Something went wrong, please refresh")
{
throw new Exception("账号尚未开通商品分享功能");
}
throw new Exception(html);
}
var db = ApiClient.GetSession();
var code = jObj["code"].ToString();
if (code == "0")
{
#region
var shop_id = jObj["data"]["shop_id"].ToString();
if (shop_id == "0")
throw new Exception($@"该账号未开通商品分享功能,请开通后重试
:4
10
1000
¥500");
var uname = jObj["data"]["buyin_account_id"].ToString();
var m = db.Queryable<fl_cps_member>().First(f => f.cpstype == CpsType. && f.username == uname);
var username = jObj["data"]?["outer_id"]?.ToString();
var m = db.Queryable<fl_cps_member>().First(f => f.cpstype == CpsType. && f.username == username);
if (m == null)
{
m = new fl_cps_member();
}
m.cookies = ck;
m.usernick = jObj["data"]["shop_name"].ToString();
//LoginUserId = jObj["data"]["user_id"].ToString();
m.username = uname;
m.usernick = jObj["data"]?["nickname"]?.ToString() ?? string.Empty;
m.username = username;
m.logintime = DateTime.Now;
m.online = true;
m.is_valid = true;
m.cpstype = CpsType.;
return m;
#endregion
}
else if (code == "401")
{
if (jObj["msg"].ToString() == "请重新登录")
{
throw new Exception("填写的Cookice无效,请填写有效的cookice");
}
}
else
throw new Exception($"其他:{jObj["msg"].ToString()}");
}
// var jObj = JObject.Parse(html);
// if (jObj != null && jObj["code"] != null)
// {
// var db = ApiClient.GetSession();
// var code = jObj["code"].ToString();
// if (code == "0")
// {
// #region 获取用户信息
// var shop_id = jObj["data"]["shop_id"].ToString();
// if (shop_id == "0")
// throw new Exception($@"该账号未开通商品分享功能,请开通后重试
//注:开通电商权限需要同时满足以下4个条件
//①、账号实名认证
//②、个人主页视频数(公开且审核通过)≥ 10 条
//③、账号粉丝量(绑定第三方粉丝量不计数)≥ 1000
//④、商品分享保证金 ¥500立即充值");
// var uname = jObj["data"]["buyin_account_id"].ToString();
// var m = db.Queryable<fl_cps_member>().First(f => f.cpstype == CpsType.抖音联盟 && f.username == uname);
// if (m == null)
// m = new fl_cps_member();
// m.cookies = ck;
// m.usernick = jObj["data"]["shop_name"].ToString();
// //LoginUserId = jObj["data"]["user_id"].ToString();
// m.username = uname;
// m.logintime = DateTime.Now;
// m.online = true;
// m.is_valid = true;
// m.cpstype = CpsType.抖音联盟;
// return m;
// #endregion
// }
// else if (code == "401")
// {
// if (jObj["msg"].ToString() == "请重新登录")
// {
// throw new Exception("填写的Cookice无效,请填写有效的cookice");
// }
// }
// else
// throw new Exception($"其他:{jObj["msg"].ToString()}");
// }
}
catch (Exception ex)
{
@ -1283,62 +1313,98 @@ html = {html}");
public static string GetLoginUserInfo(string cookies, string UserAgent)
{
try
{
//var sign = GetSign("", UserAgent);
var param = string.Empty;
var param = $"PIGEON_BIZ_TYPE=5";
//if (!string.IsNullOrWhiteSpace(sign))
// param = $"_signature={sign}";
var sign = GetSign(param, UserAgent);
if (!string.IsNullOrWhiteSpace(sign))
param = $"{param}&_signature={sign}";
var xb = GetXbogus(param, UserAgent);
var http = new HttpHelper();
var item = new HttpItem()
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = $"https://buyin.jinritemai.com/index/getUser?X-Bogus={xb}",
URL = $"https://darenim.jinritemai.com/chat/api/sd/by/account?{param}&X-Bogus={xb}",
Method = "GET",
Timeout = 100000,
ReadWriteTimeout = 30000,
Timeout = 5000,
ReadWriteTimeout = 5000 * 2,
IsToLower = false,
Cookie = cookies,
UserAgent = UserAgent,
Accept = "text/html, application/xhtml+xml, */*",
ContentType = "application/json",
Referer = "https://buyin.jinritemai.com/dashboard?new_enter_from=",
ContentType = "text/html",
Referer = "",
Allowautoredirect = false,
AutoRedirectCookie = false,
Postdata = "",
ResultType = ResultType.String,
ResultType = ResultType.String
};
var json = string.Empty;
for (int i = 0; i < 5; i++)
{
var data = http.GetHtml(item);
json = data.Html;
var jObj = JObject.Parse(json);
if (jObj != null && jObj["code"] != null)
{
if ((int)jObj["code"] != 0)
{
Thread.Sleep(500);
continue;
}
break;
}
}
item.Header.Add("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
item.Header.Add("Accept-Encoding", "deflate");
if (!string.IsNullOrWhiteSpace(json))
{
return json;
}
}
catch (Exception ex)
{
LogHelper.GetSingleObj().Error("获取抖音用户信息异常", ex.Message);
}
return string.Empty;
HttpResult result = http.GetHtml(item);
string html = result.Html;
return html;
//try
//{
// //var sign = GetSign("", UserAgent);
// var param = string.Empty;
// //if (!string.IsNullOrWhiteSpace(sign))
// // param = $"_signature={sign}";
// var xb = GetXbogus(param, UserAgent);
// var http = new HttpHelper();
// var item = new HttpItem()
// {
// URL = $"https://buyin.jinritemai.com/index/getUser?X-Bogus={xb}",
// Method = "GET",
// Timeout = 100000,
// ReadWriteTimeout = 30000,
// IsToLower = false,
// Cookie = cookies,
// UserAgent = UserAgent,
// Accept = "text/html, application/xhtml+xml, */*",
// ContentType = "application/json",
// Referer = "https://buyin.jinritemai.com/dashboard?new_enter_from=",
// Allowautoredirect = false,
// AutoRedirectCookie = false,
// Postdata = "",
// ResultType = ResultType.String,
// };
// var json = string.Empty;
// for (int i = 0; i < 5; i++)
// {
// var data = http.GetHtml(item);
// json = data.Html;
// var jObj = JObject.Parse(json);
// if (jObj != null && jObj["code"] != null)
// {
// if ((int)jObj["code"] != 0)
// {
// Thread.Sleep(500);
// continue;
// }
// break;
// }
// }
// if (!string.IsNullOrWhiteSpace(json))
// {
// return json;
// }
//}
//catch (Exception ex)
//{
// LogHelper.GetSingleObj().Error("获取抖音用户信息异常", ex.Message);
//}
//return string.Empty;
}

View File

@ -70,9 +70,9 @@ namespace Api.Framework.Cps
//webControl1.WebView.TitleChanged += WebView_TitleChanged;
webControl1.WebView.LoadCompleted += WebView_LoadCompleted;
webControl1.WebView.NewWindow += WebView_NewWindow;
var sHandler = new SampleHandler();
sHandler.JsonAction += SHandler_JsonAction;
webControl1.WebView.RegisterResourceHandler(sHandler);//注册自定义资源处理程序
//var sHandler = new SampleHandler();
//sHandler.JsonAction += SHandler_JsonAction;
//webControl1.WebView.RegisterResourceHandler(sHandler);//注册自定义资源处理程序
}
private void WebView1_CertificateError(object sender, CertificateErrorEventArgs e)
@ -133,21 +133,14 @@ namespace Api.Framework.Cps
{
webControl1.WebView.Engine.CookieManager.GetCookies("http://buyin.jinritemai.com", true).ToString();
webControl1.WebView.EvalScript("function getck() {return document.cookie}", false);
var ck = string.Empty;
if (string.IsNullOrWhiteSpace(CK))
{
ck = webControl1.WebView.InvokeFunction("getck")?.ToString();
LogHelper.GetSingleObj().Info("抖音登录获取到ck", ck?.ToString());
}
var json = DouyinApi.GetLoginUserInfo(CK ?? ck, UserAgent);
CK = webControl1.WebView.InvokeFunction("getck")?.ToString();
var json = DouyinApi.GetLoginUserInfo(CK, UserAgent);
LogHelper.GetSingleObj().Info("抖音登录获取到用户数据", json);
CheckLoginCk(json, CK ?? ck, UserAgent);
//EventClient.OnEvent("抖音登录", "抖音登录授权跳转2");
//webControl1.WebView.LoadUrl(AuthorizeLoginUrl);
CheckLoginCk(json, CK, UserAgent);
if (!IsJumpAuthorizationUrl)
{
//EventClient.OnEvent("抖音登录", "抖音登录授权跳转1");
Task.Run(() =>
{
int num = 0;
@ -174,33 +167,6 @@ namespace Api.Framework.Cps
private string CK = string.Empty;
/// <summary>
/// 订单响应数据
/// </summary>
/// <param name="url">拦截的url</param>
/// <param name="json">拦截的数据</param>
private void SHandler_JsonAction(string url, string cookice, string json, string ua)
{
try
{
if (url.ToLower().Contains("buyin.jinritemai.com/index/getUser".ToLower()) || url.ToLower()
.Contains("buyin.jinritemai.com/dashboard/dataCenter/order".ToLower()))
{
//EventClient.OnEvent("抖音登录", "抖音登录授权跳转3");
//webControl1.WebView.LoadUrl(AuthorizeLoginUrl);
CK = cookice;
//if (url.ToLower().Contains("buyin.jinritemai.com/index/getUser".ToLower()))
//{
// CheckLoginCk(json, CK, UserAgent);
//}
}
}
catch (Exception ex)
{
ShowErrorAutoClose(ex);
}
}
private void WebView_NewWindow(object sender, NewWindowEventArgs e)
{
webControl1.WebView.LoadUrl(e.TargetUrl);
@ -291,101 +257,6 @@ namespace Api.Framework.Cps
return false;
}
#region Response 20210321
internal class SampleHandler : ResourceHandler
{
private static int num = 1;
private static bool IsRun = false;
public event Action<string, string, string, string> JsonAction;
//如果使用此方式,将完全转移嫁接,包括真实请求,需要自己模拟请求,
public const string SampleUrlPrefix = "sample://";
public const string EmbeddedPageUrl = "sample://embedded_page";
//此方法判断是否自定义处理响应
public override bool Match(Request request)
{
var cookies = Regex.Replace(request.Cookies.ToString(), "path=/", "").Replace("\r\n", "");
//Debug.WriteLine("!!!!!!!!!!! = " + request.Url);
if (request.Url.Contains("buyin.jinritemai.com/index/getUser") || request.Url.Contains("buyin.jinritemai.com/dashboard/dataCenter/order"))
{
//if (!IsRun)
//num++;
JsonAction?.Invoke(request.Url, cookies, "", "");
//return true;
}
return false;
}
//如果自定义响应,则在这里处理请求,并返回要显示的信息
public override void ProcessRequest(Request request, EO.WebBrowser.Response response)
{
try
{
EventClient.OnEvent("抖音登录", "抖音获取登录信息中...");
IsRun = true;
var UserAgent = string.Empty;
var cookies = Regex.Replace(request.Cookies.ToString(), "path=/", "").Replace("\r\n", "");
//if (request.Url.Contains("buyin.jinritemai.com/index/getUser") || request.Url.Contains("buyin.jinritemai.com/dashboard/dataCenter/order"))
//{
//Console.WriteLine(request.Headers[1]);
if (request.Headers.AllKeys.Contains("User-Agent"))
UserAgent = request.Headers["User-Agent"];
//}
//else
//{
//}
//var http = new HttpHelper();
//var data = http.GetHtml(request.Url, cookies, "");
var http = new HttpHelper();
var item = new HttpItem()
{
URL = request.Url,
Method = "GET",
Timeout = 100000,
ReadWriteTimeout = 30000,
IsToLower = false,
Cookie = cookies,
UserAgent = UserAgent,
Accept = "text/html, application/xhtml+xml, */*",
ContentType = "application/json",
Referer = "https://buyin.jinritemai.com/dashboard",
Allowautoredirect = false,
AutoRedirectCookie = false,
Postdata = "",
ResultType = ResultType.String,
};
var data = http.GetHtml(item);
var json = data.Html;
if (!string.IsNullOrWhiteSpace(json))
{
if (cookies.Contains("buyin_app_id=1128;") || cookies.Contains("buyin_shop_type=24;"))
JsonAction?.Invoke(request.Url, cookies, json, UserAgent);
response.ContentType = "application/json";//必须设置,否则会弹出对话框并无法显示在EO.Web控件上
response.ContentEncoding = "UTF-8";//必须设置,否则中文显示乱码
byte[] be = Encoding.UTF8.GetBytes(json);
response.OutputStream.Write(be, 0, be.Length);
response.OutputStream.Close();
return;
}
}
catch (Exception ex)
{ }
base.ProcessRequest(request, response);
}
}
#endregion
private void douyin_form_login_FormClosing(object sender, FormClosingEventArgs e)
{
try
@ -414,30 +285,6 @@ namespace Api.Framework.Cps
webControl1.WebView.Reload();
}
private void simpleButton2_Click(object sender, EventArgs e)
{
//try
//{
// var ck = memoEdit2.Text.Trim();
// if (string.IsNullOrWhiteSpace(ck))
// throw new Exception("请填写cookie");
// LogHelper.GetSingleObj().Info("抖音登录获取到ck", ck?.ToString());
// var json = DouyinApi.GetLoginUserInfo(ck.ToString(), UserAgent);
// LogHelper.GetSingleObj().Info("抖音登录获取到用户数据", json);
// CheckLoginCk(json, ck.ToString(), UserAgent);
// if (Member != null)
// {
// AuthorizeLoginUrl
// }
//}
//catch (Exception ex)
//{
// ShowErrorAutoClose(ex);
//}
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
try

View File

@ -713,7 +713,7 @@ namespace Chat.Framework.WXSdk.Implement
try
{
var checkUrl = rst as CheckUrl;
return (checkUrl != null && checkUrl.Status == 0);
return (checkUrl != null && (checkUrl.Status == 0 || checkUrl.Status == -1));
}
catch (Exception ex)
{