抓取拼多多工作台信息
This commit is contained in:
1 parent
1745f3c397
commit
e25cc1b51e
22 files changed
+1130
-57
No files matched your search
@@ -27,7 +27,7 @@ namespace AllBase
|
||||
/// <summary>
|
||||
/// 版本ID
|
||||
/// </summary>
|
||||
public static int VersionCount = 613;
|
||||
public static int VersionCount = 615;
|
||||
//public static int VersionCount = 613;
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace AllBase.Model.Result
|
||||
public string TouTiaoId { get; set; }
|
||||
public string Cookies { get; set; } = "";
|
||||
public string Cookies2 { get; set; } = "";
|
||||
public string pddid { get; set; }
|
||||
public ConcurrentList<string> AntiContents { get; set; } = new ConcurrentList<string>();
|
||||
public Dictionary<string, string> DictMultiCookies { get; set; } = new Dictionary<string, string>();
|
||||
public string LoginStatus { get; set; }
|
||||
|
||||
Binary file not shown.
@@ -94,9 +94,9 @@ namespace KJD_Web.BLL.BXX
|
||||
}
|
||||
else
|
||||
{
|
||||
sql = "SELECT s.id,s.login_name,s.login_pass,s.cookie,s.cookie2,s.anti_contents,s.shop_id,s.shop_account,s.sub_user_name,s.user_name," +
|
||||
"s.company_name,s.notes,s.login_status,s.login_status2,c.add_product_remaining,c.add_product_month,s.add_time,s.mdy_time," +
|
||||
"s.add_sub_sa_time,s.operate_sub_sa_name";
|
||||
sql = "SELECT s.id,s.login_name,s.login_pass,s.cookie,s.cookie2,s.anti_contents,s.pddid,s.shop_id,s.shop_account,s.sub_user_name," +
|
||||
"s.user_name,s.company_name,s.notes,s.login_status,s.login_status2,c.add_product_remaining,c.add_product_month," +
|
||||
"s.add_time,s.mdy_time,s.add_sub_sa_time,s.operate_sub_sa_name";
|
||||
//sql += " FROM bxx.shop s WHERE 1=1";
|
||||
sql += " FROM bxx.shop s LEFT JOIN bxx.shop_add_prod_count c ON s.shop_id=c.shop_id WHERE 1=1";
|
||||
|
||||
@@ -131,8 +131,8 @@ namespace KJD_Web.BLL.BXX
|
||||
login_status2 = row["login_status2"].ToString(),
|
||||
add_product_remaining = row["add_product_remaining"].ParseToInt(),
|
||||
add_product_month = row["add_product_month"].ParseToInt(),
|
||||
operate_sub_sa_name = row["operate_sub_sa_name"] as string,
|
||||
|
||||
operate_sub_sa_name = row["operate_sub_sa_name"].ParseToString(),
|
||||
pddid = row["pddid"].ParseToString(),
|
||||
};
|
||||
shopList.Add(shop);
|
||||
}
|
||||
@@ -683,6 +683,7 @@ namespace KJD_Web.BLL.BXX
|
||||
string cookie2 = RegexUtils.GetStringQuery(ref inputData, "cookie2");
|
||||
string login_status = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "login_status"));
|
||||
string login_status2 = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "login_status2"));
|
||||
string pddid = HtmlUtils.UrlDecodeUtf8(RegexUtils.GetStringQuery(ref inputData, "pddid"));
|
||||
|
||||
int r2 = 0;
|
||||
int.TryParse(RegexUtils.GetStringQuery(ref inputData, "r2"), out r2);
|
||||
@@ -703,6 +704,8 @@ namespace KJD_Web.BLL.BXX
|
||||
sql += " login_status='" + login_status + "',";
|
||||
if (login_status2 != null)
|
||||
sql += " login_status2='" + login_status2 + "',";
|
||||
if (pddid != null)
|
||||
sql += " pddid='" + pddid + "',";
|
||||
sql = sql.TrimEnd(',');
|
||||
sql += " where login_name='" + login_name + "'";
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ namespace KJD_Web.Model.ShopModel
|
||||
public string cookie { get; set; }
|
||||
public string cookie2 { get; set; }
|
||||
public string anti_contents { get; set; }
|
||||
public string pddid { get; set; }
|
||||
public string shop_id { get; set; }
|
||||
public string shop_account { get; set; }
|
||||
public string sub_user_name { get; set; }
|
||||
|
||||
@@ -331,6 +331,13 @@ namespace TemuKJD.BLL
|
||||
request.Headers.Add("Anti-Content", AntiContent);
|
||||
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36";
|
||||
if (cookies.Contains("PASS_ID=windows") && !string.IsNullOrEmpty(shop.pddid))
|
||||
{
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12";
|
||||
//request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12";
|
||||
//request.Headers.Add("pddid", @"zULm8bXS");
|
||||
request.Headers.Add("pddid", shop.pddid);
|
||||
}
|
||||
request.Headers.Add("ETag", rckk);
|
||||
request.Headers.Add("sec-ch-ua", @"""Not;A=Brand"";v=""99"", ""Google Chrome"";v=""139"", ""Chromium"";v=""139""");
|
||||
request.ContentType = "application/json";
|
||||
@@ -409,6 +416,13 @@ namespace TemuKJD.BLL
|
||||
request.Headers.Add("Anti-Content", AntiContent);
|
||||
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36";
|
||||
if (cookies.Contains("PASS_ID=windows") && !string.IsNullOrEmpty(shop.pddid))
|
||||
{
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12";
|
||||
//request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12";
|
||||
//request.Headers.Add("pddid", @"zULm8bXS");
|
||||
request.Headers.Add("pddid", shop.pddid);
|
||||
}
|
||||
request.Headers.Add("ETag", rckk);
|
||||
request.Headers.Add("sec-ch-ua", @"""Not;A=Brand"";v=""99"", ""Google Chrome"";v=""139"", ""Chromium"";v=""139""");
|
||||
request.Headers.Add("sec-ch-ua-mobile", @"?0");
|
||||
@@ -473,6 +487,13 @@ namespace TemuKJD.BLL
|
||||
request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0");
|
||||
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36";
|
||||
if (cookies.Contains("PASS_ID=windows") && !string.IsNullOrEmpty(shop.pddid))
|
||||
{
|
||||
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12";
|
||||
//request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12";
|
||||
//request.Headers.Add("pddid", @"zULm8bXS");
|
||||
request.Headers.Add("pddid", shop.pddid);
|
||||
}
|
||||
request.Headers.Add("ETag", rckk);
|
||||
request.Headers.Add("sec-ch-ua", @"""Not;A=Brand"";v=""99"", ""Google Chrome"";v=""139"", ""Chromium"";v=""139""");
|
||||
request.ContentType = "multipart/form-data; boundary=" + boundary;
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace TemuKJD.BLL
|
||||
{
|
||||
public class MemoryReader
|
||||
{
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
public static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out uint lpNumberOfBytesRead);
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out uint lpNumberOfBytesWritten);
|
||||
|
||||
[DllImport("kernel32.dll")]
|
||||
public static extern bool CloseHandle(IntPtr hObject);
|
||||
|
||||
// 声明GetLastError函数
|
||||
[DllImport("kernel32.dll")]
|
||||
private static extern int GetLastError();
|
||||
|
||||
const int PROCESS_WM_READ = 0x0010;
|
||||
const int PROCESS_WM_WRITE = 0x0020;
|
||||
const int PROCESS_WM_ALL = 0x003F;
|
||||
const int PROCESS_ALL_ACCESS = 0x1F0FFF;
|
||||
|
||||
public static void ReadMemory(int nProcess, int nAddress, int nReadSize)
|
||||
{
|
||||
int processId = nProcess; // 目标进程ID
|
||||
//IntPtr hProcess = OpenProcess(PROCESS_WM_READ | PROCESS_WM_WRITE, false, processId);
|
||||
IntPtr hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, processId);
|
||||
if (hProcess == IntPtr.Zero)
|
||||
{
|
||||
int errorCode = GetLastError();
|
||||
//Console.WriteLine("Process access failed.");
|
||||
BaseForms.BaseMsgForm.ShowError("Process access failed.");
|
||||
return;
|
||||
}
|
||||
|
||||
int endAddress = nAddress + nReadSize;
|
||||
while (nAddress < endAddress)
|
||||
{
|
||||
IntPtr address = new IntPtr(nAddress); // 目标内存地址
|
||||
byte[] buffer = new byte[1024]; // 读取数据的缓冲区
|
||||
uint bytesRead;
|
||||
if (ReadProcessMemory(hProcess, address, buffer, (uint)buffer.Length, out bytesRead))
|
||||
{
|
||||
//Console.WriteLine("Read successful.");
|
||||
string s = System.Text.Encoding.Default.GetString(buffer);
|
||||
if (s.Contains("pddidResult"))
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//Console.WriteLine("Read failed.");
|
||||
// 获取最后一个错误代码
|
||||
int errorCode = GetLastError();
|
||||
//Console.WriteLine("Error code: " + errorCode);
|
||||
// 将错误代码转换为异常(可选)
|
||||
Exception ex = Marshal.GetExceptionForHR(errorCode);
|
||||
//BaseForms.BaseMsgForm.ShowError(ex.Message);
|
||||
}
|
||||
nAddress += 1000;
|
||||
}
|
||||
//CloseHandle(hProcess);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -242,6 +242,7 @@ namespace TemuKJD.BLL
|
||||
shop.LoginStatus2 = BaseRegex.GetStringJson(ref shopStr, "login_status2");
|
||||
shop.OperateSubSaName = BaseRegex.GetStringJson(ref shopStr, "operate_sub_sa_name");
|
||||
shop.AddProductRemaining = BaseRegex.GetIntJson(ref shopStr, "add_product_remaining");
|
||||
shop.pddid = BaseRegex.GetStringJson(ref shopStr, "pddid");
|
||||
|
||||
if (BaseClass.MainPath == "binxixi")
|
||||
{
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace TemuKJD.Helper
|
||||
public class BaseResourceRequestHandler : ResourceRequestHandler
|
||||
{
|
||||
public string UserAgent = string.Empty;
|
||||
public Func<object, string, string, bool> BeforeResourceLoadEvent; // sender, requestUrl, postData, true(表示取消执行)
|
||||
public Func<object, string, string, IRequest, bool> BeforeResourceLoadEvent; // sender, requestUrl, postData, true(表示取消执行)
|
||||
public Action<object, string, string, string, IRequest> ResourceLoadCompleteEvent; // sender, requestUrl, postData, responseData
|
||||
public Action<object, string, string, string> ResourceRedirectEvent; // sender, requestUrl, postData, redirectUrl
|
||||
public string[] ResourceContentTypeRegister = new string[] { "application/json", "javascript", "application/x-www-form-urlencoded", "text/html", "text/plain" };
|
||||
@@ -96,7 +96,7 @@ namespace TemuKJD.Helper
|
||||
try
|
||||
{
|
||||
string postData = GetPostData(request);
|
||||
bool? result = BeforeResourceLoadEvent?.Invoke(chromiumWebBrowser, request.Url, postData);
|
||||
bool? result = BeforeResourceLoadEvent?.Invoke(chromiumWebBrowser, request.Url, postData, request);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
using AllBase.Model.Result;
|
||||
using Fiddler;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using TemuKJD.BaseForms;
|
||||
|
||||
namespace TemuKJD.Helper
|
||||
{
|
||||
public class FddlHelper
|
||||
{
|
||||
|
||||
public bool InstallCertificate()
|
||||
{
|
||||
//FiddlerApplication.Log.LogString($"安装证书,为了监听https请求");
|
||||
if (!CertMaker.rootCertExists())
|
||||
{
|
||||
if (!CertMaker.createRootCert() || !CertMaker.trustRootCert())
|
||||
{
|
||||
BaseMsgForm.ShowError("证书安装失败,请重试!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>启动fiddlercore本地设置的代理端口监听</summary>
|
||||
public void StartupFiddlerCore(int port = 9898)
|
||||
{
|
||||
//Console.WriteLine("fiddler启动了...listening: port: 127.0.0.1:" + port);
|
||||
FiddlerApplication.Startup(port, FiddlerCoreStartupFlags.Default | FiddlerCoreStartupFlags.RegisterAsSystemProxy);
|
||||
//FiddlerApplication.Log.LogString($"Created endpoint listening on port {CONFIG.ListenPort}");
|
||||
}
|
||||
|
||||
public void AttachListening()
|
||||
{
|
||||
//FiddlerApplication.OnNotification += (o, nea) => Console.WriteLine($"** NotifyUser: {nea.NotifyString}");
|
||||
//FiddlerApplication.Log.OnLogString += (o, lea) => Console.WriteLine($"** LogString: {lea.LogString}");
|
||||
|
||||
FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
|
||||
FiddlerApplication.BeforeResponse += FiddlerApplication_BeforeResponse;
|
||||
}
|
||||
|
||||
/// <summary>拦截请求返回Request信息</summary>
|
||||
private void FiddlerApplication_BeforeRequest(Session oSession)
|
||||
{
|
||||
//Debug.WriteLine(oSession.fullUrl);
|
||||
|
||||
// In order to enable response tampering, buffering mode MUST
|
||||
// be enabled; this allows FiddlerCore to permit modification of
|
||||
// the response in the BeforeResponse handler rather than streaming
|
||||
// the response to the client as the response comes in.
|
||||
oSession.bBufferResponse = false;
|
||||
|
||||
// Set this property if you want FiddlerCore to automatically authenticate by
|
||||
// answering Digest/Negotiate/NTLM/Kerberos challenges itself
|
||||
//session["X-AutoAuth"] = "(default)";
|
||||
|
||||
//FiddlerApplication.Log.LogString($" {oSession.fullUrl }");
|
||||
}
|
||||
|
||||
/// <summary>拦截请求返回Response信息</summary>
|
||||
private void FiddlerApplication_BeforeResponse(Session oSession)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>关闭fiddlercore设置的代理</summary>
|
||||
public void UninstallFiddler()
|
||||
{
|
||||
if (FiddlerApplication.IsStarted())
|
||||
{
|
||||
FiddlerApplication.Shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>卸载证书</summary>
|
||||
public bool UninstallCertificate()
|
||||
{
|
||||
if (CertMaker.rootCertExists())
|
||||
{
|
||||
if (!CertMaker.removeFiddlerGeneratedCerts(true))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,6 +54,9 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\DllReference\DevComponents.DotNetBar2.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="FiddlerCore4">
|
||||
<HintPath>..\DllReference\FiddlerCore4.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NaiBa.CefHelper.138">
|
||||
<HintPath>..\DllReference\NaiBa.CefHelper.138.dll</HintPath>
|
||||
</Reference>
|
||||
@@ -72,6 +75,7 @@
|
||||
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.Composition" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data.SQLite, Version=1.0.109.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
|
||||
@@ -80,6 +84,7 @@
|
||||
</Reference>
|
||||
<Reference Include="System.Design" />
|
||||
<Reference Include="System.Drawing.Design" />
|
||||
<Reference Include="System.Runtime.Caching" />
|
||||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
@@ -92,6 +97,7 @@
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BLL\MemoryReader.cs" />
|
||||
<Compile Include="BLL\ProductSelectBLL.cs" />
|
||||
<Compile Include="BoundObject.cs" />
|
||||
<Compile Include="ChangeForm.cs">
|
||||
@@ -103,6 +109,7 @@
|
||||
<Compile Include="CookieVisitor.cs" />
|
||||
<Compile Include="Extension\DataGridViewExtension.cs" />
|
||||
<Compile Include="Helper\CustomResourceRequestHandlerLocal.cs" />
|
||||
<Compile Include="Helper\FddlHelper.cs" />
|
||||
<Compile Include="Helper\LifeSpanHandlerLocal.cs" />
|
||||
<Compile Include="InitForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
@@ -473,6 +480,12 @@
|
||||
<Compile Include="PDDForms\ProductSelectForms\UcAddPrice.Designer.cs">
|
||||
<DependentUpon>UcAddPrice.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="PDDForms\ShopForms\PDDShopUpdateFddlCookieForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="PDDForms\ShopForms\PDDShopUpdateFddlCookieForm.Designer.cs">
|
||||
<DependentUpon>PDDShopUpdateFddlCookieForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="ToolForms\CefForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@@ -917,6 +930,9 @@
|
||||
<EmbeddedResource Include="PDDForms\ProductSelectForms\UcAddPrice.resx">
|
||||
<DependentUpon>UcAddPrice.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="PDDForms\ShopForms\PDDShopUpdateFddlCookieForm.resx">
|
||||
<DependentUpon>PDDShopUpdateFddlCookieForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="ToolForms\CefForm.resx">
|
||||
<DependentUpon>CefForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
||||
@@ -224,6 +224,7 @@ namespace TemuKJD.KJDForms.ShopForms
|
||||
+ "&login_status2=" + shop.LoginStatus2
|
||||
+ "&cookie=" + shop.Cookies.Replace("&", "&").Replace("%", "%").Replace("+", "+")
|
||||
+ "&cookie2=" + shop.Cookies2.Replace("&", "&").Replace("%", "%").Replace("+", "+")
|
||||
+ "&pddid=" + shop.pddid
|
||||
+ fTool;
|
||||
var result = GetHtml.PostUtf8(url, data);
|
||||
if (!result.Contains("\"code\":200"))
|
||||
|
||||
@@ -193,6 +193,7 @@ namespace TemuKJD.PDDForms.AdminForms
|
||||
}
|
||||
}
|
||||
shop.Cookies = cookies;
|
||||
shop.pddid = ""; // 网页登录无拼多多id(pddid)
|
||||
if (isSuccess)
|
||||
{
|
||||
shop.LoginStatus = "登录成功";
|
||||
@@ -302,6 +303,7 @@ namespace TemuKJD.PDDForms.AdminForms
|
||||
cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(shopMainUrl, true);
|
||||
CustomResourceRequestHandlerLocal resourceRequestHandler = new CustomResourceRequestHandlerLocal();
|
||||
resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete;
|
||||
resourceRequestHandler.BeforeResourceLoadEvent += RequestHandler_BeforeResourceLoad;
|
||||
cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
|
||||
//var lifeSpanHandler = new LifeSpanHandlerLocal(PopWindowType.SelfWindow);
|
||||
var lifeSpanHandler = new LifeSpanHandlerLocal(PopWindowType.NewTitleWindow);
|
||||
@@ -355,6 +357,9 @@ namespace TemuKJD.PDDForms.AdminForms
|
||||
Thread.Sleep(20);
|
||||
CEFBrowser.DeleteCookie(cefWebBrowser.GetCookieManager(null));
|
||||
|
||||
if (cookieLst.Any(c => c.Name == "PddBrowser") && cookieLst.Any(c => c.Value.StartsWith("windows")) && !string.IsNullOrEmpty(shop.pddid))
|
||||
cefWebBrowser.ExecuteScriptAsync("navigator.__defineGetter__('userAgent', function() { return 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12'; });");
|
||||
|
||||
//cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager
|
||||
//if (this.openType != EnumOpenType.login)
|
||||
{
|
||||
@@ -367,13 +372,13 @@ namespace TemuKJD.PDDForms.AdminForms
|
||||
}
|
||||
}
|
||||
|
||||
if (this.openType != EnumOpenType.login)
|
||||
{
|
||||
var cookie2 = shop.Cookies2;
|
||||
//var t2 = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.RequestContext.GetCookieManager(null));
|
||||
var t2 = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.GetCookieManager(null)); // cef138
|
||||
t2.Wait(5000);
|
||||
}
|
||||
//if (this.openType != EnumOpenType.login)
|
||||
//{
|
||||
// var cookie2 = shop.Cookies2;
|
||||
// //var t2 = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.RequestContext.GetCookieManager(null));
|
||||
// var t2 = CEFBrowser.SetCookieAsync(shopCookieHead2, cookie2, cefWebBrowser.GetCookieManager(null)); // cef138
|
||||
// t2.Wait(5000);
|
||||
//}
|
||||
|
||||
//根据登录的具体店铺设置local storage
|
||||
if (!string.IsNullOrEmpty(shop.ShopId))
|
||||
@@ -492,6 +497,29 @@ namespace TemuKJD.PDDForms.AdminForms
|
||||
cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(sb.ToString());
|
||||
}
|
||||
|
||||
//public Func<object, string, string, request, bool> BeforeResourceLoadEvent; // sender, requestUrl, postData, request, true(表示取消执行)
|
||||
private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request)
|
||||
{
|
||||
if (shop.Cookies.Contains("windows") && shop.Cookies.Contains("PddBrowser") && !string.IsNullOrEmpty(shop.pddid))
|
||||
{
|
||||
var ua = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12";
|
||||
request.SetHeaderByName("User-Agent", ua, true);
|
||||
request.SetHeaderByName("pddid", shop.pddid, true);
|
||||
request.SetHeaderByName("Accept-Encoding", "gzip, deflate, br", true);
|
||||
var headers = request.Headers;
|
||||
headers.Remove("sec-ch-ua");
|
||||
headers.Remove("sec-ch-ua-mobile");
|
||||
headers.Remove("sec-ch-ua-platform");
|
||||
headers.Remove("Accept-Language");
|
||||
headers.Remove("Origin");
|
||||
//headers["User-Agent"] = ua;
|
||||
//headers["Accept-Encoding"] = "gzip, deflate, br";
|
||||
request.Headers = headers;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int GetAntiContentsTimes = 40;
|
||||
private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request)
|
||||
{
|
||||
|
||||
+1
-1
@@ -620,7 +620,7 @@
|
||||
// colUpdateCookies
|
||||
//
|
||||
this.colUpdateCookies.FillWeight = 67F;
|
||||
this.colUpdateCookies.HeaderText = "导入Cookie";
|
||||
this.colUpdateCookies.HeaderText = "获取Cookie";
|
||||
this.colUpdateCookies.Name = "colUpdateCookies";
|
||||
this.colUpdateCookies.ReadOnly = true;
|
||||
this.colUpdateCookies.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
|
||||
@@ -21,6 +21,7 @@ using Work;
|
||||
using NaiBa.Util;
|
||||
using System.Globalization;
|
||||
using TemuKJD.BLL;
|
||||
using System.Diagnostics;
|
||||
//using TemuKJD.PDDForms.AdminForms;
|
||||
|
||||
namespace TemuKJD.PDDForms.ShopForms
|
||||
@@ -203,6 +204,7 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
+ "&login_status2=" + shop.LoginStatus2
|
||||
+ "&cookie=" + shop.Cookies.Replace("&", "&").Replace("%", "%").Replace("+", "+")
|
||||
+ "&cookie2=" + shop.Cookies2.Replace("&", "&").Replace("%", "%").Replace("+", "+")
|
||||
+ "&pddid=" + shop.pddid
|
||||
+ fTool;
|
||||
var result = GetHtml.PostUtf8(url, data);
|
||||
if (!result.Contains("\"code\":200"))
|
||||
@@ -488,7 +490,7 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
"多重登录",
|
||||
param.ApiAuthStatus,
|
||||
param.BuyApiAuth.ApiAuthStatus,
|
||||
"导入Cookie",
|
||||
"获取Cookie",
|
||||
"复制Cookie",
|
||||
"编辑",
|
||||
"删除");
|
||||
@@ -614,7 +616,8 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
string refere = "https://mms.pinduoduo.com/login/";
|
||||
refere = "https://mms.pinduoduo.com/home";
|
||||
string body = @"{}";
|
||||
return HttpResponseBLL.PDDPostResponse(shop, url, body, refere);
|
||||
var result = HttpResponseBLL.PDDPostResponse(shop, url, body, refere);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static string CheckShopLogin(ShopLoginInfo shop, string refere = "https://mms.pinduoduo.com/home/")
|
||||
@@ -698,6 +701,44 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
shop.ShopSubAccountList.Add(subAccount);
|
||||
}
|
||||
}
|
||||
|
||||
GetWorkBenchCookie();
|
||||
}
|
||||
|
||||
void GetWorkBenchCookie()
|
||||
{
|
||||
return;
|
||||
//FiddlerCore.Utilities.SmartAssembly.Attributes.
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
var process = Process.GetProcessesByName("notepad").FirstOrDefault();// 获取Notepad进程的实例
|
||||
if (process != null)
|
||||
{
|
||||
IntPtr handle = process.Handle;
|
||||
MemoryReader.ReadMemory(handle.ToInt32(), 0X1474DEC8, 0X50000000);
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
//var memory = new Memory(process); // 创建Memory对象来操作进程内存
|
||||
//IntPtr address = new IntPtr(0x12345678); // 假设的内存地址(需要根据实际情况调整)
|
||||
//byte[] buffer = new byte[1024]; // 读取数据的缓冲区大小根据需要调整
|
||||
//if (memory.Read(address, buffer)) // 读取内存到buffer中
|
||||
//{
|
||||
// Console.WriteLine("Read successful.");
|
||||
// Console.WriteLine(Encoding.ASCII.GetString(buffer)); // 打印读取的数据(这里假设是ASCII文本)
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// Console.WriteLine("Read failed.");
|
||||
//}
|
||||
|
||||
Thread.Sleep(5000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
||||
@@ -775,10 +816,15 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
Clipboard.SetDataObject(cookJs);
|
||||
BaseMsgForm.ShowInfo("复制成功");
|
||||
break;
|
||||
case "获取Cookie":
|
||||
case "导入Cookie":
|
||||
PDDShopUpdateCookieForm updateCookieForm = new PDDShopUpdateCookieForm(shop);
|
||||
updateCookieForm.SaveComplete += UpdateCookieForm_SaveComplete;
|
||||
updateCookieForm.ShowDialog();
|
||||
//PDDShopUpdateCookieForm updateCookieForm = new PDDShopUpdateCookieForm(shop);
|
||||
//updateCookieForm.SaveComplete += UpdateCookieForm_SaveComplete;
|
||||
//updateCookieForm.ShowDialog();
|
||||
PDDShopUpdateFddlCookieForm updateFddlCookieForm = new PDDShopUpdateFddlCookieForm(shop);
|
||||
updateFddlCookieForm.SaveComplete += UpdateCookieForm_SaveComplete;
|
||||
updateFddlCookieForm.ShowDialog();
|
||||
updateFddlCookieForm.fddlHelper.UninstallFiddler();
|
||||
break;
|
||||
case "删除":
|
||||
if (BaseMsgForm.ShowConfirm("确定删除店铺吗?删除后不可恢复!").DialogResult == DialogResult.Cancel)
|
||||
|
||||
+1
-1
@@ -112,7 +112,7 @@
|
||||
this.splitContainer1.Panel2.Controls.Add(this.btnReload);
|
||||
this.splitContainer1.Panel2.Controls.Add(this.chkCloseAfterLogin);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1438, 736);
|
||||
this.splitContainer1.SplitterDistance = 671;
|
||||
this.splitContainer1.SplitterDistance = 672;
|
||||
this.splitContainer1.SplitterWidth = 3;
|
||||
this.splitContainer1.TabIndex = 4;
|
||||
//
|
||||
|
||||
@@ -123,6 +123,7 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
if (!cefWebBrowser.GetBrowser().MainFrame.IsValid)
|
||||
continue;
|
||||
|
||||
// 刷新cookie
|
||||
if (openType == EnumOpenType.refresh_cookie)
|
||||
{
|
||||
string cookies = "";
|
||||
@@ -144,6 +145,12 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
cookies += cookie.Name + "=" + cookie.Value + "; ";
|
||||
cookieListNew.Add(cookie);
|
||||
}
|
||||
|
||||
if (cookieListNew.Any(c => c.Name == "PASS_ID" && c.Value.StartsWith("windows")) &&
|
||||
!cookieListNew.Any(c => c.Name == "PddBrowser"))
|
||||
{
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "PddBrowser", Value = "1", Expires = DateTime.Now.AddYears(1), });
|
||||
}
|
||||
cookies = JsonHelper.SerializeObject(cookieListNew);
|
||||
|
||||
if (!string.IsNullOrEmpty(cookies))
|
||||
@@ -250,6 +257,7 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
s.LoginStatus = "登录成功";
|
||||
s.Cookies = cookies;
|
||||
s.LastRefreshDate = DateTime.Now.ToString("yyyyMMdd");
|
||||
s.pddid = ""; // 网页登录无拼多多id(pddid)
|
||||
}
|
||||
StartUp.SaveLocalShopLoginInfo(); // 店铺保存到本地
|
||||
PDDShopListForm.UpdateServerShopCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
|
||||
@@ -348,6 +356,7 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(shopMainUrl, true);
|
||||
CustomResourceRequestHandlerLocal resourceRequestHandler = new CustomResourceRequestHandlerLocal();
|
||||
resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete;
|
||||
resourceRequestHandler.BeforeResourceLoadEvent += RequestHandler_BeforeResourceLoad;
|
||||
cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
|
||||
var lifeSapnHandler = new LifeSpanHandlerLocal(PopWindowType.SelfWindow);
|
||||
cefWebBrowser.LifeSpanHandler = lifeSapnHandler;
|
||||
@@ -399,11 +408,14 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
Thread.Sleep(20);
|
||||
CEFBrowser.DeleteCookie(cefWebBrowser.GetCookieManager(null));
|
||||
|
||||
if (cookieLst.Any(c=>c.Name == "PddBrowser") && cookieLst.Any(c => c.Value.StartsWith ("windows")) && !string.IsNullOrEmpty(shop.pddid))
|
||||
cefWebBrowser.ExecuteScriptAsync("navigator.__defineGetter__('userAgent', function() { return 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12'; });");
|
||||
|
||||
//cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager
|
||||
//if (this.openType != EnumOpenType.login)
|
||||
{
|
||||
//var t = CEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), cefWebBrowser.GetCookieManager(null));
|
||||
foreach(var cook in cookieLst)
|
||||
foreach (var cook in cookieLst)
|
||||
{
|
||||
var t = CEFBrowser.SetCookieAsync(cook.Domain, cook.Name + "=" + cook.Value + ";", cefWebBrowser.GetCookieManager(null));
|
||||
t.Wait(5000);
|
||||
@@ -537,6 +549,29 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
}
|
||||
}
|
||||
|
||||
//public Func<object, string, string, request, bool> BeforeResourceLoadEvent; // sender, requestUrl, postData, request, true(表示取消执行)
|
||||
private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request)
|
||||
{
|
||||
if (shop.Cookies.Contains("windows") && shop.Cookies.Contains("PddBrowser") && !string.IsNullOrEmpty(shop.pddid))
|
||||
{
|
||||
var ua = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.5.40.8 Safari/537.36 PddWorkbench-Online PddBrowser pdd_windows_version/3.0.3.12";
|
||||
request.SetHeaderByName("User-Agent", ua, true);
|
||||
request.SetHeaderByName("pddid", shop.pddid, true);
|
||||
request.SetHeaderByName("Accept-Encoding", "gzip, deflate, br", true);
|
||||
var headers = request.Headers;
|
||||
headers.Remove("sec-ch-ua");
|
||||
headers.Remove("sec-ch-ua-mobile");
|
||||
headers.Remove("sec-ch-ua-platform");
|
||||
headers.Remove("Accept-Language");
|
||||
headers.Remove("Origin");
|
||||
//headers["User-Agent"] = ua;
|
||||
//headers["Accept-Encoding"] = "gzip, deflate, br";
|
||||
request.Headers = headers;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static int GetAntiContentsTimes = 40;
|
||||
private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request)
|
||||
{
|
||||
|
||||
@@ -26,14 +26,14 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
}
|
||||
public partial class PDDShopUpdateCookieForm : LRBaseForm
|
||||
{
|
||||
ShopLoginInfo shopLoginInfo = null;
|
||||
ShopLoginInfo shop = null;
|
||||
SetCookieFromEnum updateFrom;
|
||||
string cookieVersion = "";
|
||||
|
||||
public PDDShopUpdateCookieForm(ShopLoginInfo shop = null, SetCookieFromEnum from = SetCookieFromEnum.normal_user, string _cookieVersion="国内版")
|
||||
public PDDShopUpdateCookieForm(ShopLoginInfo _shop = null, SetCookieFromEnum from = SetCookieFromEnum.normal_user, string _cookieVersion="国内版")
|
||||
{
|
||||
InitializeComponent();
|
||||
shopLoginInfo = shop;
|
||||
shop = _shop;
|
||||
updateFrom = from;
|
||||
cookieVersion = _cookieVersion;
|
||||
this.TitleText = "更新Cookie";
|
||||
@@ -45,8 +45,8 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
|
||||
private void ShopUpdateCookieForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (shopLoginInfo != null)
|
||||
txtLoginName.Text = shopLoginInfo.LoginName + " " + shopLoginInfo.ShopAccount + " " + shopLoginInfo.Notes;
|
||||
if (shop != null)
|
||||
txtLoginName.Text = shop.LoginName + " " + shop.ShopAccount + " " + shop.Notes;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -78,7 +78,7 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
|
||||
private void btnOk_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (shopLoginInfo == null)
|
||||
if (shop == null)
|
||||
{
|
||||
BaseMsgForm.ShowError("店铺为空!");
|
||||
return;
|
||||
@@ -87,7 +87,7 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
cookieVersion = this.radioButton1.Checked ? "国内版" : "国际版";
|
||||
bool ok1 = false;
|
||||
bool ok2 = false;
|
||||
if ((this.txtCookieJs1.Text.Contains("PASS_ID") && this.txtCookieJs1.Text.Contains("api_uid")) || !string.IsNullOrWhiteSpace(txtSubPassId.Text))
|
||||
if ((this.txtCookieJs1.Text.Contains("PASS_ID") /*&& this.txtCookieJs1.Text.Contains("api_uid")*/) || !string.IsNullOrWhiteSpace(txtSubPassId.Text))
|
||||
{
|
||||
ok1 = GetCookie1();
|
||||
}
|
||||
@@ -98,9 +98,13 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
|
||||
if (ok1 || ok2)
|
||||
{
|
||||
this.OnSaveComplete(shopLoginInfo);
|
||||
this.OnSaveComplete(shop);
|
||||
this.Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
BaseMsgForm.ShowError("缺少关键cookie字段,请确认是店铺登录的cookie!");
|
||||
}
|
||||
}
|
||||
|
||||
bool GetCookie1()
|
||||
@@ -147,6 +151,7 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
"webp=" + webp + ";" +
|
||||
"x-visit-time=" + x_visit_time + ";";
|
||||
|
||||
//PASS_ID=windows_1-txt3KQyFr2JBdl/PeNNwLLsMj2geDn/BnlN1xEg/hdkC8Kx5WrYvqwTCWi9i50ZfXH0jbMX80leYsfebgQ4kLQ_492379693_91339707; PddBrowser=1; api_uid=Ck3IU2jeM5VoLABZFGCTAg==; rckk=F0JWp023Drn2QqjzLaKOJ0omuqKhTPlC; _bee=F0JWp023Drn2QqjzLaKOJ0omuqKhTPlC; ru1k=f3d9839e-c5ed-430f-8a85-41e6827c526e; _f77=f3d9839e-c5ed-430f-8a85-41e6827c526e; ru2k=20807545-2762-4365-8aa8-b8de45bd76f0; _a42=20807545-2762-4365-8aa8-b8de45bd76f0
|
||||
List<Cookie> cookieList = new List<Cookie>();
|
||||
if (!string.IsNullOrEmpty(_a42))
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "_a42", Value = _a42, Expires = DateTime.Now.AddYears(1), HttpOnly = true, Secure = true, });
|
||||
@@ -174,6 +179,8 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
cookieList.Add(new Cookie() { Domain = "mms.pinduoduo.com", Name = "webp", Value = webp, Expires = DateTime.Now.AddDays(14), Path= "/home" });
|
||||
if (!string.IsNullOrEmpty(x_visit_time))
|
||||
cookieList.Add(new Cookie() { Domain = "mms.pinduoduo.com", Name = "x-visit-time", Value = x_visit_time, Expires = DateTime.Now.AddDays(100), });
|
||||
if (PASS_ID.StartsWith("windows") && !cookieList.Any(c => c.Name == "PddBrowser"))
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "PddBrowser", Value = "1", Expires = DateTime.Now.AddYears(1), });
|
||||
cookie = JsonHelper.SerializeObject(cookieList);
|
||||
|
||||
var cookieShop = new ShopLoginInfo();
|
||||
@@ -197,14 +204,14 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!shopLoginInfo.LoginName.EndsWith(maskMobile) && shopLoginInfo.LoginName != username && shopLoginInfo.LoginName != mallName)
|
||||
if (!shop.LoginName.EndsWith(maskMobile) && shop.LoginName != username && shop.LoginName != mallName)
|
||||
{
|
||||
BaseMsgForm.ShowError("cookie与店铺不匹配,请核对店铺!");
|
||||
return false;
|
||||
}
|
||||
|
||||
List<ShopLoginInfo> serverShopLst = new List<ShopLoginInfo>();
|
||||
var rst = ShopBLL.AdminGetServerShopLstForSetCookie(shopLoginInfo, serverShopLst);
|
||||
var rst = ShopBLL.AdminGetServerShopLstForSetCookie(shop, serverShopLst);
|
||||
|
||||
if (rst != "success")
|
||||
{
|
||||
@@ -217,29 +224,29 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
|
||||
if (updateFrom == SetCookieFromEnum.normal_user) // 普通用户更新本地店铺
|
||||
{
|
||||
var localShop = GlobalConfig.ShopLoginList.Where(v => v.LoginName == shopLoginInfo.LoginName).ToList();
|
||||
var localShop = GlobalConfig.ShopLoginList.Where(v => v.LoginName == shop.LoginName).ToList();
|
||||
foreach (var sc in localShop)
|
||||
{
|
||||
sc.Cookies = cookie;
|
||||
sc.LoginStatus = "登录成功";
|
||||
}
|
||||
}
|
||||
shopLoginInfo.Cookies = cookie;
|
||||
shopLoginInfo.ShopId = username;
|
||||
shopLoginInfo.ShopAccount = mallName;
|
||||
shopLoginInfo.LoginStatus = "登录成功";
|
||||
shop.Cookies = cookie;
|
||||
shop.ShopId = username;
|
||||
shop.ShopAccount = mallName;
|
||||
shop.LoginStatus = "登录成功";
|
||||
|
||||
// 店铺更新写入到服务端
|
||||
var url = BaseClass.BuildObjString("shop/mdy_shop");
|
||||
var data1 = UserLogin.GetSignaturex()
|
||||
+ "&login_name=" + shopLoginInfo.LoginName
|
||||
+ "&new_shop_id=" + shopLoginInfo.ShopId
|
||||
+ "&shop_account=" + shopLoginInfo.ShopAccount;
|
||||
+ "&login_name=" + shop.LoginName
|
||||
+ "&new_shop_id=" + shop.ShopId
|
||||
+ "&shop_account=" + shop.ShopAccount;
|
||||
var result = GetHtml.PostUtf8(url, data1);
|
||||
|
||||
PDDShopListForm.UpdateServerShopCookies(shopLoginInfo); // 店铺cookie写入服务端,不同账号下的同名店铺一起更新cookie
|
||||
PDDShopListForm.UpdateServerShopCookies(shop); // 店铺cookie写入服务端,不同账号下的同名店铺一起更新cookie
|
||||
|
||||
PDDShopLoginForm loginForm = new PDDShopLoginForm(shopLoginInfo);
|
||||
PDDShopLoginForm loginForm = new PDDShopLoginForm(shop);
|
||||
loginForm.openType = EnumOpenType.refresh_cookie;
|
||||
loginForm.ShowDialog();
|
||||
|
||||
@@ -290,14 +297,14 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
|
||||
//var maskMobile = BaseRegex.GetStringJson(ref data, "maskOwnerMobile");
|
||||
//if (!shopLoginInfo.LoginName.EndsWith(maskMobile))
|
||||
if (!data.Contains(shopLoginInfo.ShopAccount))
|
||||
if (!data.Contains(shop.ShopAccount))
|
||||
{
|
||||
BaseMsgForm.ShowError("cookie与国际版店铺不匹配,请核对店铺!");
|
||||
return false;
|
||||
}
|
||||
|
||||
List<ShopLoginInfo> serverShopLst = new List<ShopLoginInfo>();
|
||||
var rst = ShopBLL.AdminGetServerShopLstForSetCookie(shopLoginInfo, serverShopLst);
|
||||
var rst = ShopBLL.AdminGetServerShopLstForSetCookie(shop, serverShopLst);
|
||||
|
||||
if (rst != "success")
|
||||
{
|
||||
@@ -310,16 +317,16 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
|
||||
if (updateFrom == SetCookieFromEnum.normal_user) // 普通用户更新本地店铺
|
||||
{
|
||||
var localShop = GlobalConfig.ShopLoginList.Where(v => v.LoginName == shopLoginInfo.LoginName).ToList();
|
||||
var localShop = GlobalConfig.ShopLoginList.Where(v => v.LoginName == shop.LoginName).ToList();
|
||||
foreach (var sc in localShop)
|
||||
{
|
||||
sc.Cookies2 = cookie2;
|
||||
sc.LoginStatus2 = "国际版在线";
|
||||
}
|
||||
}
|
||||
shopLoginInfo.Cookies2 = cookie2;
|
||||
shopLoginInfo.LoginStatus2 = "国际版在线";
|
||||
PDDShopListForm.UpdateServerShopCookies(shopLoginInfo); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
|
||||
shop.Cookies2 = cookie2;
|
||||
shop.LoginStatus2 = "国际版在线";
|
||||
PDDShopListForm.UpdateServerShopCookies(shop); // 店铺cookie写入服务端,多店共用一个登录账号一组cookie
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -329,7 +336,7 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
/// <param name="loginData"></param>
|
||||
void GetShopFirstLogin(string loginData, List<ShopLoginInfo> lstServerShop)
|
||||
{
|
||||
if (this.shopLoginInfo == null)
|
||||
if (this.shop == null)
|
||||
return;
|
||||
if (lstServerShop == null)
|
||||
lstServerShop = new List<ShopLoginInfo>();
|
||||
@@ -347,7 +354,7 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
{
|
||||
AccountId = BaseRegex.GetStringJson(ref prod, "mallId"),
|
||||
AccountName = BaseRegex.GetStringJson(ref prod, "mallName"),
|
||||
LoginName = shopLoginInfo.LoginName,
|
||||
LoginName = shop.LoginName,
|
||||
UserName = BaseClass.UserName,
|
||||
LoginStatus = "登录成功",
|
||||
};
|
||||
@@ -359,14 +366,14 @@ namespace TemuKJD.PDDForms.ShopForms
|
||||
{
|
||||
ShopLoginInfo newShop = new ShopLoginInfo()
|
||||
{
|
||||
UserName = shopLoginInfo.UserName,
|
||||
LoginName = shopLoginInfo.LoginName,
|
||||
Password = shopLoginInfo.Password,
|
||||
GroupName = shopLoginInfo.GroupName,
|
||||
UserName = shop.UserName,
|
||||
LoginName = shop.LoginName,
|
||||
Password = shop.Password,
|
||||
GroupName = shop.GroupName,
|
||||
ShopAccount = sc.AccountName,
|
||||
ShopId = sc.AccountId,
|
||||
SubUserName = shopLoginInfo.SubUserName,
|
||||
Notes = shopLoginInfo.Notes,
|
||||
SubUserName = shop.SubUserName,
|
||||
Notes = shop.Notes,
|
||||
};
|
||||
|
||||
var oldServerShop = lstServerShop.FirstOrDefault(s =>
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
|
||||
namespace TemuKJD.PDDForms.ShopForms
|
||||
{
|
||||
partial class PDDShopUpdateFddlCookieForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PDDShopUpdateFddlCookieForm));
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.panel2.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.BackColor = System.Drawing.Color.White;
|
||||
this.panel2.Controls.Add(this.label3);
|
||||
this.panel2.Controls.Add(this.label2);
|
||||
this.panel2.Controls.Add(this.label1);
|
||||
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.panel2.Location = new System.Drawing.Point(1, 33);
|
||||
this.panel2.Name = "panel2";
|
||||
this.panel2.Size = new System.Drawing.Size(543, 289);
|
||||
this.panel2.TabIndex = 1;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||
this.label2.Location = new System.Drawing.Point(62, 87);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(202, 21);
|
||||
this.label2.TabIndex = 1;
|
||||
this.label2.Text = "请使用小蜜蜂打开店铺后台";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||
this.label1.Location = new System.Drawing.Point(62, 133);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(175, 21);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "Cookie获取中,请稍候";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||
this.label3.ForeColor = System.Drawing.Color.Red;
|
||||
this.label3.Location = new System.Drawing.Point(62, 180);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(74, 21);
|
||||
this.label3.TabIndex = 2;
|
||||
this.label3.Text = "错误提示";
|
||||
//
|
||||
// PDDShopUpdateFddlCookieForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.ClientSize = new System.Drawing.Size(545, 323);
|
||||
this.Controls.Add(this.panel2);
|
||||
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "PDDShopUpdateFddlCookieForm";
|
||||
this.Text = "更新Cookie";
|
||||
this.TitleText = "更新Cookie";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.PDDShopUpdateFddlCookieForm_FormClosing);
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.PDDShopUpdateFddlCookieForm_FormClosed);
|
||||
this.Load += new System.EventHandler(this.PDDShopUpdateFddlCookieForm_Load);
|
||||
this.Controls.SetChildIndex(this.panel2, 0);
|
||||
this.panel2.ResumeLayout(false);
|
||||
this.panel2.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,331 @@
|
||||
using AllBase;
|
||||
using AllBase.Helper;
|
||||
using AllBase.Model.Result;
|
||||
using CefSharp;
|
||||
using Fiddler;
|
||||
using NaiBa.Util.Extension;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using TemuKJD.BaseForms;
|
||||
using TemuKJD.BLL;
|
||||
using TemuKJD.Helper;
|
||||
using Work;
|
||||
|
||||
namespace TemuKJD.PDDForms.ShopForms
|
||||
{
|
||||
public partial class PDDShopUpdateFddlCookieForm : LRBaseForm
|
||||
{
|
||||
ShopLoginInfo shop = null;
|
||||
SetCookieFromEnum updateFrom;
|
||||
public FddlHelper fddlHelper = new FddlHelper();
|
||||
|
||||
public PDDShopUpdateFddlCookieForm(ShopLoginInfo _shop, SetCookieFromEnum from = SetCookieFromEnum.normal_user)
|
||||
{
|
||||
InitializeComponent();
|
||||
shop = _shop;
|
||||
updateFrom = from;
|
||||
}
|
||||
|
||||
private void PDDShopUpdateFddlCookieForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
int i = 0;
|
||||
while (true)
|
||||
{
|
||||
i++;
|
||||
string txt = "Cookie获取中,请稍候";
|
||||
for (int j = 0; j < i % 3 + 1; j++)
|
||||
{
|
||||
txt += ".";
|
||||
}
|
||||
|
||||
if (!Created || Disposing || IsDisposed)
|
||||
break;
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.label1.Text = txt;
|
||||
}));
|
||||
Thread.Sleep(500);
|
||||
}
|
||||
});
|
||||
|
||||
fddlHelper.InstallCertificate();
|
||||
// 监听
|
||||
FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
|
||||
fddlHelper.StartupFiddlerCore(); // 启动fiddler
|
||||
|
||||
label3.Text = "";
|
||||
|
||||
}
|
||||
|
||||
private void FiddlerApplication_BeforeRequest(Session oSession)
|
||||
{
|
||||
// https://mms.pinduoduo.com/newjersy/api/mms/popup //https://mms.pinduoduo.com/janus/api/heartbeat/v2
|
||||
// https://mms.pinduoduo.com/janus/api/subSystem/getAuthToken // https://mms.pinduoduo.com/janus/api/new/userinfo
|
||||
// https://mms.pinduoduo.com/home/ // https://mms.pinduoduo.com/janus/api/checkLogin
|
||||
if (oSession.fullUrl.StartsWith("https://mms.pinduoduo.com"))
|
||||
{
|
||||
var header = oSession.RequestHeaders;
|
||||
if (!header.Any(h => h.Name == "Cookie"))
|
||||
return;
|
||||
|
||||
var headerCookie = header["Cookie"];
|
||||
if (headerCookie.Contains("JSESSIONID") && headerCookie.Contains("_nano_fp") && headerCookie.Contains("api_uid") &&
|
||||
headerCookie.Contains("_f77") && headerCookie.Contains("mms_b84d1838") && headerCookie.Contains("_a42") &&
|
||||
headerCookie.Contains("rckk") && headerCookie.Contains("ru1k") && headerCookie.Contains("ru2k") &&
|
||||
headerCookie.Contains("x-visit-time") && headerCookie.Contains("PASS_ID"))
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
shop.pddid = "";
|
||||
if (header.Any(h => h.Name == "pddid"))
|
||||
{
|
||||
shop.pddid = header["pddid"];
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
FiddlerApplication.BeforeRequest -= FiddlerApplication_BeforeRequest;
|
||||
|
||||
string JSESSIONID = BaseRegex.GetStringCookie(ref headerCookie, "JSESSIONID").ParseToString().Trim('\'', '\n', '\r');
|
||||
string _nano_fp = BaseRegex.GetStringCookie(ref headerCookie, "_nano_fp").ParseToString().Trim('\'', '\n', '\r');
|
||||
string api_uid = BaseRegex.GetStringCookie(ref headerCookie, "api_uid").ParseToString().Trim('\'', '\n', '\r');
|
||||
string _bee = BaseRegex.GetStringCookie(ref headerCookie, "_bee").ParseToString().Trim('\'', '\n', '\r');
|
||||
string _f77 = BaseRegex.GetStringCookie(ref headerCookie, "_f77").ParseToString().Trim('\'', '\n', '\r');
|
||||
string mms_b84d1838 = BaseRegex.GetStringCookie(ref headerCookie, "mms_b84d1838").ParseToString().Trim('\'', '\n', '\r');
|
||||
string _a42 = BaseRegex.GetStringCookie(ref headerCookie, "_a42").ParseToString().Trim('\'', '\n', '\r');
|
||||
string rckk = BaseRegex.GetStringCookie(ref headerCookie, "rckk").ParseToString().Trim('\'', '\n', '\r');
|
||||
string ru1k = BaseRegex.GetStringCookie(ref headerCookie, "ru1k").ParseToString().Trim('\'', '\n', '\r');
|
||||
string ru2k = BaseRegex.GetStringCookie(ref headerCookie, "ru2k").ParseToString().Trim('\'', '\n', '\r');
|
||||
string webp = BaseRegex.GetStringCookie(ref headerCookie, "webp").ParseToString().Trim('\'', '\n', '\r');
|
||||
string x_visit_time = BaseRegex.GetStringCookie(ref headerCookie, "x-visit-time").ParseToString().Trim('\'', '\n', '\r');
|
||||
string PASS_ID = BaseRegex.GetStringCookie(ref headerCookie, "PASS_ID").ParseToString().Trim('\'', '\n', '\r');
|
||||
|
||||
|
||||
string cookie = "_a42=" + _a42 + ";" +
|
||||
"_bee=" + _bee + ";" +
|
||||
"_f77=" + _f77 + ";" +
|
||||
"_nano_fp=" + _nano_fp + ";" +
|
||||
"api_uid=" + api_uid + ";" +
|
||||
"JSESSIONID=" + JSESSIONID + ";" +
|
||||
"mms_b84d1838=" + mms_b84d1838 + ";" +
|
||||
"PASS_ID=" + PASS_ID + ";" +
|
||||
"rckk=" + rckk + ";" +
|
||||
"ru1k=" + ru1k + ";" +
|
||||
"ru2k=" + ru2k + ";" +
|
||||
"webp=" + webp + ";" +
|
||||
"x-visit-time=" + x_visit_time + ";";
|
||||
|
||||
//PASS_ID=windows_1-txt3KQyFr2JBdl/PeNNwLLsMj2geDn/BnlN1xEg/hdkC8Kx5WrYvqwTCWi9i50ZfXH0jbMX80leYsfebgQ4kLQ_492379693_91339707; PddBrowser=1; api_uid=Ck3IU2jeM5VoLABZFGCTAg==; rckk=F0JWp023Drn2QqjzLaKOJ0omuqKhTPlC; _bee=F0JWp023Drn2QqjzLaKOJ0omuqKhTPlC; ru1k=f3d9839e-c5ed-430f-8a85-41e6827c526e; _f77=f3d9839e-c5ed-430f-8a85-41e6827c526e; ru2k=20807545-2762-4365-8aa8-b8de45bd76f0; _a42=20807545-2762-4365-8aa8-b8de45bd76f0
|
||||
List<Cookie> cookieList = new List<Cookie>();
|
||||
if (!string.IsNullOrEmpty(_a42))
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "_a42", Value = _a42, Expires = DateTime.Now.AddYears(1), HttpOnly = true, Secure = true, });
|
||||
if (!string.IsNullOrEmpty(_bee))
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "_bee", Value = _bee, Expires = DateTime.Now.AddYears(1), HttpOnly = true, Secure = true, });
|
||||
if (!string.IsNullOrEmpty(_f77))
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "_f77", Value = _f77, Expires = DateTime.Now.AddYears(1), HttpOnly = true, Secure = true, });
|
||||
if (!string.IsNullOrEmpty(_nano_fp))
|
||||
cookieList.Add(new Cookie() { Domain = "mms.pinduoduo.com", Name = "_nano_fp", Value = _nano_fp, Expires = DateTime.Now.AddDays(400), });
|
||||
if (!string.IsNullOrEmpty(api_uid))
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "api_uid", Value = api_uid, Expires = DateTime.Now.AddDays(400), });
|
||||
if (!string.IsNullOrEmpty(JSESSIONID))
|
||||
cookieList.Add(new Cookie() { Domain = "mms.pinduoduo.com", Name = "JSESSIONID", Value = JSESSIONID, HttpOnly = true, });
|
||||
if (!string.IsNullOrEmpty(mms_b84d1838))
|
||||
cookieList.Add(new Cookie() { Domain = "mms.pinduoduo.com", Name = "mms_b84d1838", Value = mms_b84d1838, Expires = DateTime.Now.AddDays(100), });
|
||||
if (!string.IsNullOrEmpty(PASS_ID))
|
||||
cookieList.Add(new Cookie() { Domain = "mms.pinduoduo.com", Name = "PASS_ID", Value = PASS_ID, Expires = DateTime.Now.AddDays(30), HttpOnly = true, Secure = true, });
|
||||
if (!string.IsNullOrEmpty(rckk))
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "rckk", Value = rckk, Expires = DateTime.Now.AddYears(1), HttpOnly = true, Secure = true, });
|
||||
if (!string.IsNullOrEmpty(ru1k))
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "ru1k", Value = ru1k, Expires = DateTime.Now.AddYears(1), HttpOnly = true, Secure = true, });
|
||||
if (!string.IsNullOrEmpty(ru2k))
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "ru2k", Value = ru2k, Expires = DateTime.Now.AddYears(1), HttpOnly = true, Secure = true, });
|
||||
if (!string.IsNullOrEmpty(webp))
|
||||
cookieList.Add(new Cookie() { Domain = "mms.pinduoduo.com", Name = "webp", Value = webp, Expires = DateTime.Now.AddDays(14), Path = "/home" });
|
||||
if (!string.IsNullOrEmpty(x_visit_time))
|
||||
cookieList.Add(new Cookie() { Domain = "mms.pinduoduo.com", Name = "x-visit-time", Value = x_visit_time, Expires = DateTime.Now.AddDays(100), });
|
||||
if (PASS_ID.StartsWith("windows") && !cookieList.Any(c => c.Name == "PddBrowser"))
|
||||
cookieList.Add(new Cookie() { Domain = ".pinduoduo.com", Name = "PddBrowser", Value = "1", Expires = DateTime.Now.AddYears(1), });
|
||||
headerCookie = JsonHelper.SerializeObject(cookieList);
|
||||
|
||||
var cookieShop = new ShopLoginInfo();
|
||||
cookieShop.pddid = shop.pddid;
|
||||
cookieShop.Cookies = JsonHelper.SerializeObject(cookieList);
|
||||
|
||||
var data = "";
|
||||
data = PDDShopListForm.GetShopStatus(cookieShop);
|
||||
if (!data.Contains("\"success\":true") || data.Contains("会话已过期"))
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
//BaseMsgForm.ShowError("cookie已失效!");
|
||||
label3.Text = "cookie已失效!";
|
||||
}));
|
||||
FiddlerApplication.BeforeRequest -= FiddlerApplication_BeforeRequest;
|
||||
FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
|
||||
return;
|
||||
}
|
||||
|
||||
var username = BaseRegex.GetStringJson(ref data, "username");
|
||||
var maskMobile = BaseRegex.GetStringJson(ref data, "mobile");
|
||||
var mallName = BaseRegex.GetStringJson(ref data, "mall_name");
|
||||
maskMobile = maskMobile.Split('*').Last();
|
||||
if (string.IsNullOrWhiteSpace(maskMobile) || string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(mallName))
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
//BaseMsgForm.ShowError("店铺信息获取失败!");
|
||||
label3.Text = "店铺信息获取失败!";
|
||||
}));
|
||||
FiddlerApplication.BeforeRequest -= FiddlerApplication_BeforeRequest;
|
||||
FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!shop.LoginName.EndsWith(maskMobile) && shop.LoginName != username && shop.LoginName != mallName)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
//BaseMsgForm.ShowError("cookie与店铺不匹配,请核对店铺!");
|
||||
label3.Text = "cookie与店铺不匹配,请核对店铺!";
|
||||
}));
|
||||
FiddlerApplication.BeforeRequest -= FiddlerApplication_BeforeRequest;
|
||||
FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
|
||||
return;
|
||||
}
|
||||
|
||||
List<ShopLoginInfo> serverShopLst = new List<ShopLoginInfo>();
|
||||
var rst = ShopBLL.AdminGetServerShopLstForSetCookie(shop, serverShopLst);
|
||||
|
||||
if (rst != "success")
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
//BaseMsgForm.ShowError(rst);
|
||||
label3.Text = rst;
|
||||
}));
|
||||
FiddlerApplication.BeforeRequest -= FiddlerApplication_BeforeRequest;
|
||||
FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
|
||||
return;
|
||||
}
|
||||
|
||||
//如果店铺没有cookie登录过,处理店铺第一次登录(分裂cookie下的所有店铺)
|
||||
GetShopFirstLogin(data, serverShopLst);
|
||||
|
||||
if (updateFrom == SetCookieFromEnum.normal_user) // 普通用户更新本地店铺
|
||||
{
|
||||
var localShop = GlobalConfig.ShopLoginList.Where(v => v.LoginName == shop.LoginName).ToList();
|
||||
foreach (var sc in localShop)
|
||||
{
|
||||
sc.Cookies = headerCookie;
|
||||
sc.LoginStatus = "登录成功";
|
||||
}
|
||||
}
|
||||
shop.Cookies = headerCookie;
|
||||
shop.ShopId = username;
|
||||
shop.ShopAccount = mallName;
|
||||
shop.LoginStatus = "登录成功";
|
||||
|
||||
// 店铺更新写入到服务端
|
||||
var url = BaseClass.BuildObjString("shop/mdy_shop");
|
||||
var data1 = UserLogin.GetSignaturex()
|
||||
+ "&login_name=" + shop.LoginName
|
||||
+ "&new_shop_id=" + shop.ShopId
|
||||
+ "&shop_account=" + shop.ShopAccount;
|
||||
var result = GetHtml.PostUtf8(url, data1);
|
||||
|
||||
PDDShopListForm.UpdateServerShopCookies(shop); // 店铺cookie写入服务端,不同账号下的同名店铺一起更新cookie
|
||||
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.OnSaveComplete(shop);
|
||||
this.Close();
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
private void PDDShopUpdateFddlCookieForm_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
private void PDDShopUpdateFddlCookieForm_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
//UninstallCertificate(); // 移除 CertMaker.dll, BCMakeCert.dll 文件后,无需每次删除证书
|
||||
fddlHelper.UninstallFiddler();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 如果店铺没有cookie登录过,处理店铺第一次登录(分裂cookie下的所有店铺)
|
||||
/// </summary>
|
||||
/// <param name="loginData"></param>
|
||||
void GetShopFirstLogin(string loginData, List<ShopLoginInfo> lstServerShop)
|
||||
{
|
||||
if (this.shop == null)
|
||||
return;
|
||||
if (lstServerShop == null)
|
||||
lstServerShop = new List<ShopLoginInfo>();
|
||||
|
||||
List<ShopCompany> lstShopCompany = new List<ShopCompany>();
|
||||
var jObj = JObject.Parse(loginData);
|
||||
var jArr = jObj["result"]?["companyList"]?[0]?["malInfoList"] as JArray;
|
||||
if (jArr == null)
|
||||
jArr = new JArray();
|
||||
|
||||
foreach (var productObj in jArr)
|
||||
{
|
||||
var prod = JsonHelper.SerializeObject(productObj);
|
||||
ShopCompany sc = new ShopCompany()
|
||||
{
|
||||
AccountId = BaseRegex.GetStringJson(ref prod, "mallId"),
|
||||
AccountName = BaseRegex.GetStringJson(ref prod, "mallName"),
|
||||
LoginName = shop.LoginName,
|
||||
UserName = BaseClass.UserName,
|
||||
LoginStatus = "登录成功",
|
||||
};
|
||||
lstShopCompany.Add(sc);
|
||||
}
|
||||
|
||||
var lstShopCompanyCopy = lstShopCompany.ToList();
|
||||
foreach (ShopCompany sc in lstShopCompanyCopy)
|
||||
{
|
||||
ShopLoginInfo newShop = new ShopLoginInfo()
|
||||
{
|
||||
UserName = shop.UserName,
|
||||
LoginName = shop.LoginName,
|
||||
Password = shop.Password,
|
||||
GroupName = shop.GroupName,
|
||||
ShopAccount = sc.AccountName,
|
||||
ShopId = sc.AccountId,
|
||||
SubUserName = shop.SubUserName,
|
||||
Notes = shop.Notes,
|
||||
};
|
||||
|
||||
var oldServerShop = lstServerShop.FirstOrDefault(s =>
|
||||
s.LoginName == newShop.LoginName && s.ShopId == newShop.ShopId);
|
||||
if (oldServerShop == null)
|
||||
{
|
||||
if (updateFrom != SetCookieFromEnum.normal_user)
|
||||
ShopBLL.AdminAddServerShop(newShop); // 店铺写入到服务端
|
||||
else
|
||||
ShopBLL.AddServerShop(newShop); // 店铺写入到服务端
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,298 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAgIAQAAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
|
||||
AAD///8AAAAAAAAAAAAAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMQ
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAABM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZkzEAAAAAAAAAAAAAAAAAAAAAADOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZMwAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZkzAAAAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmTEAAAAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAAAA5mZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAADmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAGZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAJmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZAAAAAA
|
||||
OZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmT
|
||||
AAAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmRAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZkwAAAZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZkwAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZMAAJmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZEAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwCZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkRmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZOZmZOZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmP+JmZmZmZmZj///////
|
||||
///4OZmZj/eZmZmZmZmZmPg5OZmZmZuI//iIuZmZmZmZmZmZmZM5mZmZmZmZmZmZmb//+JmZmZmZmP//
|
||||
//////////OZmP//uZmZmZmZmY//+ZmZOZf///////h5k5mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
|
||||
mZ/////////////4mZ///4mZmZmZmZP///uZmZmP////////+JmZmZmZmZmZkzmZmZmZmZmZmZmZj//4
|
||||
mZmZmZmf////////////+Jmf//+JmZmZmZmb///4mZmY//////////+JmZmZmZmZmZM5mZmZmZmZmZmZ
|
||||
mY//+JmZmZmZn/////////////mZmP//iZmZmZmZk///+5mZj/////iP////+JmZmZmZmZmTOZmZmZmZ
|
||||
mZmZmZmP//iZmZmZmZ////iIiIiIiIiZOZj//4mZmZmZmZP///uZmf////eZmT////+ZmZmZmZmZkzmZ
|
||||
mZmZmZmZmZmZj//4mZmZmZmf//+JmZmZmZmZk5mY//+JmZmZmZmT///7mZj///+ZmZmZj///uZmZmZmZ
|
||||
mZM5mZmZmZmZmZmZmY//+JmZmZmZn///iZmZmZmZmZmZmP//iZmZN5k5k///+5mY///zk5mZOT///4mZ
|
||||
mZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///4mZmZmZmZmZmZj//4mZmP/5k5P///uZmP//+ZmZmZmY
|
||||
//+JmZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf///4iIiIiIg5mZmY//+JOb//+JmT///7mZj//4mZ
|
||||
mZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////85mZmP//iZn///+Jk///+5mf
|
||||
//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ////////////+ZmZj//4mY////85v/
|
||||
//uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf////////////mZmY//+Jv///
|
||||
//+Z///7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///////////+JmZmP//
|
||||
if//////if//+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZmZ///////////4mZ
|
||||
mZj//4j///////j///uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZmZmZj//4mZmZmZmf//+JMzMz
|
||||
MzOZOZmY//////+D///////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmZmZmY//+JmZmZmZn///
|
||||
iZmZmZmZmZmZmP//////mY//////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZmZmZmZmP//iZmZmZ
|
||||
mZ///4mZmZmZmZmZmZj/////+5mf//////uZmP//iZmZmZmY///5mZmZmZmZkzmZmZmZmZmZMzM5j//4
|
||||
kzMzmZmf//+JMzMzMzM5mZmY/////4mTk//////7mZj//4mZmZmZmP//+ZmZmZmZmZM5mZmZmZmZmP//
|
||||
/////////4mZn////////////4mZmP////+ZmZmP////+5mY//+JmZmZmZj///mZmZmZmZmTOZmZmZmZ
|
||||
mY/////////////4mZ/////////////7mZj////7mZmZn/////uZmP//iZmZmZmY///5mZmZmZmZkzmZ
|
||||
mZmZmZn//////////////5mf////////////+Jmf////iZmZk5P////4mZ///4mZmZmZmP//+ZmZmZmZ
|
||||
mZM5mZmZmZmZj/////////////iZn/////////////iZmP///5mZmZmZj///+5mY//+JmZmZmZj//4mZ
|
||||
mZmZmZmTOZmZmZmZmZ/////////////zmZP///////////+JmZP///uTmZmZmZj//4mZm///mZmZmZmZ
|
||||
//85mZmZmZmZkzmZmZmZmZOZiIiIiIiIiIiImTmZOIiIiIiIiIiImTmZOIi5mZmZmZOZiIuZmZk4iZOZ
|
||||
mZmZOZiDmZmZmZmZmZM5mZmZmZmZOZmZmZmZmZmZmZOZmZmZmZmZmZmZmZOZmZmZmZmZmZmZOZmZmZmZ
|
||||
mZk5mZmZmZOZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmTuIiIiIs5mZmZmZmZ
|
||||
mTu4i7mZmZmZmZmZmTMzmZOZmZkzOZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmTmbj///////+HmT
|
||||
mZmZk4j/////iJmZmZk4iP////iZOZmZj/mZOZOIiIiIiIiIiDmZmZmZmZmZkzmZmZmZmZmZj///////
|
||||
///4mZk5k4///4iI///4OZOY////////iZOZmb/5mZmP///////////4mZmZmZmZmZM5mZmZmZmZn///
|
||||
//////////mZmY///5mZmZP///iZmP////////+ZOZk/iZmY/////////////4mZmZmZmZmTOZmZmZmZ
|
||||
mZ/////////////5mZ////+JmZmY////iZl/////////+ZmZP4mZP//////////////7mZmZmZmZkzmZ
|
||||
mZmZmZmb////////////uZP/j///+HM3j/////+ZmYj///////iZmT+JmY//////////////+JmZmZmZ
|
||||
mZM5mZmZmZmZmY//////////+JmT+Jv///////////iPmTmZOI/4mP//uTk/iZmP//////////////iZ
|
||||
mZmZmZmTOZmZmZmZmZmf//////////mZmZmZ///////////5mZmZmZmTOZk///mZP4mZj///////////
|
||||
///4mZmZmZmZkzmZmZmZmZmTmP////////+JOZmZOY//////////iZmZmZmZmZk5mf/4mT+JmY//////
|
||||
////////+JmZmZmZmZM5mZmZmZmZmZn/////////mZmZmZk//////////zmZmZmZmZmZmTmP/zm/iZmP
|
||||
//////////////iZmZmZmZmTOZmZmZmZmZk5v///////85OZmZkzmP////////iZmZmZmZmZmZmZn//4
|
||||
/4mZj/////hzN4/////4mZmZmZmZkzmZmZmZmZmZmZj//////4mZmTmY/4j////////4mZmZmZmZmZmZ
|
||||
mZj///+JmY////+JmZmY////+JmZmZmZmZM5mZmZmZmZmZmZ//////+ZmZmZj////////////4mZmZmZ
|
||||
mZmZmZmb////+ZmP///4mZu5mY////iZmZmZmZmTOZmZmZmZmZmZOb/////4k5mZmP/////////////7
|
||||
mZmZmZmZmZmZk/////OZv///+ZmP+Jmf///4mZmZmZmZkzmZmZmZmZmZmZmf////+ZmZmZj////////4
|
||||
eI//+JmZmZmZmZmZmZP////4mb///4mY//+JmP//+5mZmZmZmZM5mZmZmZmZmZk5v/////uTmZmb////
|
||||
///4mZmX//iZmZmZmZmZmZmZ////+Jmf//95n///+Zj///OZmZmZmZmTOZmZmZmZmZmZmf//////mZmZ
|
||||
mY//////+ZOZmZiJmZmZmZmZmZmZmY////+ZmP//+I////iP//+JmZmZmZmZkzmZmZmZmZmZmZj/////
|
||||
/4mZmZmf/////5k5mZOZmTmZmZmZmZmZmZmP///4mZP/////////////OZmZmZmZmZM5mZmZmZmZmZk/
|
||||
///////zmZmZm/////iZmZmZmZmZmZmZmZmZmZmZj///85mZj///////////+JmZmZmZmZmTOZmZmZmZ
|
||||
mZmZv///////+5mZmZmP///5mZmZmZmZmZmZmZmZmZmZmZ///3mZmZj//////////4mZmZmZmZmZkzmZ
|
||||
mZmZmZmZmb///4j///uZmZmZmP//mTmZmZmZmZmZmZmZmZmZmZmY/4OZmZmZeP///////4eZmZmZmZmZ
|
||||
mZM5mZmZmZmZmZmY/4OZOP+JmZmZmZmIiZOZmZmZmZmZmZmZmZmZmZmZmYiZmZmZmZk4iIiIiIOZmZmZ
|
||||
mZmZmZmTOZmZmZmZmZmZmTOZmZkzmZmZmZmZmZk5mZmZmZmZmZmZmZmZmZmZmZmZk5mZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZM5mZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTOZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkzmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZM5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmTGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZkwmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZkwA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZMACZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAABmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAAADmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAJmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmRAAAAA5mZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAACZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmQAAAAAAGZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZMAAAAAAAOZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZkwAAAAAA
|
||||
AAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTAA
|
||||
AAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZMAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZkwAAAAAAAAAAAAOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmTAAAAAAAAAAAAAAGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZEAAAAAAAAAAAAAAAA5mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZMAAAAAAAAAAAAAAAAAATmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAABOZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZMQAAAAAAAAAAAAAAAAAAAAAAAzmZmZmZmZmZmZmZmZmZmZmZmZmZ
|
||||
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmTMAAAAAAAAAAAAAAAAAAAAAAAAAAAEzMzMzMzMzMzMzMzMzMz
|
||||
MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxAAAAAAAAAAAAAAD////////////////////////4AAAA
|
||||
AAAAAAAAAB//////wAAAAAAAAAAAAAAD/////wAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAA////w
|
||||
AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAA
|
||||
Af//AAAAAAAAAAAAAAAAAAD//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAA
|
||||
AAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAA
|
||||
AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA
|
||||
AAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
|
||||
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
|
||||
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
|
||||
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
|
||||
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAA
|
||||
AAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
|
||||
AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
|
||||
AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
|
||||
AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAAAAAAAAAAAAA+AA
|
||||
AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA
|
||||
AA/4AAAAAAAAAAAAAAAAAAAf/AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA
|
||||
AAAAAAB//wAAAAAAAAAAAAAAAAAA//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAA
|
||||
AAAAAAAAAAAH///4AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAAAAD/////
|
||||
wAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAH////////////////////////w==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -687,6 +687,12 @@ offCountPara,false;offProductPara,100;IrregularitiesPara,true;noNeerPara,true;no
|
||||
//if (!Directory.Exists("temp/image"))
|
||||
// Directory.CreateDirectory("temp/image");
|
||||
|
||||
|
||||
|
||||
if (!FileBase.Exists("FiddlerCore4.dll"))
|
||||
if (GetHtml.DownloadFile(BaseClass.ServerUrl + "/Download/" + "FiddlerCore4.dll", "FiddlerCore4.dll" + ".bak"))
|
||||
FileBase.Move("FiddlerCore4.dll" + ".bak", "FiddlerCore4.dll");
|
||||
|
||||
/*
|
||||
List<KeyValueBase> files = new List<KeyValueBase>();
|
||||
files.Add(new KeyValueBase("标题包含过滤_new.txt", "config/标题包含过滤x.ini"));
|
||||
|
||||
Reference in new issue
Block a user