diff --git a/FLSystem/Forms/cps_manage_control.cs b/FLSystem/Forms/cps_manage_control.cs index ab02aa8..903a6a9 100644 --- a/FLSystem/Forms/cps_manage_control.cs +++ b/FLSystem/Forms/cps_manage_control.cs @@ -420,7 +420,7 @@ namespace FLSystem.Forms private void barButtonItem46_ItemClick(object sender, ItemClickEventArgs e) { //TODO 快手 - return; + //return; LoginCps(CpsType.快手联盟); } diff --git a/FLSystem/Forms/main.cs b/FLSystem/Forms/main.cs index a77a24c..45a2bbe 100644 --- a/FLSystem/Forms/main.cs +++ b/FLSystem/Forms/main.cs @@ -1383,7 +1383,7 @@ namespace FLSystem.Forms case "快手订单管理": { //TODO 快手 - throw new Exception("该功能尚未开发完成,请等待更新!"); + //throw new Exception("该功能尚未开发完成,请等待更新!"); control = new cps_order_kuaishou(username); break; } @@ -2623,7 +2623,7 @@ namespace FLSystem.Forms private void barButtonItem108_ItemClick(object sender, ItemClickEventArgs e) { //TODO 快手 - return; + //return; if (LoginCps(CpsType.快手联盟) != null) ItemClick(btn_cps_manage, e); } diff --git a/类库/Api.Framework/Cps/AlimamaApi.cs b/类库/Api.Framework/Cps/AlimamaApi.cs index 0d9d094..d5814fa 100644 --- a/类库/Api.Framework/Cps/AlimamaApi.cs +++ b/类库/Api.Framework/Cps/AlimamaApi.cs @@ -684,7 +684,7 @@ namespace Api.Framework.Cps } catch (Exception ex) { - var appId = Token.appid; + var appId = Token?.appid; #if DEBUG appId = "33951412"; diff --git a/类库/Api.Framework/Cps/BaseCpsApi.cs b/类库/Api.Framework/Cps/BaseCpsApi.cs index d26bf7d..0179034 100644 --- a/类库/Api.Framework/Cps/BaseCpsApi.cs +++ b/类库/Api.Framework/Cps/BaseCpsApi.cs @@ -52,6 +52,7 @@ namespace Api.Framework.Cps var result = SendServer("get_token", new { username = Member.username, enc_result = true }); if (result != null) { + LogHelper.GetSingleObj().Debug("新token", $"{Member.cpstype.ToString()} {Member.usernick}({Member.username})" + " " + JsonConvert.SerializeObject(result)); if (result.ok) { return HttpHelper.JsonToObject(result.message.ToString()) as CpsToken; @@ -166,6 +167,7 @@ namespace Api.Framework.Cps string key = $"{Member.username}_{(int)Member.cpstype}"; if (Tokens.ContainsKey(key)) _token = Tokens[key]; else RefToken(); + } return _token; } @@ -226,12 +228,17 @@ namespace Api.Framework.Cps } catch (Exception ex) { - LogHelper.GetSingleObj().Error("cps请求异常", ex.Message + $"{result?.message} => {JsonConvert.SerializeObject(end)}"); + LogHelper.GetSingleObj().Error("cps请求异常", + ex.Message + $"{result?.message}"); if (ex.Message == "未将对象引用设置到对象的实例。") return null; else throw ex; } + finally + { + //LogHelper.GetSingleObj().Error("cps请求异常..", $"{result?.message} => {JsonConvert.SerializeObject(end)}"); + } } /// diff --git a/类库/Api.Framework/Cps/KuaiShouApi.cs b/类库/Api.Framework/Cps/KuaiShouApi.cs index d9d54fc..e49b2ae 100644 --- a/类库/Api.Framework/Cps/KuaiShouApi.cs +++ b/类库/Api.Framework/Cps/KuaiShouApi.cs @@ -53,9 +53,10 @@ namespace Api.Framework.Cps } #region 请求 - private string AppKey = "ks679199118973905155"; - //private string Token = "ChFvYXV0aC5hY2Nlc3NUb2tlbhJAq13iHqm2rYA2FPaq_m0RU87-oshvTLzbFJXSnJMC0znK7kwq29tUnRKVow6LFrdSZ8mTRmrQvIWQxVL0FKTqCBoSbRuEMdwtT-6YPlmXD2hUvaWiIiBf7afrOrF3qxUPgNXpAg_nT6OrwDx27hZpMeG8P7OimigFMAE"; - private string SignSecret = "910631f39a61e70f0b2c85a97ad4477e"; + //private string AppKey = "ks679199118973905155"; + ////private string Token = "ChFvYXV0aC5hY2Nlc3NUb2tlbhJAq13iHqm2rYA2FPaq_m0RU87-oshvTLzbFJXSnJMC0znK7kwq29tUnRKVow6LFrdSZ8mTRmrQvIWQxVL0FKTqCBoSbRuEMdwtT-6YPlmXD2hUvaWiIiBf7afrOrF3qxUPgNXpAg_nT6OrwDx27hZpMeG8P7OimigFMAE"; + //private string SignSecret = "910631f39a61e70f0b2c85a97ad4477e"; + private string SignSecret = "71cc2e4896d2d035a1b9e556438cf746"; private JToken SendServer(string api, object data) { @@ -116,7 +117,8 @@ namespace Api.Framework.Cps { Dictionary param = new Dictionary(); - param["appkey"] = AppKey; + //param["appkey"] = AppKey; + param["appkey"] = Token.appid; param["version"] = "1"; param["method"] = api; //param["signMethod"] = "HMAC_SHA256"; diff --git a/类库/Api.Framework/Cps/kuaishou_form_login.cs b/类库/Api.Framework/Cps/kuaishou_form_login.cs index 7191dc5..54f87e9 100644 --- a/类库/Api.Framework/Cps/kuaishou_form_login.cs +++ b/类库/Api.Framework/Cps/kuaishou_form_login.cs @@ -27,7 +27,10 @@ namespace Api.Framework.Cps internal fl_cps_member member { get; private set; } //private string url = "https://cps.api.52cmg.cn/api/kuaishou.asmx/login"; - private string url => $"{ApiClient.Setting.SystemConfig.cps_server_api}api/kuaishou.asmx/login"; + //private string url => $"{ApiClient.Setting.SystemConfig.cps_server_api}api/kuaishou.asmx/login"; + + //https://cps.api.52cmg.cn/api/auth/login?type=1&state=yyyy + private string url => $"{ApiClient.Setting.SystemConfig.cps_server_api}api/auth/login?type=4&state="; private void kuaishou_form_login_Load(object sender, EventArgs e) { @@ -40,7 +43,7 @@ namespace Api.Framework.Cps EO.Base.Runtime.Exception += Runtime_Exception; //加载url - webControl1.WebView.LoadUrl(url); + webControl1.WebView.LoadUrl(url + Math.Abs(Guid.NewGuid().GetHashCode())); webControl1.WebView.LoadCompleted += WebView_LoadCompleted; webControl1.WebView.NewWindow += WebView_NewWindow; //webControl.WebView.UrlChanged += WebView_UrlChanged; @@ -63,14 +66,15 @@ namespace Api.Framework.Cps private void WebView_LoadCompleted(object sender, LoadCompletedEventArgs e) { - //Console.WriteLine($"### {e.Url}"); + Console.WriteLine($"### {e.Url}"); if (Regex.IsMatch(e.Url, @"https://login\.kwaixiaodian\.com/\?redirect_url=", RegexOptions.IgnoreCase)) { webControl1.WebView.EvalScript("document.getElementsByClassName('account-type__item')[0].click()", false); } //else if (e.Url.StartsWith("http://cps.api.52cmg.cn/api/kuaishou.asmx/login_result")) - else if (e.Url.StartsWith($"{ApiClient.Setting.SystemConfig.cps_server_api}api/kuaishou.asmx/login_result")) - { + //else if (e.Url.StartsWith($"{ApiClient.Setting.SystemConfig.cps_server_api}api/kuaishou.asmx/login_result")) + else if (e.Url.Contains($"{ApiClient.Setting.SystemConfig.cps_server_api.Replace("https", "").Replace("http", "")}api/auth/callback4?code=")) + {//https://cps.api.52cmg.cn/api/auth/callback4?code=c041fa95a93aa4434335c4d3e9a1773dec35a0d6c65b965a7259e5958b856992f2587f5a&state= var text = webControl1.WebView.GetText(); CheckJson(text); } @@ -88,11 +92,40 @@ namespace Api.Framework.Cps EventClient.OnEvent(this, "登陆快手失败:" + html); ShowError("登录失败,请查看页面具体错误!"); } - else if (json["ok"].ToString().ToLower() == "false") - ShowError(json["message"].ToString()); + //else if (json["ok"].ToString().ToLower() == "false") + // ShowError(json["message"].ToString()); + //else + //{ + // var open_id = json["message"]?["open_id"]?.ToString(); + // member = CpsClient.Members.FirstOrDefault(f => f.username == open_id && f.cpstype == CpsType.快手联盟); + // if (member == null) + // { + // member = new fl_cps_member() { username = open_id, cpstype = CpsType.快手联盟 }; + // CpsClient.Members.Add(member); + // } + // //member.usernick = "";//TODO 这里获取用户页面上输入的账号,这里开发者写固定了,发布的时候修改 + // if (string.IsNullOrWhiteSpace(member.usernick)) + // { + // var wphUserNickForm = new kuaishou_form_usernick(); + // if (wphUserNickForm.ShowDialog() == DialogResult.OK) + // member.usernick = wphUserNickForm.usernick; + // else + // { + // ShowError("未设置快手授权账号昵称,登录终止"); + // return; + // } + // } + // member.logintime = DateTime.Now; + // member.cookies = cookie; + // member.is_valid = true; + // this.Close(); + //} + + else if (json["IsOk"].ToString().ToLower() == "false") + ShowError(json["ErrorMsg"].ToString()); else { - var open_id = json["message"]?["open_id"]?.ToString(); + var open_id = json["Data"]?["UserName"]?.ToString(); member = CpsClient.Members.FirstOrDefault(f => f.username == open_id && f.cpstype == CpsType.快手联盟); if (member == null) { @@ -116,6 +149,7 @@ namespace Api.Framework.Cps member.is_valid = true; this.Close(); } + } catch (Exception ex) { @@ -127,7 +161,7 @@ namespace Api.Framework.Cps { try { - Clipboard.SetDataObject(url); + Clipboard.SetDataObject(url + Guid.NewGuid().GetHashCode()); BaseForm.ShowSuccessAutoClose("复制成功,请粘贴到任意电脑的浏览器!\r\n注意:如果页面显示空白,请换个浏览器,不要用系统自带的IE浏览器!!!"); } catch (Exception ex)