diff --git a/29WxOrder.sln b/29WxOrder.sln
index 998368c..315abbd 100644
--- a/29WxOrder.sln
+++ b/29WxOrder.sln
@@ -1,11 +1,11 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.14.36221.1 d17.14
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.36128.20
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "29WxOrderAllBase", "AllBase\29WxOrderAllBase.csproj", "{6461D807-B1C8-45F0-B388-E0CA1A418DE0}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "29供应链-微信小店", "29供应链-微信小店", "{1A7830FA-AC8F-40FB-A232-F0626812B8BE}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "29供应链-微信小店拍单", "29供应链-微信小店拍单", "{1A7830FA-AC8F-40FB-A232-F0626812B8BE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "29WxOrder", "29WxOrder\29WxOrder.csproj", "{D51A1BB0-17BB-44C3-9129-1F3187E82729}"
EndProject
@@ -13,6 +13,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "29WxOrderWork", "Work\29WxO
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "29WxOrderWpf", "29WxOrderWpf\29WxOrderWpf.csproj", "{D7884375-E42F-4B89-AA3A-D8E75508D8C7}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "29供应链-BaseProject", "29供应链-BaseProject", "{4A54DC2A-B47C-4ED1-A482-EE60161DB2C3}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -94,7 +96,9 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
+ {6461D807-B1C8-45F0-B388-E0CA1A418DE0} = {4A54DC2A-B47C-4ED1-A482-EE60161DB2C3}
{D51A1BB0-17BB-44C3-9129-1F3187E82729} = {1A7830FA-AC8F-40FB-A232-F0626812B8BE}
+ {1AD45D66-6872-4522-ACF0-04E2C0514048} = {4A54DC2A-B47C-4ED1-A482-EE60161DB2C3}
{D7884375-E42F-4B89-AA3A-D8E75508D8C7} = {1A7830FA-AC8F-40FB-A232-F0626812B8BE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
diff --git a/29WxOrder/29WxOrder.csproj b/29WxOrder/29WxOrder.csproj
index 60da849..9427498 100644
--- a/29WxOrder/29WxOrder.csproj
+++ b/29WxOrder/29WxOrder.csproj
@@ -65,7 +65,7 @@
..\..\KJD Cef138\Bin\
DEBUG;TRACE
full
- x86
+ x64
default
prompt
true
diff --git a/29WxOrder/FactoryExportForms/FactoryExportForm.Designer.cs b/29WxOrder/FactoryExportForms/FactoryExportForm.Designer.cs
index e3f0bab..2a8dde1 100644
--- a/29WxOrder/FactoryExportForms/FactoryExportForm.Designer.cs
+++ b/29WxOrder/FactoryExportForms/FactoryExportForm.Designer.cs
@@ -352,7 +352,7 @@
this.ClientSize = new System.Drawing.Size(1184, 621);
this.Controls.Add(this.panel1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.IsShowMax = true;
+ this.IsShowMaxBox = true;
this.Name = "FactoryExportForm";
this.Padding = new System.Windows.Forms.Padding(2, 0, 2, 2);
this.Text = "指定商品订单列表";
diff --git a/29WxOrder/ShopForms/PddShopLoginForm.Designer.cs b/29WxOrder/ShopForms/PddShopLoginForm.Designer.cs
index f8eb969..f0d4038 100644
--- a/29WxOrder/ShopForms/PddShopLoginForm.Designer.cs
+++ b/29WxOrder/ShopForms/PddShopLoginForm.Designer.cs
@@ -56,7 +56,7 @@ namespace _29WxOrder.ShopForms
this.ClientSize = new System.Drawing.Size(1255, 641);
this.Controls.Add(this.panel1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.IsShowMax = true;
+ this.IsShowMaxBox = true;
this.Name = "PddShopLoginForm";
this.Text = "拼多多批发登录";
this.TitleText = "拼多多批发登录";
diff --git a/29WxOrder/ShopForms/ShopBrower.Designer.cs b/29WxOrder/ShopForms/ShopBrower.Designer.cs
index 8a4f174..64782ac 100644
--- a/29WxOrder/ShopForms/ShopBrower.Designer.cs
+++ b/29WxOrder/ShopForms/ShopBrower.Designer.cs
@@ -57,7 +57,7 @@ namespace _29WxOrder.ShopForms
this.ClientSize = new System.Drawing.Size(1280, 720);
this.Controls.Add(this.panel1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.IsShowMax = true;
+ this.IsShowMaxBox = true;
this.Name = "ShopBrower";
this.Text = "ShopBrower";
this.TitleText = "ShopBrower";
diff --git a/29WxOrder/ToolForms/CefForm.designer.cs b/29WxOrder/ToolForms/CefForm.designer.cs
index 3b81fa4..8470172 100644
--- a/29WxOrder/ToolForms/CefForm.designer.cs
+++ b/29WxOrder/ToolForms/CefForm.designer.cs
@@ -91,7 +91,7 @@
this.ClientSize = new System.Drawing.Size(1280, 720);
this.Controls.Add(this.splitContainer1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.IsShowMax = true;
+ this.IsShowMaxBox = true;
this.Name = "CefForm";
this.Text = "CefForm";
this.TitleText = "CefForm";
diff --git a/29WxOrder/ToolForms/ProgressForm.cs b/29WxOrder/ToolForms/ProgressForm.cs
index caf6f45..c5edb0f 100644
--- a/29WxOrder/ToolForms/ProgressForm.cs
+++ b/29WxOrder/ToolForms/ProgressForm.cs
@@ -20,7 +20,7 @@ namespace _29WxOrder.ToolForms
private void ProgressForm_Load(object sender, EventArgs e)
{
- this.IsShowMax = false;
+ this.IsShowMaxBox = false;
this.pbCloseBase.Visible = false;
}
diff --git a/29WxOrderWpf/29WxOrderWpf.csproj b/29WxOrderWpf/29WxOrderWpf.csproj
index 7bcc330..2910c37 100644
--- a/29WxOrderWpf/29WxOrderWpf.csproj
+++ b/29WxOrderWpf/29WxOrderWpf.csproj
@@ -1,5 +1,8 @@
+
+
+
Debug
@@ -29,9 +32,11 @@
false
false
true
+
+
- AnyCPU
+ x64
true
full
false
@@ -41,7 +46,7 @@
4
- AnyCPU
+ x64
pdbonly
true
..\..\KJD Cef138\Bin\
@@ -53,6 +58,15 @@
29wx.ico
+
+ ..\packages\CefSharp.Common.138.0.340\lib\net462\CefSharp.dll
+
+
+ ..\packages\CefSharp.Common.138.0.340\lib\net462\CefSharp.Core.dll
+
+
+ ..\packages\CefSharp.Wpf.138.0.340\lib\net462\CefSharp.Wpf.dll
+
..\DllReference\NaiBa.Util.dll
@@ -86,8 +100,17 @@
+
+
+
+
+ PDDBuyerOrderListCtrl.xaml
+
+
+ PDDBuyerSelectCtrl.xaml
+
OrderListRowCtrl.xaml
@@ -122,6 +145,14 @@
Designer
MSBuild:Compile
+
+ Designer
+ MSBuild:Compile
+
+
+ Designer
+ MSBuild:Compile
+
MSBuild:Compile
Designer
@@ -296,5 +327,18 @@
+
+
+
+
+
+ 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/29WxOrderWpf/App.xaml b/29WxOrderWpf/App.xaml
index 747d1b5..a9ee436 100644
--- a/29WxOrderWpf/App.xaml
+++ b/29WxOrderWpf/App.xaml
@@ -6,9 +6,13 @@
StartupUri="MainWindow.xaml">
+
+
+
+
diff --git a/29WxOrderWpf/App.xaml.cs b/29WxOrderWpf/App.xaml.cs
index bd2ea5c..706e645 100644
--- a/29WxOrderWpf/App.xaml.cs
+++ b/29WxOrderWpf/App.xaml.cs
@@ -1,8 +1,11 @@
using _29WxOrderWpf.BaseWindows;
+using CefSharp;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
+using System.Diagnostics;
+using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -18,6 +21,7 @@ namespace _29WxOrderWpf
///
public partial class App : Application
{
+ public static int ProcessCount = 0;
public static string[] args = new List().ToArray();
protected override void OnStartup(StartupEventArgs e)
{
@@ -67,6 +71,35 @@ namespace _29WxOrderWpf
//BaseMsgForm.ShowError(str, "系统错误");
BaseMsgWindow.ShowError(null, str, "系统错误");
}
+
+ #region 初始化cef
+ CefSharpSettings.WcfEnabled = false;
+
+ CefSharp.Wpf.CefSettings settings = new CefSharp.Wpf.CefSettings();
+ settings.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ settings.CefCommandLineArgs.Add("disable-gpu", "1"); // 禁止显卡加速
+ settings.IgnoreCertificateErrors = true;
+ settings.Locale = "zh-CN";
+ settings.LogSeverity = LogSeverity.Disable;
+
+ var pName = Process.GetCurrentProcess().ProcessName;
+ ProcessCount = Process.GetProcesses().Count(p => p.ProcessName == pName);
+ //138版cef自己不会分缓存,会因占用导致报错,手动分缓存
+ settings.CachePath = Path.Combine(Environment.CurrentDirectory, "Cache\\Order" + ProcessCount);
+ //settings.CachePath = null; //禁止缓存
+ //settings.CefCommandLineArgs.Add("enable-javascript", "1");
+ //settings.CefCommandLineArgs.Add("disable-features", "NetworkService,NetworkServiceInProcess");
+ settings.CefCommandLineArgs.Add("--disable-web-security", "1");
+ //settings.CefCommandLineArgs.Add("--disable-request-handling-for-testing", "1");
+#if DEBUG
+ settings.LogFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "cef_log_order.txt");
+ // 设置日志级别为详细
+ settings.LogSeverity = LogSeverity.Verbose;
+ // 捕获JavaScript异常堆栈(最多32帧)
+ settings.UncaughtExceptionStackSize = 32;
+#endif
+ Cef.Initialize(settings);
+ #endregion
}
//static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
diff --git a/29WxOrderWpf/Converters/HasValueToVisibilityConverter.cs b/29WxOrderWpf/Converters/HasValueToVisibilityConverter.cs
new file mode 100644
index 0000000..0f39abb
--- /dev/null
+++ b/29WxOrderWpf/Converters/HasValueToVisibilityConverter.cs
@@ -0,0 +1,28 @@
+using NaiBa.Util.Extension;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Data;
+
+namespace _29WxOrderWpf.Converters
+{
+ public class HasValueToVisibilityConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value == null)
+ return Visibility.Collapsed;
+ if (value.ParseToString().IsNullOrEmpty())
+ return Visibility.Collapsed;
+ return Visibility.Visible;
+ }
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException(); // 单向绑定可不实现
+ }
+ }
+}
diff --git a/29WxOrderWpf/Converters/StatusToColorBrushConverter.cs b/29WxOrderWpf/Converters/StatusToColorBrushConverter.cs
new file mode 100644
index 0000000..b8dc611
--- /dev/null
+++ b/29WxOrderWpf/Converters/StatusToColorBrushConverter.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+using System.Windows.Media;
+
+namespace _29WxOrderWpf.Converters
+{
+ public class StatusToColorBrushConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value is string status)
+ {
+ return status == "在线" ? new SolidColorBrush(Color.FromRgb(50, 180, 50)) : new SolidColorBrush(Color.FromRgb(255, 50, 50));
+ }
+ return value;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException(); // 因为这是单向绑定,反向转换不实现
+ }
+ }
+}
diff --git a/29WxOrderWpf/Converters/ValueMinus24Converter.cs b/29WxOrderWpf/Converters/ValueMinus24Converter.cs
new file mode 100644
index 0000000..28a1274
--- /dev/null
+++ b/29WxOrderWpf/Converters/ValueMinus24Converter.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Data;
+
+namespace _29WxOrderWpf.Converters
+{
+ public class ValueMinus24Converter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ if (value is double width)
+ {
+ return Math.Max(0, width - 24); // 确保宽度/高度不会变成负数
+ }
+ return value;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException(); // 因为这是单向绑定,反向转换不实现
+ }
+ }
+}
diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml
new file mode 100644
index 0000000..cf19bb3
--- /dev/null
+++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml.cs b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml.cs
new file mode 100644
index 0000000..43ad91e
--- /dev/null
+++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerOrderListCtrl.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace _29WxOrderWpf.Ctrls.BuyerCtrls
+{
+ ///
+ /// PDDBuyerOrderListCtrl.xaml 的交互逻辑
+ ///
+ public partial class PDDBuyerOrderListCtrl : UserControl
+ {
+ public PDDBuyerOrderListCtrl()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml
new file mode 100644
index 0000000..0bf85ac
--- /dev/null
+++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml.cs b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml.cs
new file mode 100644
index 0000000..f89df0c
--- /dev/null
+++ b/29WxOrderWpf/Ctrls/BuyerCtrls/PDDBuyerSelectCtrl.xaml.cs
@@ -0,0 +1,158 @@
+using _29WxOrderWpf.BaseWindows;
+using AllBase;
+using AllBase.Helper;
+using AllBase.Model.Result;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+using TemuKJD.ToolForms;
+using Work;
+using Work.BaseForms;
+
+namespace _29WxOrderWpf.Ctrls.BuyerCtrls
+{
+ ///
+ /// PDDBuyerSelectCtrl.xaml 的交互逻辑
+ ///
+ public partial class PDDBuyerSelectCtrl : UserControl
+ {
+ public PDDBuyerSelectCtrl()
+ {
+ InitializeComponent();
+ }
+
+ private void UserControl_Loaded(object sender, RoutedEventArgs e)
+ {
+ cmbPddBuyer.ItemsSource = GlobalConfig.PDDBuyerLoginList;
+ }
+
+ private void btnLoginPdd_Click(object sender, RoutedEventArgs e)
+ {
+ BuyerLoginInfo buyer = null;
+ if (cmbPddBuyer.SelectedItem != null)
+ {
+ buyer = cmbPddBuyer.SelectedItem as BuyerLoginInfo;
+ }
+
+ PddMobileLoginForm pddBuyerForm = new PddMobileLoginForm(buyer);
+ pddBuyerForm.openType = EnumOpenType.login;
+ pddBuyerForm.InitUrl = "https://mobile.yangkeduo.com/login.html?from=https%3A%2F%2Fmobile.yangkeduo.com%2Fpersonal.html";
+ pddBuyerForm.ShowDialog();
+ MainWindow.Instance.GetPddBuyer();
+ }
+
+ private void cmbPddBuyer_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+ {
+ if (e.GetPosition(sender as IInputElement).X > cmbPddBuyer.ActualWidth - 18)
+ return;
+
+ BuyerLoginInfo buyer = null;
+ if (cmbPddBuyer.SelectedItem != null)
+ {
+ buyer = cmbPddBuyer.SelectedItem as BuyerLoginInfo;
+ }
+ if (buyer == null)
+ return;
+
+ PddMobileLoginForm.CheckBuyerLogin(new List { buyer }, false);
+ if (buyer.status == "在线")
+ {
+ PddMobileLoginForm shopLoginForm = new PddMobileLoginForm(buyer);
+ shopLoginForm.openType = EnumOpenType.manage;
+ //shopLoginForm.WindowState = FormWindowState.Maximized;
+ shopLoginForm.InitUrl = "https://mobile.yangkeduo.com";
+ shopLoginForm.Show();
+ }
+ else
+ {
+ PddMobileLoginForm shopLoginForm = new PddMobileLoginForm(buyer);
+ shopLoginForm.openType = EnumOpenType.login;
+ shopLoginForm.InitUrl = "https://mobile.yangkeduo.com/login.html?from=https%3A%2F%2Fmobile.yangkeduo.com%2Fpersonal.html";
+ shopLoginForm.ShowDialog();
+ MainWindow.Instance.GetPddBuyer();
+ }
+ }
+
+ private void cmbPddBuyer_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ BuyerLoginInfo buyer = null;
+ if (cmbPddBuyer.SelectedItem != null)
+ {
+ buyer = cmbPddBuyer.SelectedItem as BuyerLoginInfo;
+ }
+ GlobalConfig.CurrentPddBuyer = buyer;
+ }
+
+ private void btnDeleteItem_Click(object sender, RoutedEventArgs e)
+ {
+ if (BaseMsgWindow.ShowConfirm(MainWindow.Instance, "确定删除吗?删除后不可恢复!").DialogResult != true)
+ return;
+
+ if (sender is Button btn)
+ {
+ if (btn.DataContext is BuyerLoginInfo buyer)
+ {
+ Task.Run(() =>
+ {
+ var url = BaseClass.Build29PDDObjString("user/del_buyer");
+ var data = UserLogin.GetSignaturex()
+ + "&buyer_id=" + buyer.buyer_id;
+ var result = GetHtml.PostUtf8(url, data);
+ if (result.Contains("\"code\":200"))
+ {
+ Dispatcher.Invoke(new Action(() =>
+ {
+ GlobalConfig.PDDBuyerLoginList.Remove(buyer);
+ this.cmbPddBuyer.SelectedIndex = 0;
+ }));
+ }
+ });
+ }
+ }
+ //var pddBuyer =
+
+ //var ids = dgvBuyer.Rows.Cast().Where(r => r.Cells["colSelect"].Value.ParseToBool() == true).Select(s => s.Cells["colBuyerId"].Value.ParseToString()).ToList();
+ //var buyers = GlobalConfig.PDDBuyerLoginList.Where(b => ids.Contains(b.buyer_id)).ToList();
+ //this.statusBar.pgbTaskProgress.Maximum = buyers.Count;
+ //pbLoading.Visible = true;
+
+ //Task.Run(() =>
+ //{
+ // int i = 0;
+ // foreach (var buyer in buyers)
+ // {
+ // i++;
+ // this.Invoke(new Action(() =>
+ // {
+ // this.statusBar.lblTaskStatus.Text = "正在删除...";
+ // this.statusBar.pgbTaskProgress.Value = i;
+ // this.statusBar.pgbTaskProgress.Text = i + "/" + buyers.Count;
+ // }));
+
+
+
+ // Thread.Sleep(100);
+ // }
+ // this.Invoke(new Action(() =>
+ // {
+ // this.statusBar.lblTaskStatus.Text = "删除完成";
+ // this.statusBar.pgbTaskProgress.Value = buyers.Count;
+ // this.statusBar.pgbTaskProgress.Text = buyers.Count + "/" + buyers.Count;
+ // }));
+ // GetPddBuyer();
+ //});
+ }
+ }
+}
diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml
index 738e640..2cb2db1 100644
--- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml
+++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml
@@ -19,9 +19,10 @@
-
+
-
+
+
@@ -29,67 +30,58 @@
-
+
+
-
-
+
+
+
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
-
@@ -98,17 +90,17 @@
-
+
-
+
-
+
@@ -168,15 +160,15 @@
-
+
-
+
-
+
diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs
index b58afcf..dc10e2a 100644
--- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs
+++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListCtrl.xaml.cs
@@ -22,6 +22,7 @@ using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
+using TemuKJD.ToolForms;
using Work;
using Work.BLL;
@@ -32,8 +33,6 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
///
public partial class OrderListCtrl : UserControl
{
- public static ObservableCollection lstOrder { get; set; } = new ObservableCollection();
- public static ObservableCollection lstFilterOrder { get; set; } = new ObservableCollection();
public CheckBox chkSelectAll = null;
@@ -45,6 +44,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
private void Window_Loaded(object sender, RoutedEventArgs e)
{
+ lbxOrder.ItemsSource = GlobalConfig.lstFilterOrder;
+
dateStart.SelectedDate = DateTime.Now.Date.AddDays(-7);
dateEnd.SelectedDate = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
@@ -65,9 +66,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
for (int i = 0; i < 10000; i++)
{
//lstOrder.Add(new oms_wei_order_info() { id = 1, IsSelect = false, order_id = ("3737033423685556736".ParseToLong() + Randomx.GetId(0,100)).ParseToString(), shop_name = "媛卡曦工厂优选" });
- lstOrder.Add(new oms_wei_order_info() { id = 1, IsSelect = false, order_id = Randomx.GetId(1000, 10000).ParseToString(), shop_name = "媛卡曦工厂优选" });
+ GlobalConfig.lstOrder.Add(new oms_wei_order_info() { id = 1, IsSelect = false, order_id = Randomx.GetId(1000, 10000).ParseToString(), shop_name = "媛卡曦工厂优选" });
}
- lstOrder.SortDesc(o => o.order_id.ParseToLong());
+ GlobalConfig.lstOrder.SortDesc(o => o.order_id.ParseToLong());
}
///
@@ -78,6 +79,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
Dispatcher.Invoke(new Action(() =>
{
+ imgLoading.Visibility = Visibility.Visible;
btnSearch.IsEnabled = false;
}));
Task.Run(() =>
@@ -132,10 +134,6 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
break;
var order_ids = string.Join(",", jArr.Select(a => a["order_id"].ParseToString()));
- if (order_ids.Contains("3737210716522443776"))
- {
-
- }
// 读取订单详情
Thread.Sleep(100);
@@ -170,6 +168,47 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
List refunds = new List();
try { refunds = JsonHelper.DeserializeJsonToList(JObject.Parse(html2)["data"].ParseToString()); } catch { }
+
+ // 读取中转仓拍单订单
+ var url3 = BaseClass.Build29WxObjString("order/wx_get_transit_order");
+ var data3 = UserLogin.GetSignaturex();
+ data3 += "&order_no=" + order_ids;
+ var html3 = GetHtml.PostUtf8(url3, data3);
+ if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
+ GetHtml.PostUtf8(url3, data3);
+ if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
+ {
+ Dispatcher.Invoke(new Action(() =>
+ {
+ BaseMsgWindow.ShowError(MainWindow.Instance, "订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
+ }));
+ break;
+ }
+ List transitOrderList = new List();
+ try { transitOrderList = JsonHelper.DeserializeJsonToList(JObject.Parse(html3)["data"].ParseToString()); } catch { }
+
+
+ // 读取关联拍单商品
+ var urlMap = BaseClass.Build29WxObjString("order/wx_get_buy_prod_map");
+ var dataMap = UserLogin.GetSignaturex()
+ + "&spu_codes=" + string.Join(",", orderItems.Select(oi => oi.out_product_id));
+ dataMap += "&main_user_name=" + BaseClass.MainUserName;
+ var resultMap = GetHtml.PostUtf8(urlMap, dataMap);
+ if (string.IsNullOrEmpty(resultMap) || !resultMap.Contains("\"code\":200"))
+ GetHtml.PostUtf8(urlMap, dataMap);
+ if (string.IsNullOrEmpty(resultMap) || !resultMap.Contains("\"code\":200"))
+ {
+ Dispatcher.Invoke(new Action(() =>
+ {
+ BaseMsgWindow.ShowError(MainWindow.Instance, "订单读取失败 " + BaseRegex.GetStringJson(ref html, "msg"));
+ }));
+ break;
+ }
+ List byuMapList = new List();
+ try { byuMapList = JsonHelper.DeserializeJsonToList(JObject.Parse(resultMap)["data"].ParseToString()); } catch { }
+
+
+
foreach (JObject jObj in jArr)
{
Dispatcher.Invoke(new Action(() =>
@@ -183,6 +222,10 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
item.item_order = order;
order.order_items.Add(item);
+
+ item.buy_map = byuMapList.FirstOrDefault(b => b.sku_code == item.out_sku_id && b.spu_code == item.out_product_id);
+
+ item.item_transit_orders.AddRange(transitOrderList.Where(t => t.order_no == item.order_id && t.order_sku_id == item.sku_id));
}
//装载订单售后详情
order.refunds = new ObservableCollection();
@@ -191,18 +234,18 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
order.refunds.Add(item);
}
- var orderExist = lstOrder.FirstOrDefault(o => o.order_id == order.order_id);
+ var orderExist = GlobalConfig.lstOrder.FirstOrDefault(o => o.order_id == order.order_id);
if (orderExist != null)
- lstOrder.Remove(orderExist);
+ GlobalConfig.lstOrder.Remove(orderExist);
- var nextOrder = lstOrder.FirstOrDefault(o => o.create_time < order.create_time);
+ var nextOrder = GlobalConfig.lstOrder.FirstOrDefault(o => o.create_time < order.create_time);
if (nextOrder != null)
{
- lstOrder.Insert(lstOrder.IndexOf(nextOrder), order);
+ GlobalConfig.lstOrder.Insert(GlobalConfig.lstOrder.IndexOf(nextOrder), order);
}
else
{
- lstOrder.Add(order);
+ GlobalConfig.lstOrder.Add(order);
}
if (order.order_items.Count > 1)
{
@@ -216,33 +259,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}));
}
- Dispatcher.Invoke(new Action(() => {
- var tabItem = this.tabOrderType.Items.Cast().FirstOrDefault(t => t.Header.ParseToString().StartsWith("待采购"));
- if (tabItem != null)
- {
- tabItem.Header = "待采购(" + lstOrder.Where(r => r.purchase_status == 0 && r.status == 20).Count() + ")";
- }
- tabItem = this.tabOrderType.Items.Cast().FirstOrDefault(t => t.Header.ParseToString().StartsWith("待发货"));
- if (tabItem != null)
- {
- tabItem.Header = "待发货(" + lstOrder.Where(r => r.purchase_status == 1 && r.status == 20).Count() + ")";
- }
- tabItem = this.tabOrderType.Items.Cast().FirstOrDefault(t => t.Header.ParseToString().StartsWith("待收货"));
- if (tabItem != null)
- {
- tabItem.Header = "待收货(" + lstOrder.Where(r =>/* r.purchase_status == 1 &&*/ (r.status == 30 || r.status == 100)).Count() + ")";
- }
- tabItem = this.tabOrderType.Items.Cast().FirstOrDefault(t => t.Header.ParseToString().StartsWith("退款单"));
- if (tabItem != null)
- {
- tabItem.Header = "退款单(" + lstOrder.Where(r => /*r.status == 200 ||*/ r.refunds?.Count > 0).Count() + ")";
- }
- tabItem = this.tabOrderType.Items.Cast().FirstOrDefault(t => t.Header.ParseToString().StartsWith("全部订单"));
- if (tabItem != null)
- {
- tabItem.Header = "全部订单(" + lstOrder.Count() + ")";
- }
- txtFilterCount.Text = "当前条件共计 " + lstFilterOrder.Count() + " 条订单记录";
+ Dispatcher.Invoke(new Action(() =>
+ {
+ disPlayOrderTabCount();
}));
var totalCount = BaseRegex.GetIntJson(ref html, "count");
@@ -256,28 +275,59 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
Dispatcher.Invoke(new Action(() =>
{
+ imgLoading.Visibility = Visibility.Collapsed;
btnSearch.IsEnabled = true;
}));
});
}
+ void disPlayOrderTabCount()
+ {
+ var tabItem = this.tabOrderType.Items.Cast().FirstOrDefault(t => t.Header.ParseToString().StartsWith("待采购"));
+ if (tabItem != null)
+ {
+ tabItem.Header = "待采购(" + GlobalConfig.lstOrder.Where(r => r.IsWaitBuy).Count() + ")";
+ }
+ tabItem = this.tabOrderType.Items.Cast().FirstOrDefault(t => t.Header.ParseToString().StartsWith("待发货"));
+ if (tabItem != null)
+ {
+ tabItem.Header = "待发货(" + GlobalConfig.lstOrder.Where(r => r.IsWaitSend).Count() + ")";
+ }
+ tabItem = this.tabOrderType.Items.Cast().FirstOrDefault(t => t.Header.ParseToString().StartsWith("待收货"));
+ if (tabItem != null)
+ {
+ tabItem.Header = "待收货(" + GlobalConfig.lstOrder.Where(r => r.IsWaitReceive).Count() + ")";
+ }
+ tabItem = this.tabOrderType.Items.Cast().FirstOrDefault(t => t.Header.ParseToString().StartsWith("退款单"));
+ if (tabItem != null)
+ {
+ tabItem.Header = "退款单(" + GlobalConfig.lstOrder.Where(r => r.IsRefund).Count() + ")";
+ }
+ tabItem = this.tabOrderType.Items.Cast().FirstOrDefault(t => t.Header.ParseToString().StartsWith("全部订单"));
+ if (tabItem != null)
+ {
+ tabItem.Header = "全部订单(" + GlobalConfig.lstOrder.Count() + ")";
+ }
+ txtFilterCount.Text = "当前条件共计 " + GlobalConfig.lstFilterOrder.Count() + " 条订单记录";
+ }
+
void FilterOrders()
{
try
{
- foreach (var order in lstFilterOrder.ToList())
+ foreach (var order in GlobalConfig.lstFilterOrder.ToList())
{
if (GetOrderIsFilter(order))
{
- lstFilterOrder.Remove(order);
+ GlobalConfig.lstFilterOrder.Remove(order);
}
}
- foreach (var order in lstOrder.ToList())
+ foreach (var order in GlobalConfig.lstOrder.ToList())
{
FilterOneOrder(order);
}
Dispatcher.Invoke(new Action(() => {
- txtFilterCount.Text = "当前条件共计 " + lstFilterOrder.Count().ToString() + " 条订单记录";
+ txtFilterCount.Text = "当前条件共计 " + GlobalConfig.lstFilterOrder.Count().ToString() + " 条订单记录";
}));
}
catch (Exception ex)
@@ -285,62 +335,72 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
}
- void FilterOneOrder(oms_wei_order_info order)
+ public void FilterOneOrder(oms_wei_order_info order, bool updateTabCount = false)
{
if (!GetOrderIsFilter(order))
{
- var orderExist = lstFilterOrder.FirstOrDefault(o => o.order_id == order.order_id);
+ var orderExist = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.order_id == order.order_id);
if (orderExist != null)
- lstFilterOrder.Remove(orderExist);
+ GlobalConfig.lstFilterOrder.Remove(orderExist);
- var nextOrder = lstFilterOrder.FirstOrDefault(o => o.create_time < order.create_time);
+ var nextOrder = GlobalConfig.lstFilterOrder.FirstOrDefault(o => o.create_time < order.create_time);
if (nextOrder != null)
{
- lstFilterOrder.Insert(lstFilterOrder.IndexOf(nextOrder), order);
+ GlobalConfig.lstFilterOrder.Insert(GlobalConfig.lstFilterOrder.IndexOf(nextOrder), order);
}
else
{
- lstFilterOrder.Add(order);
+ GlobalConfig.lstFilterOrder.Add(order);
}
}
+
+ if (updateTabCount)
+ {
+ Dispatcher.Invoke(new Action(() =>
+ {
+ disPlayOrderTabCount();
+ }));
+ }
}
bool GetOrderIsFilter(oms_wei_order_info order)
{
- if (order.order_id == "3737234765235244032")
- {
+ if (order == null)
+ return true;
- }
- if (order == null) return true;
+ var headerStr = ((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString();
+ // 过滤店铺名称
if (!string.IsNullOrEmpty(txtShopName.Text.Trim()) && !(";" + txtShopName.Text.Trim() + ";").Contains(";" + order.shop_name + ";"))
{
return true;
}
+ // 过滤商品名称
if (!string.IsNullOrEmpty(txtGoodsName.Text.Trim()) && !order.order_items.Any(it => it.title.Contains(txtGoodsName.Text.Trim())))
{
return true;
}
- if (((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString().StartsWith("待采购") && (order.purchase_status != 0 || order.status != 20))
- {
- return true;
- }
- if (((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString().StartsWith("待发货") && (order.purchase_status != 1 || order.status != 20))
- {
- return true;
- }
- if (((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString().StartsWith("待收货") && (/*order.purchase_status != 1 ||*/ (order.status != 30 && order.status != 100)))
- {
- return true;
- }
- if (((tabOrderType.SelectedItem as TabItem)?.Header).ParseToString().StartsWith("退款单") && (/*order.status != 200 &&*/ (order.refunds?.Count).ParseToInt() == 0))
- {
- return true;
- }
+ // 过滤id
if (!string.IsNullOrEmpty(txtOrderId.Text.Trim()) && !(";" + txtOrderId.Text.Trim().Replace(' ', ';').Replace(',', ';') + ";").Contains(";" + order.order_id + ";"))
{
return true;
}
+ if (headerStr.StartsWith("待采购") && !order.IsWaitBuy)
+ {
+ return true;
+ }
+ if (headerStr.StartsWith("待发货") && !order.IsWaitSend)
+ {
+ return true;
+ }
+ if (headerStr.StartsWith("待收货") && !order.IsWaitReceive)
+ {
+ return true;
+ }
+ if (headerStr.StartsWith("退款单") && !order.IsRefund)
+ {
+ return true;
+ }
return false;
}
@@ -409,7 +469,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
private void ChkSelectAll_Checked(object sender, RoutedEventArgs e)
{
- foreach (var order in lstOrder.ToList())
+ foreach (var order in GlobalConfig.lstOrder.ToList())
{
order.IsSelect = true;
}
@@ -417,7 +477,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
private void ChkSelectAll_Unchecked(object sender, RoutedEventArgs e)
{
- foreach (var order in lstOrder.ToList())
+ foreach (var order in GlobalConfig.lstOrder.ToList())
{
order.IsSelect = false;
}
@@ -432,9 +492,9 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
chkSelectAll.Checked -= ChkSelectAll_Checked;
chkSelectAll.Unchecked -= ChkSelectAll_Unchecked;
- if (lstFilterOrder.All(s => s.IsSelect))
+ if (GlobalConfig.lstFilterOrder.All(s => s.IsSelect))
chkSelectAll.IsChecked = true;
- else if (lstFilterOrder.All(s => !s.IsSelect))
+ else if (GlobalConfig.lstFilterOrder.All(s => !s.IsSelect))
chkSelectAll.IsChecked = false;
else
chkSelectAll.IsChecked = null;
diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowHeaderCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowHeaderCtrl.xaml
index 8eff56b..0ecf810 100644
--- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowHeaderCtrl.xaml
+++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowHeaderCtrl.xaml
@@ -27,7 +27,7 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml
index b7e21f1..7d32446 100644
--- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml
+++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml
@@ -5,7 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:_29WxOrderWpf.Ctrls.OrderCtrls"
xmlns:uc="clr-namespace:_29WxOrderWpf.UserControls"
- mc:Ignorable="d"
+ mc:Ignorable="d" DataContextChanged="UserControl_DataContextChanged"
d:DesignHeight="250" d:DesignWidth="1200">
@@ -154,26 +154,30 @@
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
-
+
@@ -249,6 +253,31 @@
Margin="4,0,0,0" Content="编辑" Click="btnCopyRemark_Click">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs
index 059922d..c518140 100644
--- a/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs
+++ b/29WxOrderWpf/Ctrls/OrderCtrls/OrderListRowItemCtrl.xaml.cs
@@ -1,4 +1,8 @@
-using System;
+using _29WxOrderWpf.BaseWindows;
+using AllBase;
+using AllBase.Helper;
+using AllBase.Model;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -12,6 +16,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
+using TemuKJD.ToolForms;
namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
@@ -27,14 +32,14 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
private void btnSeeAddressDetail_Click(object sender, RoutedEventArgs e)
{
- var order = this.DataContext as AllBase.Model.oms_wei_order_info;
+ var order = this.DataContext as AllBase.Model.oms_wei_order_item_info;
if (order == null)
return;
}
private void btnGetRefundAddress_Click(object sender, RoutedEventArgs e)
{
- var order = this.DataContext as AllBase.Model.oms_wei_order_info;
+ var order = this.DataContext as AllBase.Model.oms_wei_order_item_info;
if (order == null)
return;
}
@@ -48,6 +53,60 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
}
+
+ private void btnBuyOrder_Click(object sender, RoutedEventArgs e)
+ {
+ var orderItem = this.DataContext as AllBase.Model.oms_wei_order_item_info;
+ if (orderItem == null)
+ {
+ BaseMsgWindow.ShowError(MainWindow.Instance, "订单信息为空");
+ return;
+ }
+ if (GlobalConfig.CurrentPddBuyer == null)
+ {
+ BaseMsgWindow.ShowError(MainWindow.Instance, "请选择买手号");
+ return;
+ }
+ if (GlobalConfig.CurrentPddBuyer.status == "在线")
+ PddMobileLoginForm.CheckBuyerLogin(GlobalConfig.CurrentPddBuyer);
+ if (GlobalConfig.CurrentPddBuyer.status != "在线")
+ {
+ BaseMsgWindow.ShowError(MainWindow.Instance, "买手号掉线");
+ return;
+ }
+
+ PddMobileBuyOrderForm buyOrderForm = new PddMobileBuyOrderForm(MainWindow.Instance.orderListCtrl.FilterOneOrder, orderItem, GlobalConfig.CurrentPddBuyer, orderItem.buy_map);
+ //所有订单页面
+ buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/orders.html?type=0&comment_tab=1&combine_orders=1&" +
+ "main_orders=1&refer_page_name=personal&refer_page_id=10001_1782219035613_a9ulipk4k3&refer_page_sn=10001";
+ //已有拍单关联的跳的到订单确认界面
+ if (orderItem.buy_map != null)
+ {
+ buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.buy_map.map_sku_id +
+ "&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.buy_map.map_goods_id + "&goods_number=" + +orderItem.sku_cnt +
+ "&page_from=101&detail_id=" + Randomx.GetNumber(11) + "&_oak_rcto=YW" +
+ Randomx.GetWordNumber("JvLXvJ8Fx9mUIW34yn103TOlATJGk5PaZshD6pY1bsVrsIjWdxWwjCoNX3IGT".Length) + "_VWkP5_q-1QNqGg" +
+ "&order_extra_type=1&refer_page_element=open_btn&source_channel=0&refer_page_name=goods_detail" +
+ "&refer_page_id=10014_" + BaseClass.DateTimeToTimestampSeconds(DateTime.Now) + Randomx.GetNumber(3) + "_tny5ifswls&refer_page_sn=10014";
+
+ buyOrderForm.InitUrl = "https://mobile.yangkeduo.com/order_checkout.html?sku_id=" + orderItem.buy_map.map_sku_id +
+ "&group_id=1" + Randomx.GetNumber(11) + "&goods_id=" + orderItem.buy_map.map_goods_id + "&goods_number=" + +orderItem.sku_cnt +
+ "&page_from=101";
+ }
+ buyOrderForm.ShowDialog();
+ }
+
+ private void UserControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
+ {
+ if (this.DataContext is oms_wei_order_item_info order_item)
+ {
+ btnBuyOrder.Content = order_item.buy_map == null ? "关联拍单" : "拍单";
+ }
+ else
+ {
+ btnBuyOrder.Content = "关联拍单";
+ }
+ }
}
diff --git a/29WxOrderWpf/MainWindow.xaml b/29WxOrderWpf/MainWindow.xaml
index 631cc2e..9c95b71 100644
--- a/29WxOrderWpf/MainWindow.xaml
+++ b/29WxOrderWpf/MainWindow.xaml
@@ -6,11 +6,11 @@
xmlns:local="clr-namespace:_29WxOrderWpf"
xmlns:orderctrls="clr-namespace:_29WxOrderWpf.Ctrls.OrderCtrls"
xmlns:shopctrls="clr-namespace:_29WxOrderWpf.Ctrls.ShopCtrls"
- xmlns:userctrls="clr-namespace:_29WxOrderWpf.UserControls"
- mc:Ignorable="d" Style="{StaticResource BaseNoneBorderWindowStyle}"
+ xmlns:userctrls="clr-namespace:_29WxOrderWpf.UserControls" xmlns:buyerctrls="clr-namespace:_29WxOrderWpf.Ctrls.BuyerCtrls"
+ mc:Ignorable="d" Style="{StaticResource BaseNoneBorderWindowStyle}"
x:Name="mainWindow" Title="MainWindow" Height="900" Width="1600" Loaded="Window_Loaded" Closing="BaseWindow_Closing">
-
+
@@ -32,6 +32,8 @@
+
+
+ {
+ GetPddBuyer();
+ });
}
+
+
+ //CefSharp.Wpf.ChromiumWebBrowser browser = new CefSharp.Wpf.ChromiumWebBrowser();
+ //browser.Address = "https://www.baidu.com";
+ //Grid.SetRow(browser, 1);
+ //this.mainGrid.Children.Add(browser);
+ //Task. Run(() => {
+
+ // Thread.Sleep(2000);
+ // Dispatcher.Invoke(new Action(() => {
+ // browser.Visibility = Visibility.Hidden;
+ // }));
+ // Thread.Sleep(1000);
+ // Dispatcher.Invoke(new Action(() => {
+
+ // browser.Address = "https://www.sina.com.cn";
+
+
+ // }));
+ // Thread.Sleep(3000);
+ // var jsStr = @"window.scrollTo(0, document.body.scrollHeight);";
+ // var client = browser.GetDevToolsClient();
+ // if (client != null)
+ // {
+ // var result = client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
+ // //result.Wait(5000);
+ // //string resultStr = result.Result.Result.Value.ParseToString();
+ // ////if (resultStr.ParseToInt() > 0)
+ // //{
+ // // CEFBrowser.DeleteCookie(browser.GetCookieManager(null));
+ // // //return;
+ // //}
+ // }
+ // Dispatcher.Invoke(new Action(() => {
+ // }));
+ // Thread.Sleep(3000);
+ // Dispatcher.Invoke(new Action(() => {
+ // browser.Visibility = Visibility.Visible;
+ // }));
+ //});
}
#region 反抓包功能
@@ -194,72 +239,160 @@ namespace _29WxOrderWpf
e.Cancel = true;
}
- public bool readShop { get; set; } = false;
+ #region 读取微信店铺
+ public bool isReadShop { get; set; } = false;
public bool hasReadShop { get; set; } = false;
public void GetServerShop()
{
- if (readShop == false)
+ if (isReadShop)
+ return;
+
+ List list = new List();
+ Dispatcher.Invoke(new Action(() =>
{
- List list = new List();
- Dispatcher.Invoke(new Action(() =>
+ }));
+ isReadShop = true;
+ int page = 0;
+ while (true)
+ {
+ page++;
+ var url = BaseClass.Build29WxObjString("shop/get_shop_list");
+ var data = UserLogin.GetSignaturex() + "&page=" + page;
+ data += "&is_get_erp_shop_id=true";
+ var html = GetHtml.PostUtf8(url, data);
+ if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
+ html = GetHtml.PostUtf8(url, data);
+ if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
+ html = GetHtml.PostUtf8(url, data);
+ if (string.IsNullOrEmpty(html)
+ || !html.Contains("shop_id") || !html.Contains("shop_account") || !html.Contains("login_pass"))
{
- }));
- readShop = true;
- int page = 0;
- while (true)
- {
- page++;
- var url = BaseClass.Build29WxObjString("shop/get_shop_list");
- var data = UserLogin.GetSignaturex() + "&page=" + page;
- data += "&is_get_erp_shop_id=true";
- var html = GetHtml.PostUtf8(url, data);
- if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
- html = GetHtml.PostUtf8(url, data);
- if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
- html = GetHtml.PostUtf8(url, data);
- if (string.IsNullOrEmpty(html)
- || !html.Contains("shop_id") || !html.Contains("shop_account") || !html.Contains("login_pass"))
- {
- break;
- }
-
- var jArr = JObject.Parse(html)["data"];
- if (jArr.Count() == 0)
- break;
-
- foreach (JObject jObj in jArr)
- {
- var shop = ShopBLL.DeserializationShop(jObj);
-
- var shopExist = list.Where(l => l.ShopId == shop.ShopId).ToList();
- if (shopExist != null)
- shopExist.Remove(shop);
-
- list.Add(shop);
- if (!GlobalConfig.ShopLoginList.Any(s => s.ShopId == shop.ShopId && !shop.is_point_shop_expire))
- {
- Dispatcher.Invoke(new Action(() =>
- {
- GlobalConfig.ShopLoginList.Add(shop);
- }));
- }
- }
+ break;
}
- Dispatcher.Invoke(new Action(() =>
+ var jArr = JObject.Parse(html)["data"];
+ if (jArr.Count() == 0)
+ break;
+
+ foreach (JObject jObj in jArr)
{
- foreach (var shop in GlobalConfig.ShopLoginList.Where(s => !list.Any(ss => ss.ShopId == s.ShopId)).ToList())
+ var shop = ShopBLL.DeserializationShop(jObj);
+
+ var shopExist = list.Where(l => l.ShopId == shop.ShopId).ToList();
+ if (shopExist != null)
+ shopExist.Remove(shop);
+
+ list.Add(shop);
+ if (!GlobalConfig.ShopLoginList.Any(s => s.ShopId == shop.ShopId && !shop.is_point_shop_expire))
{
- GlobalConfig.ShopLoginList.Remove(shop);
+ Dispatcher.Invoke(new Action(() =>
+ {
+ GlobalConfig.ShopLoginList.Add(shop);
+ }));
}
- foreach (var shop in GlobalConfig.ShopLoginList.Where(s => s.is_point_shop_expire).ToList())
- {
- GlobalConfig.ShopLoginList.Remove(shop);
- }
- }));
- readShop = false;
- hasReadShop = true;
+ }
}
+
+ Dispatcher.Invoke(new Action(() =>
+ {
+ foreach (var shop in GlobalConfig.ShopLoginList.Where(s => !list.Any(ss => ss.ShopId == s.ShopId)).ToList())
+ {
+ GlobalConfig.ShopLoginList.Remove(shop);
+ }
+ foreach (var shop in GlobalConfig.ShopLoginList.Where(s => s.is_point_shop_expire).ToList())
+ {
+ GlobalConfig.ShopLoginList.Remove(shop);
+ }
+ }));
+ isReadShop = false;
+ hasReadShop = true;
}
+ #endregion
+
+ #region 读取拼多多买手号
+ public bool isGetPddBuyer = false;
+ public bool hasGetPddBuyer = false;
+ ///
+ /// 读取拼多多买手
+ ///
+ public void GetPddBuyer()
+ {
+ if (isGetPddBuyer)
+ return;
+
+ isGetPddBuyer = true;
+ //var ids = dgvBuyer.Rows.Cast().Where(r => r.Cells["colSelect"].Value.ParseToBool() == true).Select(s => s.Cells["colBuyerId"].Value.ParseToString()).ToList();
+ //Invoke(new Action(() => { pbLoading.Visible = true; }));
+
+ try
+ {
+ var url = BaseClass.Build29PDDObjString("user/get_buyer");
+ var data = UserLogin.GetSignaturex();
+ data += "&page_size=200";
+
+ var result = GetHtml.PostUtf8(url, data);
+ if (string.IsNullOrEmpty(result) || !result.Contains("\"code\":200"))
+ result = GetHtml.PostUtf8(url, data);
+
+ if (result.Contains("\"code\":200"))
+ {
+ List loginInfoLst = JsonHelper.DeserializeJsonToList(JsonHelper.JObjectParse(result)["data"].ParseToString());
+
+ foreach (var buyer in GlobalConfig.PDDBuyerLoginList.Where(bu => !loginInfoLst.Any(b => b.buyer_id == bu.buyer_id)).ToList())
+ {
+ Dispatcher.Invoke(new Action(() => { GlobalConfig.PDDBuyerLoginList.Remove(buyer); }));
+ }
+
+ foreach (var b in loginInfoLst)
+ {
+ Dispatcher.Invoke(new Action(() =>
+ {
+ var buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(bu => bu.buyer_id == b.buyer_id);
+ if (buyer == null)
+ GlobalConfig.PDDBuyerLoginList.Add(b);
+ else
+ {
+ buyer.add_time = b.add_time;
+ buyer.buyer_id = b.buyer_id;
+ buyer.buyer_name = b.buyer_name;
+ buyer.buyer_nick = b.buyer_nick;
+ buyer.cookie = b.cookie;
+ buyer.mdy_time = b.mdy_time;
+ buyer.notes = b.notes;
+ buyer.status = b.status;
+ buyer.user_name = b.user_name;
+ }
+ }));
+ }
+
+ //Invoke(new Action(() =>
+ //{
+ //dgvBuyer.Rows.Clear();
+ //cmbBuyer.Items.Clear();
+ //}));
+
+ foreach (var buyer in GlobalConfig.PDDBuyerLoginList)
+ {
+ //Invoke(new Action(() =>
+ //{
+ //BindBuyer(buyer, "", ids);
+ //cmbBuyer.Items.Add(buyer.buyer_nick);
+ //}));
+ }
+ }
+ }
+ catch
+ {
+ }
+
+ //Invoke(new Action(() =>
+ //{
+ // pbLoading.Visible = false;
+ //}));
+
+ isGetPddBuyer = false;
+ hasGetPddBuyer = true;
+ }
+ #endregion
}
}
diff --git a/29WxOrderWpf/Styles/BaseComboBoxStyle.xaml b/29WxOrderWpf/Styles/BaseComboBoxStyle.xaml
index 92142c8..f8f2aed 100644
--- a/29WxOrderWpf/Styles/BaseComboBoxStyle.xaml
+++ b/29WxOrderWpf/Styles/BaseComboBoxStyle.xaml
@@ -297,13 +297,84 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/29WxOrderWpf/packages.config b/29WxOrderWpf/packages.config
index a2bcb38..3d04e23 100644
--- a/29WxOrderWpf/packages.config
+++ b/29WxOrderWpf/packages.config
@@ -1,4 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/AllBase/29WxOrderAllBase.csproj b/AllBase/29WxOrderAllBase.csproj
index 65966ea..034185b 100644
--- a/AllBase/29WxOrderAllBase.csproj
+++ b/AllBase/29WxOrderAllBase.csproj
@@ -1,5 +1,8 @@
+
+
+
Debug
AnyCPU
@@ -14,6 +17,8 @@
512
+
+
true
@@ -58,7 +63,7 @@
DEBUG;TRACE
true
full
- AnyCPU
+ x86
false
prompt
MinimumRecommendedRules.ruleset
@@ -69,7 +74,7 @@
true
true
pdbonly
- AnyCPU
+ x64
false
prompt
MinimumRecommendedRules.ruleset
@@ -79,6 +84,19 @@
..\packages\Portable.BouncyCastle.1.8.6\lib\net40\BouncyCastle.Crypto.dll
+
+ ..\packages\CefSharp.Common.138.0.340\lib\net462\CefSharp.dll
+
+
+ ..\packages\CefSharp.Common.138.0.340\lib\net462\CefSharp.Core.dll
+
+
+ ..\packages\CefSharp.WinForms.138.0.340\lib\net462\CefSharp.WinForms.dll
+
+
+ ..\packages\CefSharp.Wpf.138.0.340\lib\net462\CefSharp.Wpf.dll
+ True
+
..\packages\SharpZipLib.1.3.1\lib\net45\ICSharpCode.SharpZipLib.dll
@@ -123,7 +141,10 @@
-
+
+
+
+
@@ -143,9 +164,10 @@
-
+
+
@@ -170,6 +192,16 @@
+
+
+ 这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAEAgIAQYAAAAABoKAAAFgAAACgAAACAAAAAAAEAAAEABAAAAAAAACgAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
+ AAD///8AAAAAAAAAAAAAAAAABEZmbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZkQAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAZszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMxmAAAAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMxkAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMzGQAAAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAABszMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAAAAbMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMx3d4iIiIiIiIh3fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAABszMzMzMzMzMzM
+ zMzMzMzMzMzHeIiIiIj/////////iIiIiId8zMzMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAAAGzMzMzMzM
+ zMzMzMzMzMzMzMeIiI/////////////////////4iIh8zMzMzMzMzMzMzMzMzMzMzMxgAAAAAAAATMzM
+ zMzMzMzMzMzMzMzMzHiI////////////////////////////iIfMzMzMzMzMzMzMzMzMzMzMxAAAAAAA
+ AGzMzMzMzMzMzMzMzMzMx3iP///////////////////////////////4iHzMzMzMzMzMzMzMzMzMzMYA
+ AAAAAAbMzMzMzMzMzMzMzMzMx3iP//////////////////////////////////+IfMzMzMzMzMzMzMzM
+ zMzMYAAAAABMzMzMzMzMzMzMzMzMx3iP/////////////////////////////////////4h8zMzMzMzM
+ zMzMzMzMzMQAAAAAbMzMzMzMzMzMzMzMzHiP////////////////////////////////////////h3zM
+ zMzMzMzMzMzMzMzGAAAABMzMzMzMzMzMzMzMzHiP////////////////////////////////////////
+ //iHzMzMzMzMzMzMzMzMzEAAAAbMzMzMzMzMzMzMzMeI////////////////////////////////////
+ ////////+IfMzMzMzMzMzMzMzMxgAABMzMzMzMzMzMzMzMx4////////////////////////////////
+ //////////////+IfMzMzMzMzMzMzMzMxAAAbMzMzMzMzMzMzMzHj///////////////////////////
+ /////////////////////4fMzMzMzMzMzMzMzMYAAMzMzMzMzMzMzMzMeP//////////////////////
+ ///////////////////////////4fMzMzMzMzMzMzMzMAAbMzMzMzMzMzMzMx4//////////////////
+ /////////////////////////////////4fMzMzMzMzMzMzMzGAGzMzMzMzMzMzMzHj/////////////
+ ///////////////////////////////////////4fMzMzMzMzMzMzMxgDMzMzMzMzMzMzMyI////////
+ /////////////////////////////////////////////4zMzMzMzMzMzMzMwEzMzMzMzMzMzMzHj///
+ //////////////////////////////////////////////////+HzMzMzMzMzMzMzMRszMzMzMzMzMzM
+ eP//////////////////////////////////////////////////////+HzMzMzMzMzMzMzGbMzMzMzM
+ zMzMzHj///////////////////////////////////////////////////////+MzMzMzMzMzMzMxmzM
+ zMzMzMzMzMyP////+IiP////////////////////////////////////////+I//////h8zMzMzMzMzM
+ zMZszMzMzMzMzMzHj////4iIiI//////////////////////////////////////+IiIj/////jMzMzM
+ zMzMzMzGbMzMzMzMzMzMyP////iIiIiI/////////////////////////////////////4iIiIj////4
+ fMzMzMzMzMzMxszMzMzMzMzMzHj////4iIiIiP////////////////////////////////////+IiIiI
+ j////4zMzMzMzMzMzMbMzMzMzMzMzMx4////iIiIiIj////////////////////////////////////4
+ iIiIiI////+HzMzMzMzMzMzMzMzMzMzMzMzMj////4iIiIiI//////////////+IiP//iI//////////
+ ////+IiIiIiP////h8zMzMzMzMzMzMzMzMzMzMzMzI/////4iIiIiP/////////////4d3eIiIeIj///
+ //////////+IiIiIj/////jMzMzMzMzMzMzMzMzMzMzMzMyP////+IiIiIj/////////////iIiId3eI
+ iI//////////////iIiIiI/////4zMzMzMzMzMzMzMzMzMzMzMzHj/////+IiIiP/////////////4//
+ /4d4j/+P//////////////iIiIj/////+MzMzMzMzMzMzMzMzMzMzMzMx4//////+IiP////////////
+ ///////4j///////////////////iIiP//////jMzMzMzMzMzMzMzMzMzMzMzMeP//////////+IiIj/
+ ///////////////////////////////////////////4fMzMzMzMzMzMzMzMzMzMzMzH//////////+H
+ fMx8eP//////////////////////////iId3iP//////////+HzMzMzMzMzMzMzMzMzMzMzMyP//////
+ ///4fMzHh8eP////////////////////////+MzMzMd4//////////h8zMzMzMzMzMzMzMzMzMzMzMf/
+ ////////+MzMePjMeP///////////////////////4zMzMeHx4/////////4fMzMzMzMzMzMzMzMzMzM
+ zMzH/////////4fMd3eHzMeP//////////////////////iMzMzIiHx4////////+HzMzMzMzMzMzMzM
+ zMzMzMzMx/////////+Hx4iIfMzMj//////////////////////4h3d8x4h8yP////////jMzMzMzMzM
+ zMzMzMzMzMzMzMeP////////+HiP+IfMzI//////////////////////+HiIiHd3zHj////////4zMzM
+ zMzMzMzMzMzMzMzMzMzHj/////////h4//+HzMeP//////////////////////h4//h8zMyP////////
+ +MzMzMzMzMzMzMzMzMzMzMzMzI/////////4iP//h8x4///////////////////////4j//4fMzHj///
+ //////jMzMzMzMzMzMzMzMzMzMzMzMyP///////4iIiP+IfHj///////////////////////+Ij/+HzM
+ eP/////////4zMzMzMzMzMzMzMzMzMzMzMzMj///////iIiIiIh3eP////////////////////////+I
+ j4h8x3iI////////h8zMzMzMzMzMzMzMzMzMzMzMzH//////+Hj///iIiI//////////////////////
+ /////4iId4iIiIj//////4zMzMzMzMzMzMzMzMzMzMzMzMx4//////iP////iP//////////////////
+ /////////////4iP//iI//////+MzMzMzMzMzMzMzMzMzMzMzMzMyP//////////+I//////////////
+ ///////////////////4eP//iP//////jMzMzMzMzMzMzMzMzMzMzMzMzMj///////////iP////////
+ /////////////////////////4j/////////+HzMzMzMzMzMzMzMzMzMzMzMzMzHj///////////////
+ //////////////////////////////+I//////////jMzMzMzMzMzMzMzMzMzMzMzMzMzI//////////
+ //////////////////////////////////////////////+HzMzMzMzMzMzMzMzMzMzMzMzMzMyP////
+ ////////////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzM
+ eP///////////////////////////////////////////////////////4zMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMj///////////////////////////////////////////////////////h8zMzMzMzMzMzMzMzM
+ zMzMzMzMzMzHj//////////////////////////////////////////////////////4zMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzI//////////////////////////////////////////////////////h8zMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMx4////////////////////////////////////////////////////+HzM
+ zMzMzMzMzMzMzMzMzMzMzMzMzMzMyI////+I////////////////////////////////////////////
+ //h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////+Ij/////////////////////////////////////
+ //////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////+IiIiIj//////////////////////////4
+ ////iI/////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMiP/////4iIiP//////////////////////
+ ////+IiIiIj/////iHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP//////////////////////////
+ ///////////4iIj//////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP////////////////////
+ //////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiP//////////////
+ //////////////////////////////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHj/////////
+ ///////////////////////////////////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP////
+ ////////////////////////////////////////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzI
+ j/////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMeP//////////////////////////////////////////////h8zMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMx4////////+I//////////////////////////////////////jMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMeP///////4iIj///////////////////////////iP///////4fMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMx4////////iIiIiP///////////////////////4iIiP///////4zMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiI////////////////////+IiIiIj///////+HzMzM
+ zMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIj////////////////////4iIiIiIj///////
+ +MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiI////////////////////+IiIiIiI//
+ //////h8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIiP////////////////////iIiI
+ iIiI///////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMj///////+IiIiIiIj/////iIiIiIiIj/////
+ /4iIiIiIiP///////4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4////////iIiIiIiI/////4zMzMzMzM
+ j/////+IiIiIiIiP//////+HzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP//////+IiIiIiIj/////+MzM
+ zMzMzI//////+IiIiIiIj///////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzI////////iIiIiIiI////
+ //jMzMzMzMyP//////iIiIiIiIj///////jMzMzMzMzMzMzMzMzMzMzMzMzMzMzMeP///////4iIiIiI
+ iP/////4zMzMzMzMj//////4iIiIiIiI///////4fMzMzMzMzMzMzMzMzMzMzMzMzMzMzI////////iI
+ iIiIiI//////+MzMzMzMzI//////+IiIiIiIiP///////4zMzMzMzMzMzMzMzMzMzMzMzMzMzMyP////
+ ///4iIiIiIiP//////fMzMzMzMyP//////+IiIiIiIj///////+MzMzMzMzMzMzMzMzMzMzMzMzMzMzH
+ j///////+IiIiIiI//////+HzMzMzMzMeP//////iIiIiIiIj///////jMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMyP////////iIiIiIiP//////jMzMzMzMzHj///////iIiIiIiI///////4fMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMj///////+IiIiIiI///////4zMzMzMzMzI///////4iIiIiIiI///////3zMzMzMzMzMzM
+ zMzMzMzMzMzMzMzI////////iIiIiIiP//////+MzMzMzMzMyP//////+IiIiIiIiP//////+MzMzMzM
+ zMzMzMzMzMzMzMzMzMzMeP///////4iIiIiIj///////jMzMzMzMzMj///////+IiIiIiIj///////jM
+ zMzMzMzMzMzMzMzMzMzMzMzMzI////////+IiIiIiP//////+HzMzMzMzMzHj///////iIiIiIiI////
+ ///4zMzMzMzMzMzMzMzMzMzMzMzMzMyP////////iIiIiI////////jMzMzMzMzMzI///////4iIiIiI
+ iI//////+MzMzMzMzMzMzMzMzMzMzMzMzMzMj////////4iIiIiP///////4zMzMzMzMzMyP///////4
+ iIiIiIiP//////jMzMzMzMzMzMzMzMzMzMzMzMzMzI////////+IiIiI////////h8zMzMzMzMzMeP//
+ /////4iIiIiIj//////4fMzMzMzMzMzMzMzMzMzMzMzMzMyP////////iIiIj////////4fMzMzMzMzM
+ zHj///////+IiIiIiI//////+HzMzMzMzMzMzMzMzMzMzMzMzMzHj/////////iIiP////////+MzMzM
+ zMzMzMzI////////+IiIiIiP//////h8zMzMzMzMzMzMxmzMzMzMzMzMx4/////////4iP/////////4
+ fMzMzMzMzMzMx4////////+IiIiIj//////4fMzMzMzMzMzMzMZszMzMzMzMzMeP////////////////
+ ////+MzMzMzMzMzMzMyP////////iIiIiP//////+HzMzMzMzMzMzMzGbMzMzMzMzMzH////////////
+ //////////fMzMzMzMzMzMzMeP////////iIiIj///////98zMzMzMzMzMzMxmzMzMzMzMzMyP//////
+ //////////////+HzMzMzMzMzMzMzHj/////////+IiP////////jMzMzMzMzMzMzMZszMzMzMzMzMj/
+ ////////////////////jMzMzMzMzMzMzMzIj////////////////////4zMzMzMzMzMzMzGTMzMzMzM
+ zMzH////////////////////+HzMzMzMzMzMzMzMx4////////////////////+MzMzMzMzMzMzMxAzM
+ zMzMzMzMx/////////////////////jMzMzMzMzMzMzMzMyI///////////////////4fMzMzMzMzMzM
+ zMAGzMzMzMzMzMeP//////////////////+HzMzMzMzMzMzMzMzMeP//////////////////+HzMzMzM
+ zMzMzMxgBszMzMzMzMzHj//////////////////4fMzMzMzMzMzMzMzMzMeP//////////////////h8
+ zMzMzMzMzMzMYADMzMzMzMzMzI//////////////////+HzMzMzMzMzMzMzMzMzHj///////////////
+ ///4zMzMzMzMzMzMzAAAbMzMzMzMzMyP/////////////////4fMzMzMzMzMzMzMzMzMzHj/////////
+ ////////+MzMzMzMzMzMzMYAAEzMzMzMzMzMj/////////////////+MzMzMzMzMzMzMzMzMzMzIj///
+ /////////////4fMzMzMzMzMzMzEAAAGzMzMzMzMzHj////////////////4fMzMzMzMzMzMzMzMzMzM
+ x4////////////////+MzMzMzMzMzMzMYAAABMzMzMzMzMx4////////////////h8zMzMzMzMzMzMzM
+ zMzMzMx4///////////////4fMzMzMzMzMzMzEAAAABszMzMzMzMx4//////////////+HzMzMzMzMzM
+ zMzMzMzMzMzMx4//////////////+MzMzMzMzMzMzMYAAAAATMzMzMzMzMyP/////////////4fMzMzM
+ zMzMzMzMzMzMzMzMzMeI/////////////4fMzMzMzMzMzMzEAAAAAAbMzMzMzMzMeP////////////h8
+ zMzMzMzMzMzMzMzMzMzMzMzMeI////////////h8zMzMzMzMzMzMYAAAAAAAbMzMzMzMzMeP////////
+ //iHzMzMzMzMzMzMzMzMzMzMzMzMzMyI//////////+HzMzMzMzMzMzMxgAAAAAAAEzMzMzMzMzMeP//
+ //////iHfMzMzMzMzMzMzMzMzMzMzMzMzMzMx4/////////4fMzMzMzMzMzMzMQAAAAAAAAGzMzMzMzM
+ zMeI//////iHfMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx4j//////4h8zMzMzMzMzMzMxgAAAAAAAAAGzM
+ zMzMzMzMx4iIiIiHzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzHiIj/+Ih3zMzMzMzMzMzMzGAAAAAAAA
+ AAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMx3iId8zMzMzMzMzMzMzMYAAA
+ AAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ xgAAAAAAAAAAAAAGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzGAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzGQAAAAAAAAAAAAAAAAAbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMYAAAAAAAAAAAAAAAAAAARszMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAABGzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAEbMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMzMzMZAAAAAAAAAAAAAAAAAAAAAAAAAAABmzMzMzMzMzMzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMzMzMzMzGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGZmzMzMzMzMzMzMzM
+ zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMZmZEAAAAAAAAAAAAAAAAD////+AAAAAAAAAAD/////////AAAA
+ AAAAAAAAAP//////+AAAAAAAAAAAAAAf/////+AAAAAAAAAAAAAAB/////+AAAAAAAAAAAAAAAH////+
+ AAAAAAAAAAAAAAAAf////AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAA
+ B///wAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAAAB//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA
+ AAAAAAB//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAf+AAAAAAA
+ AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAB+AA
+ AAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA
+ AAOAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABAAAAAAAA
+ AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAA
+ AAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABgAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA
+ AAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH8AAAAAAAAAAAAAAAAAAAD/AA
+ AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/wAAAAAAAAAAAAAAAAA
+ AD/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAA
+ AAAAAAH//8AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////wAAAAA
+ AAAAAAAAAAA////+AAAAAAAAAAAAAAAAf////4AAAAAAAAAAAAAAAf/////gAAAAAAAAAAAAAAf/////
+ +AAAAAAAAAAAAAAf//////8AAAAAAAAAAAAA/////////gAAAAAAAAAAf////w==
+
+
+
\ No newline at end of file
diff --git a/Work/BaseForms/UserComponents/UcCheckBox.cs b/Work/BaseForms/UserComponents/UcCheckBox.cs
index e350a4c..f2f28f0 100644
--- a/Work/BaseForms/UserComponents/UcCheckBox.cs
+++ b/Work/BaseForms/UserComponents/UcCheckBox.cs
@@ -17,23 +17,23 @@ namespace Work.UserComponents
public UcCheckBox()
{
InitializeComponent();
- this.CheckBoxCheckColor = GlobalConfig.MainColor;
- this.CheckBoxBorderColor = GlobalConfig.BorderColor;
+ this.CheckBoxCheckColor = GlobalConfig.WeiXinMainColor;
+ this.CheckBoxBorderColor = GlobalConfig.WeiXinBorderColor;
}
public UcCheckBox(IContainer container)
{
container.Add(this);
- this.CheckBoxCheckColor = GlobalConfig.MainColor;
- this.CheckBoxBorderColor = GlobalConfig.BorderColor;
+ this.CheckBoxCheckColor = GlobalConfig.WeiXinMainColor;
+ this.CheckBoxBorderColor = GlobalConfig.WeiXinBorderColor;
InitializeComponent();
}
private int checkBoxSize = 12;
public Color CheckBoxColor = Color.White;
- public Color CheckBoxCheckColor = GlobalConfig.DefaultMainColor;
- public Color CheckBoxBorderColor = GlobalConfig.DefaultBorderColor;
+ public Color CheckBoxCheckColor = GlobalConfig.WeiXinMainColor;
+ public Color CheckBoxBorderColor = GlobalConfig.WeiXinBorderColor;
protected override void OnPaint(PaintEventArgs e)
{
diff --git a/Work/Class1.cs b/Work/Class1.cs
deleted file mode 100644
index 32bd8d9..0000000
--- a/Work/Class1.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Work
-{
- public class Class1
- {
- }
-}
diff --git a/Work/_29Tools/BLL/HttpResponseBLL.cs b/Work/_29Tools/BLL/HttpResponseBLL.cs
new file mode 100644
index 0000000..4e2b80d
--- /dev/null
+++ b/Work/_29Tools/BLL/HttpResponseBLL.cs
@@ -0,0 +1,64 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+
+namespace Work._29Tools.BLL
+{
+ public class HttpResponseBLL
+ {
+
+ public static string ReadResponse(HttpWebResponse response, Encoding encoding = null)
+ {
+ using (Stream responseStream = response.GetResponseStream())
+ {
+ Stream streamToRead = responseStream;
+ if (response.ContentEncoding.ToLower().Contains("gzip"))
+ {
+ streamToRead = new GZipStream(streamToRead, CompressionMode.Decompress);
+ }
+ else if (response.ContentEncoding.ToLower().Contains("deflate"))
+ {
+ streamToRead = new DeflateStream(streamToRead, CompressionMode.Decompress);
+ }
+ if (encoding == null) encoding = Encoding.UTF8;
+ using (StreamReader streamReader = new StreamReader(streamToRead, encoding))
+ {
+ return streamReader.ReadToEnd();
+ }
+ }
+ }
+ public static void WriteMultipartBodyToRequest(HttpWebRequest request, string body)
+ {
+ string[] multiparts = Regex.Split(body, @"");
+ byte[] bytes;
+ using (MemoryStream ms = new MemoryStream())
+ {
+ foreach (string part in multiparts)
+ {
+ if (File.Exists(part))
+ {
+ bytes = File.ReadAllBytes(part);
+ }
+ else
+ {
+ bytes = System.Text.Encoding.UTF8.GetBytes(part.Replace("\r\n", "\n").Replace("\r", "\n").Replace("\n", "\r\n"));
+ }
+
+ ms.Write(bytes, 0, bytes.Length);
+ }
+
+ request.ContentLength = ms.Length;
+ using (Stream stream = request.GetRequestStream())
+ {
+ ms.WriteTo(stream);
+ }
+ }
+ }
+ }
+}
diff --git a/Work/_29Tools/BLL/HttpResponseWXBLL.cs b/Work/_29Tools/BLL/HttpResponseWXBLL.cs
new file mode 100644
index 0000000..aae3d17
--- /dev/null
+++ b/Work/_29Tools/BLL/HttpResponseWXBLL.cs
@@ -0,0 +1,693 @@
+using AllBase;
+using AllBase.Model.Result;
+using NaiBa.Util.Extension;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Work._29Tools.BLL
+{
+ public class HttpResponseWXBLL
+ {
+ //Assistant
+ public static string WeiXinAssistantPostResponse(ShopLoginInfo shop, string _url, string _data, string referer)
+ {
+ string biz_magic = "";
+ string talent_magic = "";
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ //var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic");
+ //if (bizMagicCookie != null)
+ // biz_magic = bizMagicCookie.Value;
+ var talentMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "talent_magic");
+ if (talentMagicCookie != null)
+ talent_magic = talentMagicCookie.Value;
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ request.Headers.Add("wecom_magic", @"");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("supplier_magic", @"");
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("potter-scene", @"weixinShop");
+ request.Headers.Add("biz_magic", "");
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Accept = "application/json, text/plain, */*";
+ request.Headers.Add("talent_magic", talent_magic);
+ request.ContentType = "application/json";
+ request.Headers.Add("mcn_magic", @"");
+ request.Headers.Add("Origin", @"https://store.weixin.qq.com");
+ request.Headers.Add("Sec-Fetch-Site", @"same-origin");
+ request.Headers.Add("Sec-Fetch-Mode", @"cors");
+ request.Headers.Add("Sec-Fetch-Dest", @"empty");
+ request.Referer = referer;
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6");
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+
+ request.Method = "POST";
+ request.ServicePoint.Expect100Continue = false;
+
+ string body = _data;
+ byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
+ request.ContentLength = postBytes.Length;
+ Stream stream = request.GetRequestStream();
+ stream.Write(postBytes, 0, postBytes.Length);
+ stream.Close();
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string WeiXinPostResponse(ShopLoginInfo shop, string _url, string _data, string referer)
+ {
+ string biz_magic = "";
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic");
+ if (bizMagicCookie != null)
+ biz_magic = bizMagicCookie.Value;
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ request.Headers.Add("wecom_magic", @"");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("supplier_magic", @"");
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("potter-scene", @"weixinShop");
+ request.Headers.Add("biz_magic", biz_magic);
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Accept = "application/json, text/plain, */*";
+ request.Headers.Add("talent_magic", @"");
+ request.ContentType = "application/json";
+ request.Headers.Add("mcn_magic", @"");
+ request.Headers.Add("Origin", @"https://store.weixin.qq.com");
+ request.Headers.Add("Sec-Fetch-Site", @"same-origin");
+ request.Headers.Add("Sec-Fetch-Mode", @"cors");
+ request.Headers.Add("Sec-Fetch-Dest", @"empty");
+ request.Referer = referer;
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6");
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+
+ request.Method = "POST";
+ request.ServicePoint.Expect100Continue = false;
+
+ string body = _data;
+ byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
+ request.ContentLength = postBytes.Length;
+ Stream stream = request.GetRequestStream();
+ stream.Write(postBytes, 0, postBytes.Length);
+ stream.Close();
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string WeiXinTalentOpenKfPostResponse(ShopLoginInfo shop, string _url, string _data, string referer)
+ {
+ string biz_magic = "";
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic");
+ if (bizMagicCookie != null)
+ biz_magic = bizMagicCookie.Value;
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ request.Headers.Add("wecom_magic", @"");
+ request.Headers.Add("user_scene", @"1002");
+ request.Headers.Add("kf_scene", @"6");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("supplier_magic", @"");
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("potter-scene", @"weixinShop");
+ request.Headers.Add("biz_magic", biz_magic);
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Accept = "application/json, text/plain, */*";
+ request.Headers.Add("talent_magic", @"");
+ request.ContentType = "application/json";
+ request.Headers.Add("logistics_magic", @"");
+ request.Headers.Add("mcn_magic", @"");
+ request.Headers.Add("Origin", @"https://store.weixin.qq.com");
+ request.Headers.Add("Sec-Fetch-Site", @"same-origin");
+ request.Headers.Add("Sec-Fetch-Mode", @"cors");
+ request.Headers.Add("Sec-Fetch-Dest", @"empty");
+ request.Referer = referer;
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6");
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+
+ request.Method = "POST";
+ request.ServicePoint.Expect100Continue = false;
+
+ string body = _data;
+ byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
+ request.ContentLength = postBytes.Length;
+ Stream stream = request.GetRequestStream();
+ stream.Write(postBytes, 0, postBytes.Length);
+ stream.Close();
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string WeiXinImgPostResponse(ShopLoginInfo shop, string _url, string _data, string dis_k, long dis_t, string ext, string referer = "https://store.weixin.qq.com/")
+ {
+ string biz_magic = "";
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic");
+ if (bizMagicCookie != null)
+ biz_magic = bizMagicCookie.Value;
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("X-Requested-With", @"XMLHttpRequest");
+ //request.Headers.Add("X-Arguments", @"dis_k=9974f70b8c9e17952a3bf6aa7b0fcfee84d976d5&dis_t=1767868679&ext=1b37ffc79cfe7&apptype=160&filetype=20304&openid=ouBgG2b2iqWytVlHHK0lhZvMBf2o&groupid=0&taskid=c9059d06-383e-460e-86e6-a0cb134016a9");
+ request.Headers.Add("X-Arguments", @"dis_k=" + dis_k + @"&dis_t=" + dis_t + @"&ext=" + ext + @"&apptype=160&filetype=20304&openid=" + shop.openid + @"&groupid=0&taskid=" + Guid.NewGuid().ToString());
+ request.Accept = "application/json, text/plain, */*";
+ request.ContentType = "application/json";
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Headers.Add("Origin", @"https://store.weixin.qq.com");
+ request.Headers.Add("Sec-Fetch-Site", @"same-site");
+ request.Headers.Add("Sec-Fetch-Mode", @"cors");
+ request.Headers.Add("Sec-Fetch-Dest", @"empty");
+ request.Referer = referer;
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+
+
+ request.Method = "POST";
+ request.ServicePoint.Expect100Continue = false;
+
+ string body = _data;
+ byte[] postBytes = Convert.FromBase64String(body);
+ request.ContentLength = postBytes.Length;
+ Stream stream = request.GetRequestStream();
+ stream.Write(postBytes, 0, postBytes.Length);
+ stream.Close();
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string WeiXinUploadResponse(ShopLoginInfo shop, string _url, string _body, string boundaryStr, string referer)
+ {
+
+ string biz_magic = "";
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ if (cook.Name.StartsWith("biz"))
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic");
+ if (bizMagicCookie != null)
+ biz_magic = bizMagicCookie.Value;
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.Headers.Add("wecom_magic", @"");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("supplier_magic", @"");
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("potter-scene", @"weixinShop");
+ request.Headers.Add("biz_magic", biz_magic);
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Accept = "application/json, text/plain, */*";
+ request.Headers.Add("talent_magic", @"");
+ request.ContentType = "multipart/form-data; boundary=" + boundaryStr;
+ request.Headers.Add("mcn_magic", @"");
+ request.Headers.Add("Origin", @"https://store.weixin.qq.com");
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+ request.Headers.Add("Sec-Fetch-Site", @"same-origin");
+ request.Headers.Add("Sec-Fetch-Mode", @"cors");
+ request.Headers.Add("Sec-Fetch-Dest", @"empty");
+ request.Referer = referer; //"https://store.weixin.qq.com/shop/goods/entry";
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+
+
+ request.Method = "POST";
+ request.ServicePoint.Expect100Continue = false;
+
+ string body = _body;
+ HttpResponseBLL.WriteMultipartBodyToRequest(request, body);
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string WeiXinGetResponse(ShopLoginInfo shop, string _url, string referer = "", bool isGetDocument = false)
+ {
+ string biz_magic = "";
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(shop?.Cookies.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ if (cook.Name.StartsWith("biz"))
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ var bizMagicCookie = cookieLst.FirstOrDefault(c => c.Name == "biz_magic");
+ if (bizMagicCookie != null)
+ biz_magic = bizMagicCookie.Value;
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ if (isGetDocument)
+ {
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("Upgrade-Insecure-Requests", @"1");
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7";
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+ request.Headers.Add("Sec-Fetch-Site", @"none");
+ request.Headers.Add("Sec-Fetch-Mode", @"navigate");
+ request.Headers.Add("Sec-Fetch-User", @"?1");
+ request.Headers.Add("Sec-Fetch-Dest", @"document");
+ }
+ else
+ {
+ request.Headers.Add("wecom_magic", @"");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("supplier_magic", @"");
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("potter-scene", @"weixinShop");
+ request.Headers.Add("biz_magic",biz_magic);
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Accept = "application/json, text/plain, */*";
+ request.Headers.Add("talent_magic", @"");
+ request.Headers.Add("mcn_magic", @"");
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+ request.Headers.Add("Sec-Fetch-Site", @"same-origin");
+ request.Headers.Add("Sec-Fetch-Mode", @"cors");
+ request.Headers.Add("Sec-Fetch-Dest", @"empty");
+ request.Referer = referer;
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+ }
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string kdniaoPostResponse(string _url, string _data, string referer, Dictionary reqDic, string kdnAuth = null, string kdnAuthKey = "Auth")
+ {
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_url);
+
+ request.KeepAlive = true;
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ //request.Headers.Add("kdnAuth", @"62993d99a28947aaadd6b79427929562");
+ //request.Headers.Add("kdnAuth", kdnAuth);
+ //request.Headers.Add("Auth", kdnAuth);
+ //request.Headers.Add(kdnAuthKey, kdnAuth);
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Accept = "application/json, text/javascript, */*; q=0.01";
+ request.ContentType = "application/x-www-form-urlencoded";
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("Origin", @"https://56.kdniao.com");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+ request.Headers.Add("Sec-Fetch-Site", @"same-site");
+ request.Headers.Add("Sec-Fetch-Mode", @"cors");
+ request.Headers.Add("Sec-Fetch-Dest", @"empty");
+ foreach (var key in reqDic.Keys)
+ {
+ if (request.Headers.AllKeys.Contains(key))
+ continue;
+
+ request.Headers.Add(key, reqDic[key].ParseToString());
+ }
+
+ request.Referer = referer;
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
+
+ request.Method = "POST";
+ request.ServicePoint.Expect100Continue = false;
+
+ string body = _data;
+ byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
+ request.ContentLength = postBytes.Length;
+ Stream stream = request.GetRequestStream();
+ stream.Write(postBytes, 0, postBytes.Length);
+ stream.Close();
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string e57PostResponse(string _url, string _data, string referer, string Authorization = null)
+ {
+ if (string.IsNullOrEmpty(Authorization))
+ Authorization = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjQ3YmRlOGNlLWY5MDUtNDIzOS05M2VjLWZiN2U3MjRmOTY0NiJ9.vwxhj3t4zTDdBQTyfVjcKr-0Oma8-VtPDzE2LVkw4A4aWftncY1ikXgEhGwoYHn9E7yOnhS_Pb7FfzgecTqqHA";
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request;
+ if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
+ {
+ ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
+ ServicePointManager.SecurityProtocol =
+ ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
+ request = WebRequest.Create(url) as HttpWebRequest;
+ request.ProtocolVersion = HttpVersion.Version10;
+ }
+ else
+ request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ //request.Headers.Set(HttpRequestHeader.CacheControl, "max-age=0");
+ //request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36";
+ request.ContentType = "application/json";
+ //request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"; //request.Accept = "*/*";
+ //request.Referer = referer;
+ //request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
+ //request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+ request.Headers.Add("sec-ch-ua", @"""Not(A:Brand"";v=""8"", ""Chromium"";v=""144"", ""Google Chrome"";v=""144""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("Upgrade-Insecure-Requests", @"1");
+ request.Headers.Add("Authorization", Authorization);
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36";
+ request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7";
+ request.Headers.Add("Sec-Fetch-Site", @"none");
+ request.Headers.Add("Sec-Fetch-Mode", @"navigate");
+ request.Headers.Add("Sec-Fetch-User", @"?1");
+ request.Headers.Add("Sec-Fetch-Dest", @"document");
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+
+ request.Method = "POST";
+ request.ServicePoint.Expect100Continue = false;
+
+ string body = _data;
+ byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
+ request.ContentLength = postBytes.Length;
+ Stream stream = request.GetRequestStream();
+ stream.Write(postBytes, 0, postBytes.Length);
+ stream.Close();
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string e57GetResponse(string _url, string referer)
+ {
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+
+ HttpWebRequest request;
+ if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))
+ {
+ ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
+ ServicePointManager.SecurityProtocol =
+ ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
+ request = WebRequest.Create(url) as HttpWebRequest;
+ request.ProtocolVersion = HttpVersion.Version10;
+ }
+ else
+ request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ request.Headers.Add("sec-ch-ua", @"""Not(A:Brand"";v=""8"", ""Chromium"";v=""144"", ""Google Chrome"";v=""144""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("Upgrade-Insecure-Requests", @"1");
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36";
+ request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7";
+ request.Headers.Add("Sec-Fetch-Site", @"none");
+ request.Headers.Add("Sec-Fetch-Mode", @"navigate");
+ request.Headers.Add("Sec-Fetch-User", @"?1");
+ request.Headers.Add("Sec-Fetch-Dest", @"document");
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ }
+}
diff --git a/Work/_29Tools/BLL/HttpResponseYkdBLL.cs b/Work/_29Tools/BLL/HttpResponseYkdBLL.cs
new file mode 100644
index 0000000..4df0014
--- /dev/null
+++ b/Work/_29Tools/BLL/HttpResponseYkdBLL.cs
@@ -0,0 +1,267 @@
+using AllBase;
+using AllBase.Model.Result;
+using NaiBa.Util.Extension;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Work._29Tools.BLL
+{
+ public class HttpResponseYkdBLL
+ {
+ public static string YangkeduoPostResponse(BuyerLoginInfo buyer, string _url, string _data, string referer)
+ {
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(buyer?.cookie.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ 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/138.0.0.0 Safari/537.36";
+ request.Accept = "application/json, text/plain, */*";
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("Origin", @"https://mobile.yangkeduo.com");
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+ request.Headers.Add("Sec-Fetch-Site", @"same-origin");
+ request.Headers.Add("Sec-Fetch-Mode", @"cors");
+ request.Headers.Add("Sec-Fetch-Dest", @"empty");
+ request.Referer = referer;
+ //request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+
+ request.Method = "POST";
+ request.ServicePoint.Expect100Continue = false;
+
+ string body = _data;
+ byte[] postBytes = System.Text.Encoding.UTF8.GetBytes(body);
+ request.ContentLength = postBytes.Length;
+ Stream stream = request.GetRequestStream();
+ stream.Write(postBytes, 0, postBytes.Length);
+ stream.Close();
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string YangkeduoGetResponse(BuyerLoginInfo buyer, string _url, string referer = "")
+ {
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(buyer?.cookie.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ 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/138.0.0.0 Safari/537.36";
+ request.Accept = "application/json, text/plain, */*";
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+ request.Headers.Add("Sec-Fetch-Site", @"same-origin");
+ request.Headers.Add("Sec-Fetch-Mode", @"cors");
+ request.Headers.Add("Sec-Fetch-Dest", @"empty");
+ //request.Referer = "https://mobile.yangkeduo.com/goods.html?goods_id=668777537796&_oak_rcto=YWKWG77VXtDidZlaaAew84Hjoi0WMIkr6Sb3iSrTsNPiwhxdCIE-1DEr&_oc_trace_mark=199&_oc_adinfo=eyJwYWdlX3NuIjoxMDAwMiwic2NlbmVfaWQiOjUwNn0%3D&_oak_gallery_token=49fa7eda1bcf57d32ea05e34565ca727&_oak_gallery=https%3A%2F%2Fimg.pddpic.com%2Fmms-material-img%2F2025-08-19%2F74364405-4d67-4d13-ad64-1712f70865db.jpeg.a.jpeg&_oc_refer_ad=1&page_from=35&thumb_url=https%3A%2F%2Fimg.pddpic.com%2Fmms-material-img%2F2025-08-19%2F74364405-4d67-4d13-ad64-1712f70865db.jpeg.a.jpeg%3FimageMogr2%2Fthumbnail%2F400x%257CimageView2%2F2%2Fw%2F400%2Fq%2F80%2Fformat%2Fwebp&refer_page_name=index&refer_page_id=10002_1775730536937_hocm3gfy6j&refer_page_sn=10002&uin=CFS2K7V47GEISCE6TLYY6HRWPI_GEXDA";
+ request.Referer = referer;
+ //request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string YangkeduoGetPageResponse(BuyerLoginInfo buyer, string _url, string referer = "")
+ {
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(buyer?.cookie.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("Upgrade-Insecure-Requests", @"1");
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7";
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+ request.Headers.Add("Sec-Fetch-Site", @"none");
+ request.Headers.Add("Sec-Fetch-Mode", @"navigate");
+ request.Headers.Add("Sec-Fetch-User", @"?1");
+ request.Headers.Add("Sec-Fetch-Dest", @"document");
+ if (!string.IsNullOrEmpty(referer))
+ request.Referer = referer;
+ //request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+
+ public static string YangkeduoGetSearchOrderResponse(BuyerLoginInfo buyer, string _url, string referer = "")
+ {
+ string cookies = "";
+ try
+ {
+ var cookieLst = JsonHelper.DeserializeJsonToList(buyer?.cookie.ParseToString());
+ if (cookieLst == null)
+ cookieLst = new List();
+ foreach (var cook in cookieLst)
+ {
+ cookies += cook.Name + "=" + cook.Value + ";";
+ }
+ }
+ catch { }
+
+ HttpWebResponse response = null;
+ string result;
+ try
+ {
+ string url = _url;
+ HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+
+ request.KeepAlive = true;
+ request.Headers.Add("sec-ch-ua", @"""Not)A;Brand"";v=""8"", ""Chromium"";v=""138""");
+ request.Headers.Add("sec-ch-ua-mobile", @"?0");
+ request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
+ request.Headers.Add("Upgrade-Insecure-Requests", @"1");
+ request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36";
+ request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7";
+ request.Headers.Set(HttpRequestHeader.Cookie, cookies);
+ request.Headers.Add("Sec-Fetch-Site", @"same-origin");
+ request.Headers.Add("Sec-Fetch-Mode", @"navigate");
+ request.Headers.Add("Sec-Fetch-User", @"?1");
+ request.Headers.Add("Sec-Fetch-Dest", @"document");
+ if (!string.IsNullOrEmpty(referer))
+ request.Referer = referer;
+ //request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br, zstd");
+ request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
+ request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
+
+ response = (HttpWebResponse)request.GetResponse();
+ }
+ catch (WebException ex)
+ {
+ if (ex.Status == WebExceptionStatus.ProtocolError)
+ {
+ response = (HttpWebResponse)ex.Response;
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ else return ex.Message;
+ }
+ catch (Exception e)
+ {
+ if (response != null) response.Close();
+ return e.Message;
+ }
+ result = HttpResponseBLL.ReadResponse(response);
+ return result;
+ }
+ }
+}
diff --git a/Work/_29Tools/BLL/SendBuyerOrder.cs b/Work/_29Tools/BLL/SendBuyerOrder.cs
new file mode 100644
index 0000000..9078323
--- /dev/null
+++ b/Work/_29Tools/BLL/SendBuyerOrder.cs
@@ -0,0 +1,36 @@
+using AllBase;
+using AllBase.Model;
+using AllBase.Model.Params;
+using CefSharp.DevTools.LayerTree;
+using NaiBa.Util.Extension;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Work._29Tools.BLL
+{
+ public class SendBuyerOrder
+ {
+ public static string SendBuyerOrderToTransitWarehouse(oms_wei_order_item_info order_item, TransitWarehouseParam warehouseParam,
+ string outOrderNo, int outAmount, string buyerNick, string userNickName)
+ {
+ JObject body = new JObject();
+ body["orderNo"] = order_item.order_id;
+ body["outOrderNo"] = outOrderNo;
+ body["outAmount"] = outAmount.ParseToString();
+ body["buyerAccount"] = buyerNick;
+ body["purchaserNote"] = userNickName;
+ body["express1Company"] = ""; // 物流公司编号
+ body["express1Waybill"] = ""; // 物流编号
+ body["platform"] = warehouseParam.TransId; // 中转仓ID
+ body["orderPlatformCode"] = "WEISHOP";
+ var url = "https://po.e57.cn/prod-api/api/oms-api/externalProcurement/saveOrUpdate";
+ var dataStr = JsonHelper.SerializeObject(body);
+ var exportRst = HttpResponseWXBLL.e57PostResponse(url, dataStr, "");
+ return exportRst;
+ }
+ }
+}
diff --git a/Work/_29Tools/CefTools/CustomResourceRequestHandlerLocal.cs b/Work/_29Tools/CefTools/CustomResourceRequestHandlerLocal.cs
new file mode 100644
index 0000000..30ee071
--- /dev/null
+++ b/Work/_29Tools/CefTools/CustomResourceRequestHandlerLocal.cs
@@ -0,0 +1,188 @@
+using CefSharp;
+using CefSharp.Handler;
+using CefSharp.ResponseFilter;
+using NaiBa.Util.Helper;
+using System;
+using System.Collections.Concurrent;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Work._29Tools.CefTools
+{
+
+ public class BaseResourceRequestHandler : ResourceRequestHandler
+ {
+ public string UserAgent = string.Empty;
+ public Func