Files
29WxOrder/29WxOrder/MainForm.cs
T

3859 lines
202 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using AllBase;
using AllBase.DouYinModel.Result;
using AllBase.Helper;
using AllBase.Model;
using AllBase.Model.Result;
using CefSharp;
using CefSharp.WinForms;
using DevComponents.DotNetBar;
using _29WxOrder.Extension;
using _29WxOrder.FactoryExportForms;
using _29WxOrder.Helper;
using _29WxOrder.OrderForms;
using _29WxOrder.Properties;
using _29WxOrder.ShopForms;
using _29WxOrder.ToolForms;
using NaiBa.CefHelper;
using NaiBa.CefHelper.Handler;
using NaiBa.Util;
using NaiBa.Util.Extension;
using NaiBa.Util.Helper;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Threading;
using Work;
using Work.Api;
using Work.BaseForms;
using Work.BuyUsers;
using _29WxOrder.MyControl;
using AllBase.Model.DBModel;
using Work._29Tools.BLL;
namespace _29WxOrder
{
public partial class MainForm : Form
{
public static MainForm instance = null;
private ChromiumWebBrowser cefWebBrowser = null;
private ChromiumWebBrowser cefTaoBaoAliRefreshWebBrowser = null;
int currentCefReadOrderPage = 0;
private bool isCefLoad = false;
private Point mouseOffset; // 记录鼠标指针的坐标
private bool isMouseDown; // 记录鼠标左键是否按下
DispatcherTimer time_SendOrder = new DispatcherTimer();
DispatcherTimer time_ReadBuyOrder = new DispatcherTimer();
int DefaultTop = 0;
int DefaultLeft = 0;
public MainForm()
{
InitializeComponent();
instance = this;
SetWindowRegion();
this.Text = label3.Text; // "小奶兔";
if (FileBase.Exists(BaseClass.ProgromLogoIco))
{
Image img = Image.FromFile(BaseClass.ProgromLogoIco);
BaseClass.Ico = ImgConvertToIcon.ConvertToIcon(img, false);
Icon = BaseClass.Ico;
pictureBox1.Image = img;
}
if (FileBase.Exists(BaseClass.ProgromLogo))
{
Image img = Image.FromFile(BaseClass.ProgromLogo);
}
if (!string.IsNullOrEmpty(BaseClass.ProgramName))
{
this.Text = label3.Text = BaseClass.ProgramName;
}
time_SendOrder.Interval = new TimeSpan(0, 0, 1);
time_SendOrder.Tick += new EventHandler(sendOrder);
time_SendOrder.Start();
time_ReadBuyOrder.Interval = new TimeSpan(0, 0, 1);
time_ReadBuyOrder.Tick += new EventHandler(readBuyOrder);
time_ReadBuyOrder.Start();
new Thread(Ini).Start();
}
public string PddUid = "";
public void Ini()
{
string path = "temp/province";
if (!Directory.Exists("temp"))
Directory.CreateDirectory("temp");
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
string mainDomain = "yangkeduo.com";
while (string.IsNullOrEmpty(PddUid))
{
Thread.Sleep(100);
if (BaseClass.CookiesAll.ContainsKey("yangkeduo.com") && BaseClass.CookiesAll[mainDomain].ContainsKey("pdd_user_id"))
PddUid = BaseClass.CookiesAll[mainDomain]["pdd_user_id"];
}
string html = GetProvince("1");
var m = BaseRegex.GetMatchRegex(ref html, @"\{(.+?)\}");
for (int i = 0; m != null && i < m.Count; i++)
{
string list = m[i].Groups[0].Value;
ProvinceBase p = new ProvinceBase();
p.name = BaseRegex.GetStringJson(ref list, "region_name");
p.id = BaseRegex.GetStringJson(ref list, "region_id");
p.parent_id = BaseRegex.GetStringJson(ref list, "parent_id");
html = GetProvince(p.id);
var mm = BaseRegex.GetMatchRegex(ref html, @"\{(.+?)\}");
for (int j = 0; mm != null && j < mm.Count; j++)
{
list = mm[j].Groups[0].Value;
ProvinceBase pp = new ProvinceBase();
pp.name = BaseRegex.GetStringJson(ref list, "region_name");
pp.id = BaseRegex.GetStringJson(ref list, "region_id");
pp.parent_id = BaseRegex.GetStringJson(ref list, "parent_id");
html = GetProvince(pp.id);
var mmm = BaseRegex.GetMatchRegex(ref html, @"\{(.+?)\}");
for (int k = 0; mmm != null && k < mmm.Count; k++)
{
list = mmm[k].Groups[0].Value;
ProvinceBase ppp = new ProvinceBase();
ppp.name = BaseRegex.GetStringJson(ref list, "region_name");
ppp.id = BaseRegex.GetStringJson(ref list, "region_id");
ppp.parent_id = BaseRegex.GetStringJson(ref list, "parent_id");
pp.city[ppp.name] = ppp;
}
p.city[pp.name] = pp;
}
CollectionClass.Province[p.name] = p;
}
}
#region 设置窗体圆角
/// <summary>
/// 设置窗体的Region
/// </summary>
public void SetWindowRegion()
{
//GraphicsPath FormPath;
//Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);
//FormPath = GetRoundedRectPath(rect, 6);
//this.Region = new Region(FormPath);
Work.Helper.WindowStyle.SetFormRoundRectRgn(this, 6);
}
/// <summary>
/// 绘制圆角路径
/// </summary>
/// <param name="rect"></param>
/// <param name="radius"></param>
/// <returns></returns>
private GraphicsPath GetRoundedRectPath(Rectangle rect, int radius)
{
int diameter = radius;
Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter));
GraphicsPath path = new GraphicsPath();
// 左上角
path.AddArc(arcRect, 180, 90);
// 右上角
arcRect.X = rect.Right - diameter;
path.AddArc(arcRect, 270, 90);
// 右下角
arcRect.Y = rect.Bottom - diameter;
path.AddArc(arcRect, 0, 90);
// 左下角
arcRect.X = rect.Left;
path.AddArc(arcRect, 90, 90);
path.CloseFigure();//闭合曲线
return path;
}
private void MainForm_Resize(object sender, EventArgs e)
{
SetWindowRegion();
}
#endregion
#region 自定义大小
const int WM_NCHITTEST = 0x0084;
const int HTLEFT = 10; //左边界
const int HTRIGHT = 11; //右边界
const int HTTOP = 12; //上边界
const int HTTOPLEFT = 13; //左上角
const int HTTOPRIGHT = 14; //右上角
const int HTBOTTOM = 15; //下边界
const int HTBOTTOMLEFT = 0x10; //左下角
const int HTBOTTOMRIGHT = 17; //右下角
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_NCHITTEST:
base.WndProc(ref m);
Point vPoint = new Point((int)m.LParam & 0xFFFF,
(int)m.LParam >> 16 & 0xFFFF);
vPoint = PointToClient(vPoint);
if (vPoint.X <= 5)
if (vPoint.Y <= 5)
m.Result = (IntPtr)HTTOPLEFT;
else if (vPoint.Y >= ClientSize.Height - 5)
m.Result = (IntPtr)HTBOTTOMLEFT;
else m.Result = (IntPtr)HTLEFT;
else if (vPoint.X >= ClientSize.Width - 5)
if (vPoint.Y <= 5)
m.Result = (IntPtr)HTTOPRIGHT;
else if (vPoint.Y >= ClientSize.Height - 5)
m.Result = (IntPtr)HTBOTTOMRIGHT;
else m.Result = (IntPtr)HTRIGHT;
else if (vPoint.Y <= 5)
m.Result = (IntPtr)HTTOP;
else if (vPoint.Y >= ClientSize.Height - 5)
m.Result = (IntPtr)HTBOTTOM;
break;
default:
base.WndProc(ref m);
break;
}
}
#endregion
public delegate void delegateView();
public BuyForms.BuyBrower buyBrower = new BuyForms.BuyBrower();
public BuyOrderListForm buyOrderListForm;
public SendOrderListForms sendOrderForms;
public SuccessOrderListForm successOrderListForm = new SuccessOrderListForm();
public AfterSaleOrderListForm afterSaleOrderListForm = new AfterSaleOrderListForm();
public ChromiumWebBrowser cefWebBrowser1 = null;
public OAForm oaform;
private void MainForm_Load(object sender, EventArgs e)
{
if (BaseClass.UserName == "18655555336" || BaseClass.UserName == "18968727237")
{
this.flowLayoutPanel1.Width = 660;
}
if (BaseClass.IsCloudBuyOrder)
{
//this.pnlLogin1688.Location = new Point() { X = this.pnlLogin1688.Location.X, Y = this.pnlLogin1688.Location.Y - 12 };
//this.pnlLoginTaobao.Location = new Point() { X = this.pnlLoginTaobao.Location.X, Y = this.pnlLoginTaobao.Location.Y - 6 };
//this.pnlLoginPddPifa.Visible = true;
chkUsePddPifa.Visible = true;
chkUseMultiBuyer.Visible = true;
btnSetMutliBuyer.Visible = true;
//pnlLoginTaobao.Visible = true;
//pnlLogin1688.Visible = true;
}
#if DEBUG
this.dgvShop.Columns["colSelect"].Visible = true;
#else
this.dgvShop.Columns["colSelect"].Visible = false;
#endif
lbv.Text = "V:" + BaseClass.Varsion;
lbname.Text = "账号:" + BaseClass.UserName;
dtimestartbuyorder.Value = DateTime.Now;
dtimeendbuyorder.Value = DateTime.Now.AddDays(-7);
if (BaseClass.GroupId != 3)
pnlReadOrder.Visible = false;
if (BaseClass.IsFactory)
{
btnExportExcel.Visible = lblFactoryOrder.Visible = txtFactoryExportProductId.Visible = btnFactoryOrder.Visible = true;
}
dgvShop.AddSelectorColumn("colSelect");
this.pnsku.Location = new System.Drawing.Point(48, 260);
pnlAfterSaleSelect.Location = pnlSuccessSelect.Location;
chkHasLogisticsThenSend.CheckedChanged -= chkHasLogisticsThenSend_CheckedChanged;
chkHasLogisticsThenSend.Checked = GlobalConfig.SystemSettings.IsHasLogisticsThenSend;
chkHasLogisticsThenSend.CheckedChanged += chkHasLogisticsThenSend_CheckedChanged;
chkUsePddPifa.CheckedChanged -= chkUsePddPifa_CheckedChanged;
chkUsePddPifa.Checked = GlobalConfig.SystemSettings.IsUsePddPifa;
chkUsePddPifa.CheckedChanged += chkUsePddPifa_CheckedChanged;
chkUseMultiBuyer.CheckedChanged -= chkUseMultiBuyer_CheckedChanged;
chkUseMultiBuyer.Checked = GlobalConfig.SystemSettings.IsUseMultiBuyer;
chkUseMultiBuyer.CheckedChanged += chkUseMultiBuyer_CheckedChanged;
Task.Run(() => { PddMultiBuyerForm.GetMultiBuyer(); });
SetForm.ChangeCustomJinBaoLianMengLink();
new Thread(ReflashCookies).Start();
new Thread(readerShop).Start();
RefreshTabaoAliCookies();
//物流解析
List<Work.Model.ExpressBase> expresslist = JsonConvert.DeserializeObject<List<Work.Model.ExpressBase>>(JObject.Parse(CollectionClass.ExpressJsonList)["data"].ToString().Replace("\r\n", "").Replace(" ", ""));
CollectionClass.ExpressList = expresslist;
//获取买手号
new Thread(GetServiceBuyUsers).Start();
#region 浏览器加载(废弃)
//string targetUrl = "https://www.taobao.com/tbhome/page/market-list";
//cefWebBrowser1 = new ChromiumWebBrowser(targetUrl);
//cefWebBrowser1.Location = new Point(1, 1);
//cefWebBrowser1.Size = new Size(1, 1);
//cefWebBrowser1.RegisterJsObject("bound", new BoundObject(), BindingOptions.DefaultBinder);
//cefWebBrowser1.Dock = DockStyle.None;
//splitMain.Panel2.Controls.Add(cefWebBrowser1);
#endregion
pnlMenu_Click(pnlWaitingDeliverGoods, null);
pnlMenu_Click(pnlWaitingBuyOrder, null);
DefaultTop = this.Top;
DefaultLeft = this.Left;
new Thread(buyOrderListForm.SetRows).Start();
new Thread(buyOrderListForm.dgvOrderDtailUpdate).Start();
new Thread(ReadJuLiangCef).Start();
//// 是否显示联系客服按钮
//if (FileBase.Exists("locales/ig.pak") || FileBase.Exists("locales/wl.pak"))
// lblContactSupport.Visible = false;
//else
// lblContactSupport.Visible = true;
this.chkReadFinishedRefund.CheckedChanged -= chkReadFinish_CheckedChanged;
this.chkReadFinishedRefund.Checked = ConfigHelper.LoadConfig<bool>("read_finished_refund");
AfterSaleOrderListForm.IsReadFinishedRefund = this.chkReadFinishedRefund.Checked;
this.chkReadFinishedRefund.CheckedChanged += chkReadFinish_CheckedChanged;
}
void readerShop()
{
Task.Run(() =>
{
GetServerShop();
});
}
private void readBuyOrder(object sender, EventArgs e)
{
if (BaseClass.GroupId != 3)
{
lbpdtime.Text = "当前登录的是子账号,请使用主账号读取订单 ";
return;
}
BaseClass.StartReadOrderSecond--;
lbpdtime.Text = string.Format("读拍单倒计时:{0}分{1}秒", BaseClass.StartReadOrderMin, BaseClass.StartReadOrderSecond > 9 ? BaseClass.StartReadOrderSecond.ToString() : "0" + BaseClass.StartReadOrderSecond);
if (BaseClass.StartReadOrderSecond == 0)
{
BaseClass.StartReadOrderSecond = 60;
if (BaseClass.StartReadOrderMin == 0)
{
//if (afterSaleOrderListForm != null)
//{
// afterSaleOrderListForm.readAfterSaleOrder();
//}
ReadOrder(2, "time");
BaseClass.StartReadOrderMin = 8;
}
BaseClass.StartReadOrderMin--;
}
}
bool zidongfahuo = false;
/// <summary>
/// 发货倒计时 自动发货
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void sendOrder(object sender, EventArgs e)
{
if (!GlobalConfig.SystemSettings.IsAutoSendOrder)
{
lbSendOrder.Text = "发货暂停,可在设置开启";
return;
}
BaseClass.sendOrderSecond--;
lbSendOrder.Text = string.Format("发货倒计时:{0}分{1}秒", BaseClass.sendOrderMin, BaseClass.sendOrderSecond > 9 ? BaseClass.sendOrderSecond.ToString() : "0" + BaseClass.sendOrderSecond);
if (BaseClass.sendOrderSecond == 0)
{
BaseClass.sendOrderSecond = 60;
if (BaseClass.sendOrderMin == 0)
{
if (zidongfahuo == false)
{
new Thread(getTrackingNumberAndAutoSendOrder).Start();
}
BaseClass.sendOrderMin = 15;
}
BaseClass.sendOrderMin--;
}
}
/// <summary>
/// 读取上家发货信息,获取成功后自动发货
/// </summary>
private void getTrackingNumberAndAutoSendOrder()
{
zidongfahuo = true;
#region 获取物流信息
for (int i = CollectionClass.orderSenderDataList.Count - 1; i >= 0; i--)
{
DouYinOrderModel item = CollectionClass.orderSenderDataList[i];
if (!string.IsNullOrEmpty(item.buyer_mobile) && (item.order_status_buy == 2 || item.order_status_buy == 3 || item.order_status_buy == 5))
{
try
{
KeyValuePair<BuyNumber, UserCookies> dicbuyer = new KeyValuePair<BuyNumber, UserCookies>();
string trackingNumber = "";
string shippingName = "";
string html = "";
string buycookies = "";
string upId = string.IsNullOrEmpty(item.default_up_ids) ? item.up_product_id : item.default_up_ids;
if (item.order_id == "4861161964074866166" || item.order_id_buy.Contains("211224-049513767960947"))
{
}
// pdd订单
if (item.order_id_buy.Contains("-"))
{
// 拼多多批发订单
if (item.buyer_mobile.ToUpper().StartsWith("PDD"))
{
var url = "https://pifa.pinduoduo.com/pifa/pc/order/queryOrderDetail";
PddPifaShopInfo pddPifashop = null;
try
{
pddPifashop = GlobalConfig.LstPddPifaShop.Find(x => x.PddId == item.buyer_mobile);
}
catch (Exception) { }
if (pddPifashop == null)
{
item.send_order_error_msg = "未找到批发买手店铺信息";
//orderViewModel.experrorico = "\ue609";
}
else
{
string htmlDetail = AllBase.Helper.HttpHelper.Request_pifa_pinduoduo_com(url,
"https://pifa.pinduoduo.com", "{\"orderSn\":\"" + item.order_id_buy + "\"}", pddPifashop.CookieStr);
if (htmlDetail.Contains("\"success\":true"))
{
trackingNumber = BaseRegex.GetStringJson(ref htmlDetail, "trackingNumber"); // 物流单号
shippingName = BaseRegex.GetStringJson(ref htmlDetail, "shippingCompany"); // 物流公司名称
}
}
}
// 普通拼多多订单或者多买手拍单
else
{
dicbuyer = PddBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.uid == item.buyer_mobile_uid);
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
{
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
}
Thread.Sleep(500);
// 多买手拍单
if (item.buyer_mobile.StartsWith("plbuy_"))
{
var multiUserCookie = GlobalConfig.LstMultiBuyer.Find(u => u.pdd_user_id == item.buyer_mobile.Replace("plbuy_", ""));
if (multiUserCookie != null)
buycookies = "PDDAccessToken=" + multiUserCookie.cookies + ";";
}
html = GetPostTaobaoHtml.UploadTaobao("https://yangkeduo.com/goods_express.html?order_sn=" + item.order_id_buy, "https://yangkeduo.com", true, buycookies);
if (html.Contains("window.rawData= null;"))
{
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + item.order_id);
sb.Append("&send_order_error_msg=买手号掉线无法自动发货");
sb.Append("&order_status_buy=5");
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
string urls = BaseClass.Build29WxObjString("order&act=update");
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
item.send_order_error_msg = "买手号掉线无法自动发货";
item.order_status_buy = 5;
sendOrderForms.SetOrderEditShowInDgvRows(item, 1);
continue;
}
if (item.send_order_error_msg == "买手号掉线无法自动发货" || item.send_order_error_msg == "买手号重新连线,上家发货后将自动发货")
{
var newErrorText = "";
if (item.send_order_error_msg == "买手号掉线无法自动发货")
newErrorText = "买手号重新连线,上家发货后将自动发货";
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + item.order_id);
sb.Append("&order_status_buy=5");
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
sb.Append("&send_order_error_msg=" + newErrorText);
string urls = BaseClass.Build29WxObjString("order&act=update");
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
item.send_order_error_msg = newErrorText;
sendOrderForms.SetOrderEditShowInDgvRows(item, 1);
}
trackingNumber = BaseRegex.GetStringJson(ref html, "trackingNumber"); // 物流单号
shippingName = BaseRegex.GetStringJson(ref html, "shippingName"); // 物流公司名称
// 多买手订单记录物流信息防止多买手掉线无法读取
if (item.buyer_mobile.StartsWith("plbuy_") && !string.IsNullOrEmpty(trackingNumber) && !string.IsNullOrEmpty(shippingName))
{
if (item.express_name != shippingName || item.express_no != trackingNumber)
{
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + item.order_id);
sb.Append("&is_update_order=0"); // 1修改状态0不修改状态
sb.Append("&express_name=" + shippingName);
sb.Append("&express_no=" + trackingNumber);
item.express_name = shippingName;
item.express_no = trackingNumber;
string urls = BaseClass.Build29WxObjString("order&act=update");
string param = UserLogin.GetSignaturex() + sb.ToString();
string htmlssss = GetHtml.PostUtf8(urls, param);
}
}
// 获取上家发货信息成功,在发货超时之前4小时以上,必须读到上家物流后再发货
if (!string.IsNullOrEmpty(trackingNumber) && GlobalConfig.SystemSettings.IsHasLogisticsThenSend && item.create_time.ParseToDateTime().AddHours(44) > DateTime.Now)
{
if (!html.Contains("已揽件") && !html.Contains("已收寄"))
{
continue;
}
}
}
}
// 阿里订单
else if (upId.StartsWith("al-") || upId.StartsWith("1688-"))
{
if (ALBuyUser.buyUserCookies.Count > 0)
{
dicbuyer = ALBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.uid == item.buyer_mobile_uid);
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
{
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
}
}
string url = "https://trade.1688.com/order/new_step_order_detail.htm?orderId=" + item.order_id_buy + "&tracelog=20120313bscentertologisticsbuyer&";
string refere = "https://trade.1688.com/order/buyer_order_list.htm?tracelog=work_2_m_buyList";
html = GetPostTaobaoHtml.UploadTaobao(url, refere, false, buycookies);
if (html.Contains("登录页面") || html.Contains("命令参数不对"))
{
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + item.order_id);
sb.Append("&send_order_error_msg=买手号掉线无法自动发货");
sb.Append("&order_status_buy=5");
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
item.order_status_buy = 0;
string urls = BaseClass.Build29WxObjString("order&act=update");
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
item.send_order_error_msg = "买手号掉线无法自动发货";
item.order_status_buy = 5;
sendOrderForms.SetOrderEditShowInDgvRows(item, 1);
continue;
}
trackingNumber = BaseRegex.GetMatchRegexString(ref html, "data-billno=\"([^<]+?)\"");
shippingName = BaseRegex.GetMatchRegexString(ref html, "data-companyName=\"([^<]+?)\"");
string cpCode = BaseRegex.GetMatchRegexString(ref html, "data-companyno=\"([^<]+?)\"");
// 获取上家发货信息成功,在发货超时之前4小时以上,必须读到上家物流后再发货
if (!string.IsNullOrEmpty(trackingNumber) && GlobalConfig.SystemSettings.IsHasLogisticsThenSend && item.create_time.ParseToDateTime().AddHours(44) > DateTime.Now)
{
string ranStr = "1720";
for (int r = 0; r < 18; r++)
{
ranStr += Randomx.GetId(0, 10).ToString();
}
url = "https://wuliu.1688.com/order/ajax/logistics_trace_ajax.jsx?_input_charset=UTF-8" +
"&callback=jQuery" + ranStr + "_" + BaseClass.ConvertDateTimeLong(DateTime.Now) +
"&tradeId=" + item.order_id_buy + "&mailNo=" + trackingNumber + "&cpCode=" + cpCode + "&viewType=buyer";
refere = "https://trade.1688.com/order/new_step_order_detail.htm?orderId=" + item.order_id_buy + "&tracelog=20120313bscentertologisticsbuyer&";
html = GetPostTaobaoHtml.UploadTaobao(url, refere, false, buycookies);
if (!html.Contains("已揽件") && !html.Contains("已收寄"))
{
continue;
}
}
}
// 淘宝订单
else
{
if (TaoBaoBuyUser.buyUserCookies.Count > 0)
{
dicbuyer = TaoBaoBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.uid == item.buyer_mobile_uid);
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
{
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
}
}
string url = "https://buyertrade.taobao.com/trade/detail/trade_item_detail.htm?bizOrderId=" + item.order_id_buy;
string refere = "https://trade.1688.com/order/buyer_order_list.htm?tracelog=work_2_m_buyList";
refere = "";
html = GetPostTaobaoHtml.UploadTaobao(url, refere, false, buycookies);
if (html.Contains("登录页面"))
{
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + item.order_id);
sb.Append("&send_order_error_msg=买手号掉线无法自动发货");
sb.Append("&order_status_buy=5");
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
item.order_status_buy = 0;
string urls = BaseClass.Build29WxObjString("order&act=update");
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
item.send_order_error_msg = "买手号掉线无法自动发货";
item.order_status_buy = 5;
sendOrderForms.SetOrderEditShowInDgvRows(item, 1);
continue;
}
shippingName = BaseRegex.GetStringJson(ref html, "companyName");
if (string.IsNullOrEmpty(shippingName))
shippingName = BaseRegex.GetMatchRegexString(ref html, "\\\\\"logisticsName\\\\\":\\\\\"([\\s\\S]+?)\\\\\"");
trackingNumber = BaseRegex.GetStringJson(ref html, "mailNo");
if (string.IsNullOrEmpty(trackingNumber))
trackingNumber = BaseRegex.GetMatchRegexString(ref html, "\\\\\"logisticsNum\\\\\":\\\\\"([\\s\\S]+?)\\\\\"");
bool isReadWuliu = false;
if (string.IsNullOrEmpty(shippingName) || string.IsNullOrEmpty(trackingNumber))
{
long ti = AllBase.BaseClass.ConvertDateTimeLong(DateTime.Now);
long ti2 = ti + Randomx.GetId(1, 3);
//url = "https://detail.i56.taobao.com/trace/trace_detail.htm?tId=" + item.order_id_buy + "&userId=44051536";
url = "https://detail.i56.taobao.com/call/queryTrace.do?t=" + ti + "&_ksTS=" + ti2 + "_13&callback=jsonp14&dimension=TRADE_ID&tradeId=" + item.order_id_buy;
refere = "https://trade.taobao.com/";
html = GetPostTaobaoHtml.UploadTaobao(url, refere, false, buycookies);
shippingName = BaseRegex.GetStringJson(ref html, "cpName");
trackingNumber = BaseRegex.GetStringJson(ref html, "mailNo");
isReadWuliu = true;
}
// 获取上家发货信息成功,在发货超时之前4小时以上,必须读到上家物流后再发货
if (!string.IsNullOrEmpty(trackingNumber) && GlobalConfig.SystemSettings.IsHasLogisticsThenSend && item.create_time.ParseToDateTime().AddHours(44) > DateTime.Now)
{
if (!isReadWuliu)
{
long ti = AllBase.BaseClass.ConvertDateTimeLong(DateTime.Now);
long ti2 = ti + Randomx.GetId(1, 3);
//url = "https://detail.i56.taobao.com/trace/trace_detail.htm?tId=" + item.order_id_buy + "&userId=44051536";
url = "https://detail.i56.taobao.com/call/queryTrace.do?t=" + ti + "&_ksTS=" + ti2 + "_13&callback=jsonp14&dimension=TRADE_ID&tradeId=" + item.order_id_buy;
refere = "https://trade.taobao.com/";
html = GetPostTaobaoHtml.UploadTaobao(url, refere, false, buycookies);
}
if (!html.Contains("已揽件") && !html.Contains("已收寄"))
{
continue;
}
}
}
if (!string.IsNullOrEmpty(trackingNumber))
{
List<Work.Model.ExpressBase> expressbaselist = CollectionClass.ExpressList.FindAll(x => x.name.Contains(shippingName.Substring(0, 2)));
foreach (Work.Model.ExpressBase expressbase in expressbaselist)
{
Dictionary<string, string> dic = new Dictionary<string, string>() { };
dic.Add("order_id", item.order_id);
dic.Add("company", expressbase.name); // 物流公司名称
dic.Add("company_code", expressbase.code); // 物流公司code
dic.Add("logistics_code", trackingNumber); // 快递单号
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(v => v.ShopId == item.shop_id.ToString());
DouyinApi apix = new DouyinApi(shop);
apix.JsonData = dic;
html = apix.OrderLogisticsAdd();
if (html.ToLower().Contains("success") || html.Contains("订单已发货,不能再次执行发货"))
{
string buyusername = "";
string buyuserid = "";
if (dicbuyer.Value != null)
{
buyusername = dicbuyer.Key.name;
buyuserid = dicbuyer.Value.uid;
}
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + item.order_id);
sb.Append("&express_name=" + expressbase.name); // 0已完成 1待拍单 2等待上家发货
sb.Append("&express_no=" + trackingNumber);
sb.Append("&order_status_buy=0");
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
item.express_name = expressbase.name;
item.express_no = trackingNumber;
//CollectionClass.orderSenderDataList.RemoveAll(x => x.order_id == item.order_id);
string url = BaseClass.Build29WxObjString("order&act=update");
string param = UserLogin.GetSignaturex() + sb.ToString();
string htmlsss = GetHtml.PostUtf8(url, param);
CollectionClass.orderSenderDataList.Remove(item);
sendOrderForms.SetOrderEditShowInDgvRows(item, 2);
break;
}
}
if (JObject.Parse(html)["code"]?.ToString() != "10000")
{
// 检查买手是否退款 211008-514808934040947
bool isreturn = new AutoConfirmExpress(buycookies).isReturnProduct(item.order_id_buy, buycookies);
if (isreturn)
{
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + item.order_id);
sb.Append("&order_status_buy=0");
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
item.express_name = shippingName;
item.express_no = trackingNumber;
item.send_order_error_msg = JObject.Parse(html)["sub_msg"].ToString();
item.order_status_buy = 0;
string urls = BaseClass.Build29WxObjString("order&act=update");
string param = UserLogin.GetSignaturex() + sb.ToString();
string htmlssss = GetHtml.PostUtf8(urls, param);
sendOrderForms.SetOrderEditShowInDgvRows(item, 2);
}
else
{
// 自动发货失败
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + item.order_id);
sb.Append("&express_name=" + shippingName); // 0已完成 1待拍单 2等待上家发货
sb.Append("&express_no=" + trackingNumber);
sb.Append("&order_status_buy=5");
sb.Append("&send_order_error_msg=" + JObject.Parse(html)["sub_msg"].ToString());
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
item.express_name = shippingName;
item.express_no = trackingNumber;
item.send_order_error_msg = JObject.Parse(html)["sub_msg"].ToString();
item.order_status_buy = 5;
string urls = BaseClass.Build29WxObjString("order&act=update");
string param = UserLogin.GetSignaturex() + sb.ToString();
string htmlssss = GetHtml.PostUtf8(urls, param);
sendOrderForms.SetOrderEditShowInDgvRows(item, 1);
}
}
}
else
{
// 是否退款
bool isreturn = new AutoConfirmExpress(buycookies).isReturnProduct(item.order_id_buy, buycookies);
if (isreturn)
{
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + item.order_id);
sb.Append("&order_status_buy=0");
sb.Append("&is_update_order=1");//1修改状态0不修改状态
item.order_status_buy = 0;
string urls = BaseClass.Build29WxObjString("order&act=update");
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
sendOrderForms.SetOrderEditShowInDgvRows(item, 2);
}
}
}
catch (Exception ex)
{
}
}
}
#endregion
zidongfahuo = false;
}
/// <summary>
/// 手动发货
/// </summary>
/// <param name="orderid">订单ID</param>
/// <param name="type">1待拍单直接发货 2待发货直接发货</param>
public void logisticsAddOrder(string orderid, int type, string expname, string expno)
{
string html = "";
DouYinOrderModel ordermodel = null;
if (type == 1)
{
ordermodel = CollectionClass.orderDataList.Find(x => x.order_id == orderid);
}
else if (type == 2)
{
ordermodel = CollectionClass.orderSenderDataList.Find(x => x.order_id == orderid);
}
if (ordermodel == null)
{
return;
}
if (string.IsNullOrEmpty(expname) || string.IsNullOrEmpty(expno))
{
MessageBox.Show("物流信息不正确,请编辑修改物流信息。");
return;
}
if (ordermodel.order_status_buy != 2 && ordermodel.order_status_buy != 3 && ordermodel.order_status_buy != 5)
{
MessageBox.Show("此订单状态无法发货。");
return;
}
var dicbuyer = PddBuyUser.buyUserCookies.FirstOrDefault(x => x.Value.uid == ordermodel.buyer_mobile_uid);
string buycookies = "";
for (int kk = 0; dicbuyer.Key != null && kk < dicbuyer.Value.Cookies.Count; kk++)
{
buycookies += dicbuyer.Value.Cookies[kk].Name + "=" + dicbuyer.Value.Cookies[kk].Value + "; ";
}
List<Work.Model.ExpressBase> expressbaselist = CollectionClass.ExpressList.FindAll(x => x.name == expname);
if (expressbaselist.Count == 0)
{
BaseMsgForm.ShowInfo("无此物流公司", "提示");
return;
}
foreach (Work.Model.ExpressBase expressbase in expressbaselist)
{
Dictionary<string, string> dic = new Dictionary<string, string>() { };
dic.Add("order_id", ordermodel.order_id);
dic.Add("company", expname);//物流公司名称
dic.Add("company_code", expressbase.code);//物流公司code
dic.Add("logistics_code", expno);//快递单号
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(v => v.ShopId == ordermodel.shop_id.ToString());
DouyinApi apix = new DouyinApi(shop);
apix.JsonData = dic;
html = apix.OrderLogisticsAdd();
if (html.ToLower().Contains("success"))
{
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + ordermodel.order_id);
sb.Append("&express_name=" + expname);
sb.Append("&express_no=" + expno);
sb.Append("&order_status_buy=0");
sb.Append("&is_update_order=1");//1修改状态0不修改状态
ordermodel.express_name = expname;
ordermodel.express_no = expno;
//CollectionClass.orderSenderDataList.RemoveAll(x => x.order_id == item.order_id);
string url = BaseClass.Build29WxObjString("order&act=update");
string htmlsss = GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + sb.ToString());
if (type == 1)
{
CollectionClass.orderDataList.Remove(ordermodel);
buyOrderListForm.SetOrderEditShowInDgvRows(ordermodel, 2);
}
else if (type == 2)
{
CollectionClass.orderSenderDataList.Remove(ordermodel);
sendOrderForms.SetOrderEditShowInDgvRows(ordermodel, 2);
}
BaseMsgForm.ShowInfo("发货成功", "提示");
break;
}
}
if (JObject.Parse(html)["code"]?.ToString() != "10000")
{
//是否退款 211008-514808934040947
bool isreturn = new AutoConfirmExpress(buycookies).isReturnProduct(ordermodel.order_id_buy, buycookies);
if (isreturn) // 退款完成的订单 删除修改为已完成
{
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + ordermodel.order_id);
sb.Append("&order_status_buy=0");
sb.Append("&express_name=" + expname);
sb.Append("&express_no=" + expno);
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
ordermodel.send_order_error_msg = JObject.Parse(html)["sub_msg"].ToString();
ordermodel.order_status_buy = 0;
ordermodel.express_name = expname;
ordermodel.express_no = expno;
string urls = BaseClass.Build29WxObjString("order&act=update");
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
if (type == 1)
{
CollectionClass.orderDataList.Remove(ordermodel);
buyOrderListForm.SetOrderEditShowInDgvRows(ordermodel, 2);
}
else if (type == 2)
{
CollectionClass.orderSenderDataList.Remove(ordermodel);
sendOrderForms.SetOrderEditShowInDgvRows(ordermodel, 2);
}
BaseMsgForm.ShowInfo("退款订单无法发货", "提示");
}
else
{
//自动发货失败
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + ordermodel.order_id);
sb.Append("&order_status_buy=5");
sb.Append("&express_name=" + expname);
sb.Append("&express_no=" + expno);
sb.Append("&send_order_error_msg=" + JObject.Parse(html)["sub_msg"].ToString());
sb.Append("&is_update_order=1");//1修改状态0不修改状态
ordermodel.send_order_error_msg = JObject.Parse(html)["sub_msg"].ToString();
ordermodel.order_status_buy = 5;
ordermodel.express_name = expname;
ordermodel.express_no = expno;
string urls = BaseClass.Build29WxObjString("order&act=update");
string htmlssss = GetHtml.PostUtf8(urls, UserLogin.GetSignaturex() + sb.ToString());
if (type == 1)
{
buyOrderListForm.SetOrderEditShowInDgvRows(ordermodel, 1);
}
else if (type == 2)
{
sendOrderForms.SetOrderEditShowInDgvRows(ordermodel, 1);
}
BaseMsgForm.ShowInfo("发货失败【" + ordermodel.send_order_error_msg + "】", "提示");
}
}
}
private void pnlMenu_Click(object sender, EventArgs e)
{
var obj = sender as DevComponents.DotNetBar.PanelEx;
switch (obj.Name)
{
case "pnlWaitingBuyOrder": // 待拍单
pnlAfterSaleSelect.Visible = false;
picmenu(pnlWaitingBuyOrder);
if (buyOrderListForm == null)
{
buyOrderListForm = new BuyOrderListForm();
buyOrderListForm.mainform = this;
buyOrderListForm.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小化,最大化,关闭等按钮)
buyOrderListForm.TopLevel = false; //指示子窗体非顶级窗体
buyOrderListForm.Dock = System.Windows.Forms.DockStyle.Fill;
splitMain.Panel2.Controls.Add(buyOrderListForm);//将子窗体载入panel
buyOrderListForm.Show();
}
buyOrderListForm.BringToFront();
break;
case "pnlWaitingDeliverGoods": // 待发货
pnlAfterSaleSelect.Visible = false;
picmenu(pnlWaitingDeliverGoods);
if (sendOrderForms == null)
{
sendOrderForms = new SendOrderListForms();
sendOrderForms.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小化,最大化,关闭等按钮)
sendOrderForms.TopLevel = false; //指示子窗体非顶级窗体
sendOrderForms.mainform = this;
sendOrderForms.Dock = System.Windows.Forms.DockStyle.Fill;
splitMain.Panel2.Controls.Add(sendOrderForms);//将子窗体载入panel
sendOrderForms.Show();
}
sendOrderForms.BringToFront();
break;
case "pnlSuccess": // 已完成
pnlAfterSaleSelect.Visible = false;
picmenu(pnlSuccess);
if (successOrderListForm == null)
{
successOrderListForm = new SuccessOrderListForm();
}
successOrderListForm.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小化,最大化,关闭等按钮)
successOrderListForm.TopLevel = false; //指示子窗体非顶级窗体
successOrderListForm.mainform = this;
successOrderListForm.Dock = System.Windows.Forms.DockStyle.Fill;
splitMain.Panel2.Controls.Add(successOrderListForm);//将子窗体载入panel
successOrderListForm.Show();
successOrderListForm.BringToFront();
break;
case "pnlAfterSale": // 售后
picmenu(pnlAfterSale);
if (afterSaleOrderListForm == null)
{
afterSaleOrderListForm = new AfterSaleOrderListForm();
}
afterSaleOrderListForm.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小化,最大化,关闭等按钮)
afterSaleOrderListForm.TopLevel = false; //指示子窗体非顶级窗体
afterSaleOrderListForm.mainform = this;
afterSaleOrderListForm.Dock = System.Windows.Forms.DockStyle.Fill;
splitMain.Panel2.Controls.Add(afterSaleOrderListForm);//将子窗体载入panel
afterSaleOrderListForm.Show();
afterSaleOrderListForm.BringToFront();
pnlAfterSaleSelect.Visible = true;
break;
case "pnlOrderManage": // 订单管理
picmenu(pnlOrderManage);
oaform = new OAForm();
oaform.FormBorderStyle = FormBorderStyle.None; //隐藏子窗体边框(去除最小化,最大化,关闭等按钮)
oaform.TopLevel = false; //指示子窗体非顶级窗体
oaform.Dock = DockStyle.Fill;
pnorderadmin.Controls.Add(oaform);//将子窗体载入panel
oaform.Show();
pnorderadmin.Visible = true;
pnorderadmin.BringToFront();
break;
//--------------------------------------------------------------------------------------
case "pnlClose"://关闭
if (BaseMsgForm.ShowConfirm("请问是否确认退出?", "提示", FormLevel.SMALL).DialogResult.Equals(DialogResult.OK))
{
Process.GetCurrentProcess().Kill();
}
break;
case "pnlMax"://最大化
if (this.Width == Screen.PrimaryScreen.WorkingArea.Width)
{
this.Width = 1325;
this.Height = 668;
splitMain.SplitterDistance = 107;
this.Top = DefaultTop;
this.Left = DefaultLeft;
}
else
{
// this.WindowState = FormWindowState.Maximized;
SetFormMax(this);
splitMain.SplitterDistance = 107;
}
//if (this.WindowState == FormWindowState.Maximized)
// this.WindowState = FormWindowState.Normal;
//else
// this.WindowState = FormWindowState.Maximized;
//splitMain.SplitterDistance = 105;
break;
case "pnlMin"://最小化
this.WindowState = FormWindowState.Minimized;
break;
}
}
PanelEx panelpe;
void picmenu(PanelEx pe)
{
panelpe = pe;
pnlWaitingBuyOrder.Style.BackgroundImage = Resources.x_2_0;
pnlWaitingDeliverGoods.Style.BackgroundImage = Resources.x_3_0;
pnlSuccess.Style.BackgroundImage = Resources.yiwancheng;
pnlAfterSale.Style.BackgroundImage = Resources.x_4_0;
pnlOrderManage.Style.BackgroundImage = Resources.x_6_0;
panelEx5.Text = "刷新订单";
pnlSetSendOrder.Visible = false;
pnlReadOrder.Visible = false;
pnlSuccessSelect.Visible = false;
pntimebuyorder.Visible = false;
pnorderadmin.Visible = false;
switch (pe.Name)
{
case "pnlWaitingBuyOrder":
pnlWaitingBuyOrder.Style.BackgroundImage = Resources.x_2_1;
pnlSetSendOrder.Visible = true;
pnlReadOrder.Visible = true;
if (BaseClass.GroupId != 3)
this.pnlReadOrder.Visible = false;
break;
case "pnlWaitingDeliverGoods":
//pntimebuyorder.Visible = true; 时间搜索控件暂时不用
pnlWaitingDeliverGoods.Style.BackgroundImage = Resources.x_3_1;
break;
case "pnlSuccess":
pnlSuccessSelect.Visible = true;
pnlSuccess.Style.BackgroundImage = Resources.yiwancheng1;
break;
case "pnlAfterSale":
panelEx5.Text = "读取售后";
pnlAfterSale.Style.BackgroundImage = Resources.x_4_1;
break;
case "pnlOrderManage":
pnlOrderManage.Style.BackgroundImage = Resources.x_6_1;
break;
}
}
private void btn_Click(object sender, EventArgs e)
{
var obj = sender as PanelEx;
switch (obj.Text.Replace("\r\n", "").Replace(" ", ""))
{
case "刷新店铺":
readerShop();
break;
case "读待拍单":
DateTime sTime = DateTime.Now;
this.pnlReadOrder.Text = "读单中***";
if (BaseClass.isUseSimGetOrder)
{
this.ReadOrderCef();
return;
}
//new Thread(buyOrderListForm.f5dgv).Start();
ReadOrder(2);
Task.Run(() =>
{
int times = 0;
while (isOrderReading || CollectionClass.orderDataList_Temp.Count > 0)
{
times++;
Thread.Sleep(400);
Invoke(new Action(() => { this.pnlReadOrder.Text = "读单中" + "---".Substring(0, times % 4) + "***".Substring(0, 3 - times % 4); }));
}
Invoke(new Action(() =>
{
this.pnlReadOrder.Text = "读待拍单";
TimeSpan ts = DateTime.Now.Subtract(sTime);
var min = (int)Math.Floor(ts.TotalMinutes);
var sec = (int)Math.Floor(ts.TotalSeconds) % 60;
BaseMsgForm.ShowInfo("读单完成,累计耗时:" + min + "分" + sec + "秒");
}));
});
break;
case "刷新订单":
case "读取售后":
switch (panelpe.Name)
{
case "pnlWaitingBuyOrder":
//buyOrderListForm.BuyOrderListForm_Load(null, null);
buyOrderListForm.RefreshPage();
break;
case "pnlWaitingDeliverGoods":
sendOrderForms.readData();
break;
case "pnlSuccess":
successOrderListForm.RefreshServerOrder();
break;
case "pnlAfterSale":
afterSaleOrderListForm.readAfterSaleOrder();
break;
}
break;
case "多多登录":
buyBrower.mainForm = this;
buyBrower.webtype = 1;
buyBrower.Width = 405;
buyBrower.Height = 692;
if (cbpddBuyUser.Text != "点击下拉切换" && cbpddBuyUser.SelectedItem != null)
{
BaseClass.PddUid = (cbpddBuyUser.SelectedItem as ComboboxItem).Value.ToString();
new PddBuyUser().Set(BaseClass.PddUid, "", 0);
buyBrower.webUrl = BaseClass.PddMobileUrl + "personal.html";
buyBrower.Show();
buyBrower.BuyBrower_Load(null, null);
return;
}
new PddBuyUser().Delete();
buyBrower.webUrl = BaseClass.PddMobileUrl + "personal.html";
buyBrower.Show();
buyBrower.BuyBrower_Load(null, null);
break;
case "淘宝登录":
buyBrower.mainForm = this;
buyBrower.webtype = 2;
buyBrower.Width = this.Width;
buyBrower.Height = this.Height;
if (cbtbBuyUser.Text != "点击下拉切换" && cbtbBuyUser.SelectedItem != null)
{
BaseClass.TaoBaoUid = (cbtbBuyUser.SelectedItem as ComboboxItem).Value.ToString();
new TaoBaoBuyUser().SetTaoBao(BaseClass.TaoBaoUid, 1);
//buyBrower.webUrl = "https://i.taobao.com/my_taobao.htm";
buyBrower.webUrl = "https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm";
buyBrower.Show();
buyBrower.BuyBrower_Load(null, null);
return;
}
new ALBuyUser().DeleteAL();
new TaoBaoBuyUser().DeleteTaoBao();
buyBrower.webUrl = BaseClass.TaoBaoLoginUrl;
buyBrower.Show();
buyBrower.BuyBrower_Load(null, null);
break;
case "1688登录":
new ALBuyUser().DeleteAL();
new TaoBaoBuyUser().DeleteTaoBao();
buyBrower.mainForm = this;
buyBrower.webtype = 3;
buyBrower.Width = this.Width;
buyBrower.Height = this.Height;
if (cb1688BuyUser.Text != "点击下拉切换" && cb1688BuyUser.SelectedItem != null)
{
BaseClass.ALUid = (cb1688BuyUser.SelectedItem as ComboboxItem).Value.ToString();
new ALBuyUser().SetAL(BaseClass.ALUid, 3);
buyBrower.webUrl = "https://work.1688.com/home/buyer.htm?_path_=buyer2017Base/2017buyerbase_trade/buyList&spm=a262jm.9273823.wkalibar.d8.5d884aadnN1j9G";
buyBrower.Show();
buyBrower.BuyBrower_Load(null, null);
return;
}
buyBrower.webUrl = "https://work.1688.com/home/buyer.htm?_path_=buyer2017Base/2017buyerbase_trade/buyList&spm=a262jm.9273823.wkalibar.d8.5d884aadnN1j9G";
buyBrower.Show();
buyBrower.BuyBrower_Load(null, null);
break;
case "订单查询":
var controls = splitMain.Panel2.Controls.Cast<Control>().ToList();
for (int i = 0; i < controls.Count; i++)
{
if (controls[i] is Form)
{
if (controls[i] == buyOrderListForm)
{
// 刷新并从服务端获取要搜索的数据
buyOrderListForm.RefreshPage(1);
return;
}
if (controls[i] == sendOrderForms)
break;
}
}
txtSearch.Text = txtSearch.Text.Replace(" ", "");
bool sendorder = sendOrderForms?.SelectOrder(txtSearch.Text) == true;
bool successorder = successOrderListForm?.SelectOrder(txtSearch.Text) == true;
bool afterSaleOrder = afterSaleOrderListForm?.SelectOrder(txtSearch.Text) == true;
//if (sendorder)
//{
// pnlMenu_Click(pnlWaitingDeliverGoods, null);
//}
//if (successorder)
//{
// pnlMenu_Click(pnlSuccess, null);
//}
//if (afterSaleOrder)
//{
// pnlMenu_Click(pnlAfterSale, null);
//}
break;
}
}
#region cef模拟订单
void ReadOrderCef()
{
Task.Run(() =>
{
foreach (ShopLoginInfo shop in GlobalConfig.ShopLoginList)
{
string url = "https://fxg.jinritemai.com/ffa/morder/order/list";
if (shop.LoginStatus == "登录成功")
{
Invoke(new Action(() =>
{
isCefLoad = false;
currentCefReadOrderPage = 0;
if (cefWebBrowser == null)
{
cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(url, false);
Helper.CustomResourceRequestHandler resourceRequestHandler = new Helper.CustomResourceRequestHandler();
resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete;
cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
cefWebBrowser.KeyboardHandler = new KeyboardHandler();
cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged;
cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd;
cefWebBrowser.Dock = DockStyle.Fill;
var t = CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefWebBrowser.RequestContext.GetCookieManager(null));
splitMain.Panel2.Controls.Add(cefWebBrowser);
cefWebBrowser.SendToBack();
//cefWebBrowser.BringToFront();
}
else
{
CEFBrowser.DeleteCookie(cefWebBrowser.RequestContext.GetCookieManager(null));
CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefWebBrowser.RequestContext.GetCookieManager(null));
cefWebBrowser.Load(url);
}
}));
for (int i = 0; i < 100; i++)
{
Thread.Sleep(500);
if (isCefLoad)
{
Thread.Sleep(Randomx.GetId(8000, 9000));
//var jsStr = "document.getElementsByClassName('auxo-select-item-option')[3].click()";
//jsStr = "function scrollWindow() { var t = document.body.clientHeight; window.scroll({ top: t, left: 0, behavior: 'smooth'});} scrollWindow();";
// 关闭提示框
var jsStr = "function closeMask() {\r\n"
+ "var box = document.getElementsByClassName('ant-modal-close-x')[0];"
+ "if (box) box.click();"
+ "}\r\n"
+ "closeMask();\r\n";
var response = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
response.Wait(1000);
Thread.Sleep(Randomx.GetId(1500, 2000));
jsStr = "function closeGuide() {\r\n"
+ " var box = document.getElementsByClassName('y-guide')[0];\r\n"
+ " if (box) {\r\n"
+ " while(box) {box.remove(); box = document.getElementsByClassName('y-guide')[0];}\r\n"
+ " }\r\n"
+ "}\r\n"
+ "closeGuide();\r\n";
var response2 = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(jsStr);
response2.Wait(1000);
Thread.Sleep(Randomx.GetId(1500, 2000));
jsStr = "function scrollWindow() { var t = document.body.scrollHeight; window.scroll({ top: t, left: 0, behavior: 'smooth'});} scrollWindow();";
//cefWebBrowser.GetMainFrame().ExecuteJavaScriptAsync("window.scrollTo(0, document.body.scrollHeight);");
cefWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(jsStr);
Thread.Sleep(Randomx.GetId(1500, 2000));
ClickPageSelect();
break;
}
}
int time = 0;
while (true)
{
Thread.Sleep(1000);
time += 1;
if (currentCefReadOrderPage >= 999)
break;
if (time >= 60 && currentCefReadOrderPage == 0)
break;
}
}
}
});
}
List<string> addressOrderIdList = new List<string>();
/// <summary>
/// Cef模拟获取订单隐私信息
/// </summary>
/// <param name="shop"></param>
/// <param name="order"></param>
public void GetRealAddressSim(ShopLoginInfo shop, DouYinOrderModel order)
{
addressOrderIdList.Remove(order.order_id);
var url = "https://fxg.jinritemai.com/ffa/morder/order/detail?id=" + order.order_id;
if (shop.LoginStatus == "登录成功")
{
Invoke(new Action(() =>
{
isCefLoad = false;
currentCefReadOrderPage = 0;
if (cefWebBrowser == null)
{
cefWebBrowser = CEFBrowser.CreateChromiumWebBrowser(url, false);
Helper.CustomResourceRequestHandler resourceRequestHandler = new Helper.CustomResourceRequestHandler();
resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete;
cefWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
cefWebBrowser.KeyboardHandler = new KeyboardHandler();
cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged;
cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd;
cefWebBrowser.Dock = DockStyle.Fill;
var t = CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefWebBrowser.RequestContext.GetCookieManager(null));
splitMain.Panel2.Controls.Add(cefWebBrowser);
cefWebBrowser.SendToBack();
//cefWebBrowser.BringToFront();
}
else
{
CEFBrowser.DeleteCookie(cefWebBrowser.RequestContext.GetCookieManager(null));
CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefWebBrowser.RequestContext.GetCookieManager(null));
cefWebBrowser.Load(url);
cefWebBrowser.SendToBack();
//cefWebBrowser.BringToFront();
}
}));
bool isGet = false;
for (int i = 0; i < 100; i++)
{
Thread.Sleep(5000);
if (isCefLoad)
{
Thread.Sleep(Randomx.GetId(2000, 3000));
if (addressOrderIdList.Any(o => o == order.order_id))
{
Invoke(new Action(() =>
{
cefWebBrowser.SendToBack();
}));
break;
}
var verify_str = "function getImg() { return document.getElementById('captcha-verify-image').src; } getImg();";
var response = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(verify_str);
response.Wait();
if (!string.IsNullOrEmpty(response.Result.Result?.ToString()))
{
Invoke(new Action(() => { cefWebBrowser.BringToFront(); }));
#region 获取滑动验证码
{
var imgUrl = response.Result.Result.ToString();
Bitmap bt = (Bitmap)GetHtml.LoadImage(imgUrl);
if (bt != null)
{
int Stopxt = 0;
int dragButtonWidth = 53;
//Stopxt = new Base64ChangeImgUrl().CalculateNick(bt, dragButtonWidth);
Thread.Sleep(500 + Randomx.GetId(1000));
Stopxt = new Base64ChangeImgUrl().CalculateNickNew(bt, dragButtonWidth);
if (Stopxt > 0)
{
verify_str = "function getPos() { var box = document.getElementsByClassName('secsdk-captcha-drag-icon sc-kEYyzF fiQtnm')[0];" +
"if (box == null) return '0|0';" +
"var actualLeft = box.offsetLeft;" +
"var actualTop = box.offsetTop;" +
"var parent = box.offsetParent;" +
"while (parent !== null) { actualLeft += parent.offsetLeft; actualTop += parent.offsetTop; parent = parent.offsetParent; }" +
"return '' + actualLeft + '|' + actualTop;}" +
"getPos();";
verify_str = "function getImgPos() { return document.getElementsByClassName('secsdk-captcha-drag-icon sc-kEYyzF fiQtnm')[0].getBoundingClientRect().left + '|' "
+ " + document.getElementsByClassName('secsdk-captcha-drag-icon sc-kEYyzF fiQtnm')[0].getBoundingClientRect().top;} getImgPos();";
response = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(verify_str);
response.Wait(2000);
if (response.Result?.Result != null)
{
var xy = response.Result?.Result.ToString();
var xyArr = xy.Split('|');
if (xyArr.Length == 2)
{
try
{
int x = (int)Convert.ToDecimal(xyArr[0]) + 25;
int y = (int)Convert.ToDecimal(xyArr[1]) + 25;
// 自动滑块图形验证
//if (GlobalConfig.JDShopSettingParam.IsAutoDragLogin)
{
// 340 / 552
CEFHelper.CefMouseDrag(cefWebBrowser, x, y, Convert.ToInt32((x + Stopxt * 0.6159m) - 5), y);
isGet = false;
Thread.Sleep(1000 + Randomx.GetId(1000));
}
}
catch
{
}
}
}
Thread.Sleep(1000 + Randomx.GetId(1000));
}
}
}
Thread.Sleep(1500 + Randomx.GetId(1000));
#endregion
}
else
Invoke(new Action(() =>
{
cefWebBrowser.SendToBack();
}));
if (isGet)
continue;
//var child = document.body.firstElementChild;
//var element1 = null;
//while (child)
//{
// if (child.innerHTML.indexOf('显示详情') >= 0)
// {
// element1 = child;
// if (child.firstElementChild)
// {
// child = child.firstElementChild;
// continue;
// }
// else
// {
// break;
// }
// }
// child = child.nextElementSibling;
//}
//console.log(element1);
//element1.click();
// 点击调用解密
var jsStr = "function clickShowAddress() {\r\n"
+ "var child = document.body.firstElementChild;\r\n"
+ "var element1 = null;\r\n"
+ " while (child) {\r\n"
+ " if (child.innerHTML.indexOf('显示详情') >= 0) {\r\n"
+ " element1 = child;\r\n"
+ " if (child.firstElementChild) {\r\n"
+ " child = child.firstElementChild; continue;\r\n"
+ " } else break;\r\n"
+ " }\r\n"
+ " child = child.nextElementSibling;\r\n"
+ " }\r\n"
+ " if (element1) {\r\n"
+ " element1.click(); return 'success';\r\n"
+ " } else return 'no_detail';\r\n"
+ "}\r\n"
+ "clickShowAddress();\r\n";
var t = cefWebBrowser.GetMainFrame().EvaluateScriptAsync(jsStr);
t.Wait();
//if (t.Result.Result?.ToString() == "success" || t.Result.Result?.ToString() == "no_detail" )
isGet = true;
}
}
}
}
private void ClickPageSelect()
{
string code = "function getPos() { var box = document.getElementsByClassName('auxo-pagination-options-size-changer')[0];"
+ " if (box == null) return '0|0';"
+ " var pos = box.getBoundingClientRect();"
+ " return '' + pos.left + '|' + pos.top;"
+ "}"
+ "getPos();";
var task = cefWebBrowser.GetBrowser().MainFrame.EvaluateScriptAsync(code);
task.Wait(5000);
var result = task.Result.Result;
if (result != null && result.ToString() != "0|0")
{
var arr = result.ToString().Split('|');
if (arr.Length == 2)
{
int x = (int)arr[0].ParseToDecimal();
int y = (int)arr[1].ParseToDecimal();
int x1 = x + 10 + new Random(DateTime.Now.Millisecond).Next(50);
int y1 = y + 10 + new Random(DateTime.Now.Millisecond).Next(10);
var host = cefWebBrowser.GetBrowser().GetHost();
//host.SendFocusEvent(true);
host.SendMouseClickEvent(x1, y1, MouseButtonType.Left, false, 1, CefEventFlags.None); // 按下鼠标左键
Thread.Sleep(70 + new Random(DateTime.Now.Millisecond).Next(50));
host.SendMouseClickEvent(x1, y1, MouseButtonType.Left, true, 1, CefEventFlags.None); // 松开鼠标左键
Thread.Sleep(500 + new Random(DateTime.Now.Millisecond).Next(500));
}
}
Thread.Sleep(Randomx.GetId(1000, 3000));
var jsStr = "document.getElementsByClassName('auxo-select-item-option')[1].click()";
cefWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(jsStr);
}
private void CefWebBrowser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
{
isCefLoad = true;
}
private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData)
{
if (responseData.Contains("post_receiver"))
{
}
//https://mcs.snssdk.com/v1/list [{"events":[{"event":"auto_click","params":"{\"_staging_flag\":0,\"future\":\"shangjia\",\"shop_id\":\"20445141\",\"is_cross_border\":0,\"biz_type\":4,\"shop_name\":\"优选百货厂家\",\"common_shop_type\":0,\"toutiao_id\":\"106022019533566\",\"v_type\":41,\"total_reduce\":-52500,\"quit_status\":0,\"store_type\":0,\"sub_toutiao_id\":\"\",\"release\":\"4d20a8de4a\",\"smallflow\":[],\"is_login\":1,\"sub_app_id\":\"morder\",\"user_agent\":\"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36\",\"version\":\"1.0.0.5409\",\"canary\":\"0\",\"slardar_session_id\":\"e6295f0e-fa20-4218-ab8f-1d02d35bd818\",\"pid\":\"/ffa/morder/order/detail\",\"path\":\"/ffa/morder/order/detail\",\"url\":\"https://fxg.jinritemai.com/ffa/morder/order/detail?id=4851912086293436335\",\"page_name\":\"订单详情\",\"event_name\":\"auto_dom\",\"type\":\"click\",\"data\":{},\"containers\":[\"内容区域\"],\"mouse_x\":1201,\"mouse_y\":564,\"viewport_width\":1319,\"viewport_height\":485,\"text\":\"view\",\"tagName\":\"SPAN\",\"session\":{},\"event_index\":1633777345067}","local_time_ms":1633776441924,"is_bav":1,"ab_sdk_version":"","session_id":"4b5fdfa5-0c71-44c5-8037-d73711bbc02b"}],"user":{"user_unique_id":"106022019533566","web_id":"7017016174879229477","ssid":"2d661692-709c-4846-a647-f6165f2618e1"},"header":{"app_id":1215,"os_name":"windows","os_version":"10","device_model":"Windows NT 10.0","language":"zh-CN","platform":"web","sdk_version":"4.1.41","timezone":8,"tz_offset":-28800,"resolution":"1920x1080","browser":"Chrome","browser_version":"72.0.3626.121","referrer":"","referrer_host":"","width":1920,"height":1080,"screen_width":1920,"screen_height":1080,"custom":"{\"token\":\"doudian_web\",\"cdid\":\"20445141\"}"},"local_time":1633776441}]
//https://fxg.jinritemai.com/api/order/receiveinfo?come_from=pc&aid=4272&order_id=4851912086293436335&appid=1&__token=8e78e1c73557ba7a579c9fd00b130542&_bid=ffa_order&_lid=764419278836&_signature=_02B4Z6wo00901yIp5nAAAIDA6pUvbnenSIciLeLAAKn1g1DamF6p9muTMTFh1GmDf5Dhij.ExzrHMLBIwFbmyJuRTRjsY2g8Bj5yy6eKLqun0pW74HZtygbWDCtFpmPDHu4Z7nmgcnjNvstLff {"errno":0,"st":0,"msg":"","code":0,"data":{"verify_type":"","verify_params":null,"is_send":0,"receive_info":{"post_receiver":"董雨朦","post_tel":"18761791742","post_addr":{"province":{"name":"江苏省","id":"320000","has_child":false},"city":{"name":"南通市","id":"320600","has_child":false},"town":{"name":"南通经济技术开发区","id":"320671","has_child":false},"street":{"name":"","id":"","has_child":false},"detail":"小海海棠花园13栋405室"},"buyer_words":"","can_view":2,"is_show_edit_address":true},"pre_receive_info":null,"nick_name":"萌萌朦朦"},"page":0,"total":0,"size":0}
// 模拟解密获取到网页中传过来的数值
if (url.StartsWith("https://fxg.jinritemai.com/api/order/receiveinfo") && url.Contains("order_id=") && responseData.Contains("\"verify_type\":\"\""))
{
try
{
var orderId = BaseRegex.GetMatchRegexString(ref url, "order_id=(\\d{8,26})"); // url.Substring(url.IndexOf(("order_id=")));
addressOrderIdList.Add(orderId);
var orderFrom = "sendOrder";
DouYinOrderModel douYinOrderModel = CollectionClass.orderSenderDataList.Find(x => x.order_id == orderId);
if (douYinOrderModel == null)
{
orderFrom = "buyOrder";
douYinOrderModel = CollectionClass.orderDataList.Find(x => x.order_id == orderId);
}
if (douYinOrderModel == null)
return;
string expname = BaseRegex.GetStringJson(ref responseData, "post_receiver");
string expmobile = BaseRegex.GetStringJson(ref responseData, "post_tel");
var jObj = JObject.Parse(responseData);
string province = jObj["data"]["receive_info"]["post_addr"]["province"]["name"].ToString(); // 省
string city = jObj["data"]["receive_info"]["post_addr"]["city"]["name"].ToString(); // 市
string town = jObj["data"]["receive_info"]["post_addr"]["town"]["name"].ToString(); // 区
string street = jObj["data"]["receive_info"]["post_addr"]["street"]["name"].ToString(); // 街道
string detailAddress = jObj["data"]["receive_info"]["post_addr"]["detail"].ToString(); // 详细地址
var expaddress = province + city + town + street + detailAddress;
douYinOrderModel.name = expname;
douYinOrderModel.mobile = expmobile;
douYinOrderModel.address = expaddress;
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + douYinOrderModel.order_id);
sb.Append("&name=" + GetHtml.UrlEncodeUtf8(expname));
sb.Append("&mobile=" + GetHtml.UrlEncodeUtf8(expmobile));
sb.Append("&address=" + GetHtml.UrlEncodeUtf8(expaddress));
if (!string.IsNullOrEmpty(expmobile))
{
sb.Append("&decrypt_status=1");
}
sb.Append("&is_update_order=0");//1修改状态0不修改状态
string updateUrl = BaseClass.Build29WxObjString("order&act=update");
string htmjg = GetHtml.PostUtf8(updateUrl, UserLogin.GetSignaturex() + sb.ToString());
if (orderFrom == "sendOrder")
sendOrderForms.SetOrderEditShowInDgvRows(douYinOrderModel, 1);
else
buyOrderListForm.SetOrderEditShowInDgvRows(douYinOrderModel, 1);
buyOrderListForm.decyes();
}
catch { };
}
// 模拟读取订单
if (url.StartsWith("https://fxg.jinritemai.com/api/order/searchlist?tab="))
{
if (url.Contains("pageSize=20&"))
{
Task.Run(() =>
{
var _url = url;
var post_data = postData;
var response_data = responseData;
var cookie = CEFBrowser.GetCookie("", cefWebBrowser.GetCookieManager());
var passport_csrf_token = BaseRegex.GetMatchRegexString(ref cookie, "passport_csrf_token=([\\s\\S]+?);");
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.Cookies.Contains(passport_csrf_token));
if (shop != null && response_data.Contains("\"st\":0") && response_data.Contains("\"data\":"))
{
JObject jObj = JObject.Parse(response_data);
int page = jObj["page"].ParseToInt();
int total = jObj["total"].ParseToInt();
currentCefReadOrderPage = page + 1;
foreach (JObject jOrderObj in jObj["data"])
{
if (jOrderObj["order_status_info"]["order_status_text"].ToString() != "备货中")
{
break;
}
DouYinOrderModel dyOrder = new DouYinOrderModel();
DouOrderListInfo.Shop_order_listItem orderListItem = new DouOrderListInfo.Shop_order_listItem();
orderListItem.order_id = jOrderObj["shop_order_id"].ToString();
orderListItem.shop_id = shop.ShopId.ParseToInt();
orderListItem.shop_name = shop.ShopAccount;
orderListItem.post_tel = jOrderObj["receiver_info"]["post_tel"].ToString();
orderListItem.productName = jOrderObj["product_item"][0]["product_name"].ToString();
orderListItem.post_receiver = jOrderObj["receiver_info"]["post_receiver"].ToString();
DouOrderListInfo.Post_addr addr = new DouOrderListInfo.Post_addr();
addr.province = new DouOrderListInfo.Province();
addr.province.name = jOrderObj["receiver_info"]["post_addr"]["province"]["name"].ToString();
addr.province.id = jOrderObj["receiver_info"]["post_addr"]["province"]["id"].ToString();
addr.city = new DouOrderListInfo.City();
addr.city.name = jOrderObj["receiver_info"]["post_addr"]["city"]["name"].ToString();
addr.city.id = jOrderObj["receiver_info"]["post_addr"]["city"]["id"].ToString();
addr.town = new DouOrderListInfo.Town();
addr.town.name = jOrderObj["receiver_info"]["post_addr"]["town"]["name"].ToString();
addr.town.id = jOrderObj["receiver_info"]["post_addr"]["town"]["id"].ToString();
addr.street = new DouOrderListInfo.Street();
addr.street.name = jOrderObj["receiver_info"]["post_addr"]["street"]["name"].ToString();
addr.street.id = jOrderObj["receiver_info"]["post_addr"]["street"]["id"].ToString();
addr.detail = jOrderObj["receiver_info"]["post_addr"]["detail"].ToString();
orderListItem.post_addr = addr;
// todo: 根据 ****response_data**** 所包含的地址信息 读取收件人 收件地址 收件手机号 和 买家昵称 买家账号 等
orderListItem.sku_order_list = new List<DouOrderListInfo.Sku_order_listItem>();
foreach (JObject jSkuObj in jOrderObj["product_item"])
{
DouOrderListInfo.Sku_order_listItem skuOrderItem = new DouOrderListInfo.Sku_order_listItem();
skuOrderItem.order_id = jSkuObj["item_order_id"].ToString();
skuOrderItem.product_id = jSkuObj["product_id"].ParseToLong();
skuOrderItem.product_name = jSkuObj["product_name"].ParseToString();
skuOrderItem.order_status = jSkuObj["order_status"].ParseToInt();
skuOrderItem.spec = new List<DouOrderListInfo.SpecItem>();
foreach (JObject jSpecObj in jSkuObj["sku_spec"])
{
DouOrderListInfo.SpecItem spec = new DouOrderListInfo.SpecItem();
spec.name = jSpecObj["name"].ToString();
spec.value = jSpecObj["value"].ToString();
skuOrderItem.spec.Add(spec);
}
skuOrderItem.product_pic = jSkuObj["img"].ParseToString();
skuOrderItem.item_num = jSkuObj["combo_num"].ParseToInt();
skuOrderItem.pay_amount = jSkuObj["combo_amount"].ParseToInt();
skuOrderItem.create_time = jOrderObj["create_time"].ParseToInt();
var cTime = new DateTime(1970, 1, 1, 8, 0, 0).AddSeconds(skuOrderItem.create_time);
if (cTime < DateTime.Now.Date.AddDays(-1) || (page + 1) * 20 >= total)
{
currentCefReadOrderPage = 999;
return;
}
if (skuOrderItem.order_status != 2)
continue;
orderListItem.sku_order_list.Add(skuOrderItem);
}
//if (!CollectionClass.orderDataList_Temp.Any(o => o.order_id == orderListItem.order_id))
CollectionClass.orderDataList_Temp.Add(orderListItem);
//Invoke(new Action(() =>
//{
// buyOrderListForm.SetRows();
//}));
}
if ((jObj["data"] as JArray).Count < 20)
currentCefReadOrderPage = 999;
else
{
Thread.Sleep(Randomx.GetId(1500, 2000));
var jsStr = "function scrollWindow() { var t = document.body.scrollHeight; window.scroll({ top: t, left: 0, behavior: 'smooth'});} scrollWindow();";
cefWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(jsStr);
Thread.Sleep(Randomx.GetId(1500, 4000));
jsStr = "document.getElementsByClassName('auxo-pagination-next')[0].click()";
cefWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(jsStr);
}
}
});
}
}
}
private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e)
{
Invoke(new Action(() =>
{
//currentUrl = e.Address;
//txtAddress.Text = e.Address;
}));
}
#endregion
#region cef模拟读巨量百应佣金率
private ChromiumWebBrowser cefJuLiangWebBrowser = null;
bool isJuLiangLoadEnd = false;
DouYinOrderModel cos_ratio_order_Model = null;
public void ReadJuLiangCef()
{
Task.Run(() =>
{
//string url = BaseClass.Build29WxObjString("user_login_cookies&act=douyin_buy_in_get");
//string htmlsss = GetHtml.PostUtf8(url, UserLogin.GetSignaturex());
//if (htmlsss != "")
//{
// if (JObject.Parse(htmlsss)["code"].ToString() == "200")
// {
// var jArrJM = JObject.Parse(htmlsss)["data"];
// foreach (var itemjm in jArrJM)
// {
// BaseClass.baiyincookies = JObject.Parse(itemjm.ToString())["cookies"].ToString();
// break;
// }
// }
//}
//if (BaseClass.baiyincookies == "")
//{
// return;
//}
string url = "https://buyin.jinritemai.com/dashboard/activity/common-plan";
Invoke(new Action(() =>
{
isCefLoad = false;
if (cefJuLiangWebBrowser == null)
{
cefJuLiangWebBrowser = CEFBrowser.CreateChromiumWebBrowser(url, false);
Helper.CustomResourceRequestHandler resourceRequestHandler = new Helper.CustomResourceRequestHandler();
resourceRequestHandler.ResourceLoadCompleteEvent += JuLiangRequestHandler_ResourceLoadComplete;
cefJuLiangWebBrowser.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
cefJuLiangWebBrowser.KeyboardHandler = new KeyboardHandler();
cefJuLiangWebBrowser.AddressChanged += CefJuLiangWebBrowser_AddressChanged;
cefJuLiangWebBrowser.FrameLoadEnd += CefJuLiangWebBrowser_FrameLoadEnd;
cefJuLiangWebBrowser.Dock = DockStyle.Fill;
var t = CEFBrowser.SetCookieAsync("jinritemai.com", BaseClass.baiyincookies, cefJuLiangWebBrowser.RequestContext.GetCookieManager(null));
splitMain.Panel2.Controls.Add(cefJuLiangWebBrowser);
cefJuLiangWebBrowser.SendToBack();
//cefJuLiangWebBrowser.BringToFront();
}
else
{
CEFBrowser.DeleteCookie(cefJuLiangWebBrowser.RequestContext.GetCookieManager(null));
Thread.Sleep(500);
var t = CEFBrowser.SetCookieAsync("jinritemai.com", BaseClass.baiyincookies, cefJuLiangWebBrowser.RequestContext.GetCookieManager(null));
t.Wait(5000);
cefJuLiangWebBrowser.Load(url);
}
}));
//Thread.Sleep(15000);
while (true)
{
Thread.Sleep(5000);
if (BaseClass.is_read_commission == 1) { continue; }
try
{
List<DouYinOrderModel> listbuyin = CollectionClass.orderDataList.FindAll(x => string.IsNullOrEmpty(x.commission_scale) || x.commission_scale == "0" || x.commission_scale == "0.00"
|| Math.Abs(Math.Round((x.commission_scale.ParseToDecimal() * x.price.ParseToDecimal()) - x.commission.ParseToDecimal(), 3)) >= 0.01M);
List<DouYinOrderModel> listsendbuyin = CollectionClass.orderSenderDataList.FindAll(x => string.IsNullOrEmpty(x.commission_scale) || x.commission_scale == "0" || x.commission_scale == "0.00"
|| Math.Abs(Math.Round((x.commission_scale.ParseToDecimal() * x.price.ParseToDecimal()) - x.commission.ParseToDecimal(), 3)) >= 0.01M);
//var lstbuyin_自卖 = CollectionClass.orderDataList.FindAll(x => x.c_biz_desc.Contains("小店自卖"));
//var lstsendbuyin_自卖 = CollectionClass.orderSenderDataList.FindAll(x => x.c_biz_desc.Contains("小店自卖"));
//需要获取佣金的订单集合
listbuyin = listbuyin.Concat(listsendbuyin).ToList();//.FindAll(l => l.c_biz_desc.Contains("小店自卖") == false);
//订单中有哪几个店铺
List<DouYinOrderModel> onelist = listbuyin.GroupBy(c => c.shop_id).Select(c => c.First()).ToList();
foreach (DouYinOrderModel getOrderShop in onelist)
{
if (BaseClass.is_read_commission == 1) { break; }
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(x => x.ShopId == getOrderShop.shop_id.ToString());
if (shop != null && !string.IsNullOrEmpty(shop.Cookies))
{
var td = CEFBrowser.DeleteCookieAsync(cefJuLiangWebBrowser.RequestContext.GetCookieManager(null));
td.Wait(5000);
var t = CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefJuLiangWebBrowser.RequestContext.GetCookieManager(null));
t.Wait(5000);
cefJuLiangWebBrowser.Load(url);
Thread.Sleep(30000);
//载入
for (int i = 0; i < listbuyin.Count; i++)
{
if (BaseClass.is_read_commission == 1) { break; }
DouYinOrderModel dymodel = listbuyin[i];
if (isJuLiangLoadEnd && dymodel != null)
{
int dian = new Random().Next(2000, 4000);
Thread.Sleep(dian);
string script = "";
// 重置搜索框
//search-form__reset-btn
script = " var cbreset = document.getElementsByClassName('search-form__reset-btn');for (var i = 0; i<cbreset.length;i++) { for(var j = 0; j<2;j++){cbreset[i].click();};};";
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
//点击下一步
script = " var guides = document.getElementsByClassName('guides__customFooter__btn');for (var i = 0; i<guides.length;i++) { for(var j = 0; j<20;j++){guides[i].click();};};";
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
script = " var cbd = document.getElementsByClassName('ant-modal-close-x');for (var i = 0; i<cbd.length;i++) { for(var j = 0; j<20;j++){cbd[i].click();};};";
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
//点击弹出层叉叉
script = " var cb = document.getElementsByClassName('message-center-popup__close-icon');for (var i = 0; i<cb.length;i++) { for(var j = 0; j<20;j++){cb[i].click();};};";
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
Thread.Sleep(1000);
//文本框获取焦点
script = "function test(){document.getElementById('product_info').focus();};test(); ";
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
var host = cefJuLiangWebBrowser.GetBrowser().GetHost();
script = "var dom = document.getElementById('product_info');"
+ "var evt = new UIEvent('input', {"
+ " bubbles: false,"
+ " cancelable: false"
+ " });"
+ "dom.value = '" + dymodel.product_id + "';dom.click();"
+ " dom.dispatchEvent(evt);";
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
//文本框获取焦点
script = "function test(){document.getElementById('product_info').focus();};test(); ";
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
KeyEvent k = new KeyEvent();
k.WindowsKeyCode = 0x20;
k.FocusOnEditableField = true;
k.IsSystemKey = false;
k.Type = KeyEventType.Char;
host.SendKeyEvent(k);
Thread.Sleep(500);
//try
//{
// Invoke(new Action(() =>
// {
// try
// {
// //string file = "";
// //if (Clipboard.GetFileDropList().Count > 0)
// //{
// // file = Clipboard.GetFileDropList()[0];
// //}
// //MyClip.saveClip();
// //Clipboard.SetDataObject("");
// //Clipboard.SetText(dymodel.product_id);
// ////文本框获取焦点
// //script = "function test(){document.getElementById('product_info').focus();};test(); ";
// //cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
// //host.SendKeyEvent(new CefSharp.KeyEvent() { WindowsKeyCode = 86, Type = KeyEventType.RawKeyDown, Modifiers = CefEventFlags.ControlDown });
// //Thread.Sleep(150);
// //if (!string.IsNullOrEmpty(file))
// //{
// // System.Collections.Specialized.StringCollection files = new System.Collections.Specialized.StringCollection();
// // files.Add(file);
// // Clipboard.SetFileDropList(files);
// //}
// //else
// //{
// // MyClip.restoreClip();
// //}
// }
// catch (Exception)
// {
// }
// }));
//}
//catch (Exception ex)
//{
//}
//点击搜索
script = "var button = document.getElementsByTagName('button');"
+ "for(var i=0;i<button.length;i++) {"
+ "if(button[i].type.toUpperCase()=='SUBMIT'){"
+ "button[i].click();"
+ "}}";
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(script);
//string scriptclick = "document.getElementsByClassName('ant-input-search-button')[0].click();";
//cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(scriptclick);
cos_ratio_order_Model = dymodel;
Thread.Sleep(3000);
Task<String> taskHtml = cefJuLiangWebBrowser.GetBrowser().MainFrame.GetSourceAsync();
string response = taskHtml.Result;
int procount = response.Split(new string[] { "<div class=\"goodsCard__wrapper\">" }, StringSplitOptions.None).Length - 1;
if (procount == 0)
{
procount = response.Split(new string[] { "ant-table-row ant-table-row-level-0 row-vertical-top" }, StringSplitOptions.None).Length - 1;
}
if (procount == 1)
{
string goodsCard__wrapper = BaseRegex.GetMatchRegexString(ref response, "<div class=\"goodsCard__wrapper\">[\\s\\S]+?>([\\s\\S]+?)</div></div>");
if (string.IsNullOrEmpty(goodsCard__wrapper))
{
}
string str = BaseRegex.ClearHtml(goodsCard__wrapper);
string xiaoshou = BaseRegex.GetMatchRegexString(ref str, "¥(?<money>\\d+\\.\\d+)月售");
string yongjin = BaseRegex.GetMatchRegexString(ref str, "赚¥(?<money>\\d+\\.\\d+)");
double bili = Math.Round(Convert.ToDouble(yongjin) / Convert.ToDouble(xiaoshou), 2);
if (double.IsNaN(bili))
{
var biliStr = BaseRegex.GetMatchRegexString(ref response, "price__main\">(\\d{1,2})%<");
if (!string.IsNullOrEmpty(biliStr))
{
bili = biliStr.ParseToDouble() / 100;
}
else
bili = 0;
}
//dymodel.commission = Math.Round((Convert.ToDouble(dymodel.price) * bili), 2).ToString();
//dymodel.commission_scale = bili.ToString();
// 商品相同一起更新
var sameProductOrder = listbuyin.Where(l => l.product_id == dymodel.product_id && l.sku == dymodel.sku).ToList();
foreach (var orderModel in sameProductOrder)
{
orderModel.commission = Math.Round((Convert.ToDouble(orderModel.price) * bili), 2).ToString();
orderModel.commission_scale = bili.ToString();
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + orderModel.order_id);
sb.Append("&commission=" + orderModel.commission);//佣金
sb.Append("&commission_scale=" + orderModel.commission_scale);//佣金比例
var urlx = BaseClass.Build29WxObjString("order&act=update");
GetHtml.PostUtf8(urlx, UserLogin.GetSignaturex() + sb.ToString());
Thread.Sleep(500);
if (orderModel.order_status_buy == 1)
{
buyOrderListForm.SetOrderEditShowInDgvRows(orderModel, 3);
}
else
{
sendOrderForms.SetOrderEditShowInDgvRows(orderModel, 3);
}
listbuyin.Remove(orderModel);
}
}
string scriptclick = "document.getElementsByClassName('anticon-close-circle')[0].click();";
cefJuLiangWebBrowser.GetMainFrame().ExecuteJavaScriptAsync(scriptclick);
Thread.Sleep(1000);
}
}
}
}
}
catch (Exception ex)
{
}
}
});
}
private void CefJuLiangWebBrowser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
{
isJuLiangLoadEnd = true;
//if (overread)
//{
// var task02 = e.Frame.GetSourceAsync();
// task02.ContinueWith(t =>
// {
// if (!t.IsFaulted)
// {
// string resultStr = t.Result;
// }
// });
//}
}
private void JuLiangRequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData)
{
if (url.Contains("buyin.jinritemai.com/index/logout"))
{
isJuLiangLoadEnd = false;
Task.Run(() =>
{
//BaseMsgForm.ShowError("巨量百应未登录");
//BaseMsgForm.ShowError("未登录");
});
}
if (url.Contains("https://buyin.jinritemai.com/api/promotion/getList?product_info="))
{
Task.Run(() =>
{
var _responseData = responseData;
try
{
//https://buyin.jinritemai.com/pc/selection/search/pmt?page=1&page_size=60&search_text=3504026539392123066
//&search_id=3511826958081217668&input_query=3504026539392123066&category_ids_v2=
//&_signature=_02B4Z6wo00101iMRFHwAAIDDQBvUFolVlCojFRDAAOnLWamWwMyK.dt5Z3j12Y
//.ejwYUFgdxM.PE0qOXQPaxxlJPkGT.2iDUa4pG3unsbqtNsZU-Sq6h55OdbykTTZQweJ4iJU3POSNDjm.e3e
if (!_responseData.Contains("code"))
{
return;
}
string code = JObject.Parse(_responseData)["code"].ToString();
if (code == "0")
{
var jArrJM = JObject.Parse(_responseData)["data"];
if (jArrJM.Count() == 1)
{
string product_id = JObject.Parse(jArrJM[0].ToString())["product_id"].ToString();
if (product_id == cos_ratio_order_Model.product_id)
{
int cos_ratio = Convert.ToInt32(JObject.Parse(jArrJM[0].ToString())["cos_ratio"].ToString());
if (cos_ratio_order_Model != null)
{
cos_ratio_order_Model.commission = Math.Round((Convert.ToDouble(cos_ratio_order_Model.price) * (cos_ratio * 0.01)), 2).ToString();
cos_ratio_order_Model.commission_scale = (cos_ratio * 0.01).ToString();
if (cos_ratio_order_Model.order_status_buy == 1)
{
buyOrderListForm.SetOrderEditShowInDgvRows(cos_ratio_order_Model, 3);
}
else
{
sendOrderForms.SetOrderEditShowInDgvRows(cos_ratio_order_Model, 3);
}
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + cos_ratio_order_Model.order_id);
sb.Append("&commission=" + cos_ratio_order_Model.commission);
sb.Append("&commission_scale=" + cos_ratio_order_Model.commission_scale);
string urlcom = BaseClass.Build29WxObjString("order&act=update");
GetHtml.PostUtf8(urlcom, UserLogin.GetSignaturex() + sb.ToString());
}
}
}
}
}
catch (Exception ex)
{
}
});
}
}
private void CefJuLiangWebBrowser_AddressChanged(object sender, AddressChangedEventArgs e)
{
}
#endregion
#region 订单
/// <summary>
/// 是否正在读取订单
/// </summary>
bool isOrderReading = false;
/// <summary>
/// 读单
/// 1 待确认/待支付(订单创建完毕)
/// 103 部分支付
/// 105 已支付
/// 2 备货中(待发货)
/// 101 部分发货
/// 3 已发货(全部发货)
/// 4 已取消
/// 5 已完成(已收货)
/// 21 发货前退款完结
/// 22 发货后退款完结
/// 39 收货后退款完结
/// </summary>
/// <param name="status">2 备货中</param>
/// <param name="type"></param>
void ReadOrder(int status, string type = "")
{
try
{
if (isOrderReading)
{
if (type == "")
{
BaseMsgForm.ShowInfo("正在读单中,请等待读单完成", "提示");
}
return;
}
isOrderReading = true;
string url = BaseClass.ApiUrl + "/do";
var shopIds = dgvShop.Rows.Cast<DataGridViewRow>()
.Where(s => s.Cells["colSelect"].Value.ParseToBool() == true)
.Select(r => r.Cells["colShopId"].Value.ToString()).ToList();
Task.Run(() =>
{
try
{
foreach (ShopLoginInfo shop in GlobalConfig.ShopLoginList)
{
if (!shopIds.Contains(shop.ShopId))
{
continue;
}
if (shop.ApiAuthStatus != "授权成功")
{
continue;
}
int size = 100;
int totalcount = 100;
int page = 0;
#region 获取上次读取订单截止时间作为本次读取开始时间
url = BaseClass.Build29WxObjString("shop&act=get_shop_pull_time");
string data = UserLogin.GetSignaturex() + "&shop_id=" + shop.ShopId;
string shopReadtimejson = GetHtml.PostUtf8(url, data);
if (shopReadtimejson != "" && JObject.Parse(shopReadtimejson)["code"].ToString() == "200")
{
BaseClass.readOrderTime = JObject.Parse(shopReadtimejson)["data"].ParseToInt();
}
DateTime serverTime = BaseClass.GetServerTimeString();
DateTime readOrderStartDateTime = BaseClass.StampToDateTime(BaseClass.readOrderTime);
if (readOrderStartDateTime < serverTime.AddDays(-14))
readOrderStartDateTime = serverTime.AddDays(-14);
//readOrderStartDateTime = serverTime.Date.AddDays(-14); // 测试用,固定读14天
if (readOrderStartDateTime > serverTime.Date.AddDays(-1))
readOrderStartDateTime = serverTime.Date.AddDays(-1); // 测试用,固定读1天
#endregion
DateTime nextReadOrderDateTime = serverTime.AddSeconds(-400); // 下次读单的开始时间
downpage:
// status:
// under_sure 待确认
// unpaid 待支付
// 2 备货中
// on_delivery 已发货
// stock_up 24小时须发货
// 1 待确认 / 待支付(订单创建完毕)
// 103 部分支付
// 105 已支付
// 2 备货中
// 101 部分发货
// 3 已发货(全部发货)
// 4 已取消
// 5 已完成(已收货)
// 21 发货前退款完结
// 22 发货后退款完结
// 39 收货后退款完结
Dictionary<string, string> dic = new Dictionary<string, string>() { };
dic.Add("size", size.ToString());
dic.Add("page", page.ToString());
dic["create_time_start"] = BaseClass.DateTimeToTimestampSeconds(readOrderStartDateTime).ToString();
dic.Add("create_time_end", BaseClass.DateTimeToTimestampSeconds(serverTime.Date.AddDays(1)).ToString());
dic.Add("order_by", "create_time");
if (status > 0)
dic.Add("combine_status", "{\"order_status\":\"" + status + "\"}");
//dic.Add("combine_status", "{\"main_status\":2}");
DouyinApi apix = new DouyinApi(shop);
apix.JsonData = dic;
BaseClass.ShopId = shop.ShopId;
BaseClass.ShopName = shop.ShopAccount;
string html = apix.GetOrderList();
for (int i = 0; i < 5 && html.Contains("系统繁忙,请稍后重试"); i++)
{
Thread.Sleep(1000);
html = apix.GetOrderList();
}
Debug.WriteLine("抖音返回数据:page:{0}|code:{1}|total:{2}", page.ToString(), JObject.Parse(html)["code"]?.ToString(), JObject.Parse(html)["data"]?["total"]?.ToString()); //总毫秒数
if (string.IsNullOrEmpty(html))
{
isOrderReading = false;
return;
}
var temp = html.Replace(" ", "");
if (!temp.Contains("\"msg\":\"success\"") && !temp.Contains("\"message\":\"success\"") && !temp.Contains("\"code\":10000"))
{
isOrderReading = false;
return;
}
#region fei 废弃代码
/*
for (int i = 0; i < CollectionClass.orderDataList_Temp.Count; i++)
{
DouOrderListInfo.Shop_order_listItem item = CollectionClass.orderDataList_Temp[i];
DouYinOrderModel dymodel = CollectionClass.orderDataList.Find(x => x.main_order_id == item.order_id);
string Name = "解密失败", Mobile = "解密失败", Address = "解密失败";
if (dymodel != null)
{
Name = dymodel.name;
Mobile = dymodel.mobile;
Address = dymodel.address;
}
else
{
if (!BaseClass.isUseSimGetRealAddress)
{
#region 解密
//dic = new Dictionary<string, string>() { };
//dic.Add("cipher_infos", "[{\"auth_id\":\"" + item.order_id + "\",\"cipher_text\":\"" + GetHtml.UrlEncodeUtf8(item.encrypt_post_tel) + "\"}," +
// "{\"auth_id\":\"" + item.order_id + "\",\"cipher_text\":\"" + GetHtml.UrlEncodeUtf8(item.encrypt_post_receiver) + "\"}," +
// "{\"auth_id\":\"" + item.order_id + "\",\"cipher_text\":\"" + GetHtml.UrlEncodeUtf8(item.post_addr.encrypt_detail) + "\"}" +
// "]");
//if (shop != null)
//{
// apix.JsonData = dic;
// string htmljm = apix.GetOrderbatchSensitive();
// apix.JsonData = dic;
// // string htmljm_h = apix.GetGuanFangData("order.batchDecrypt");
// htmljm = apix.GetOrderBatchDecrypt();
// string code = "";
// code = JObject.Parse(htmljm)["code"].ToString();
// if (code == "10000")
// {
// var jArrJM = JObject.Parse(htmljm)["data"]["decrypt_infos"];
// foreach (var itemjm in jArrJM)
// {
// string cipher_text = JObject.Parse(itemjm.ToString())["cipher_text"].ToString();
// if (cipher_text == item.encrypt_post_receiver)
// {
// Name = JObject.Parse(itemjm.ToString())["decrypt_text"].ToString();
// }
// else if (cipher_text == item.encrypt_post_tel)
// {
// Mobile = JObject.Parse(itemjm.ToString())["decrypt_text"].ToString();
// }
// else
// {
// Address = item.post_addr.province.name + item.post_addr.city.name + item.post_addr.town.name + item.post_addr.street.name + JObject.Parse(itemjm.ToString())["decrypt_text"].ToString();
// }
// }
// }
//}
#endregion
}
}
foreach (DouOrderListInfo.Sku_order_listItem orderDetail in item.sku_order_list)
{
string sku = "";
foreach (DouOrderListInfo.SpecItem specdescitem in orderDetail.spec)
{
sku += specdescitem.name + ":" + specdescitem.value + ";";
}
string urlx = BaseClass.LoginApiUrl + "?obj=upshopid/upid_dd&act=get";
string datax = "&pid=" + orderDetail.product_id + "&table=" + (orderDetail.product_id % 1024);
string pid = GetHtml.PostUtf8(urlx, UserLogin.GetSignaturex("", "") + datax);
orderDetail.Name = Name;
orderDetail.Mobile = Mobile;
orderDetail.Address = Address;
StringBuilder sb = new StringBuilder();
//if (!Mobile.Contains("解密失败") && !Mobile.Contains("$1$$"))
//{
// sb.Append("&decrypt_status=1");
//}
//else
//{
// Address = Mobile = Name = orderDetail.Name = "解密失败.";
// orderDetail.Mobile = "解密失败.";
// orderDetail.Address = "解密失败.";
// sb.Append("&decrypt_status=2");
//}
sb.Append("&main_order_id=" + item.order_id);
sb.Append("&order_id=" + orderDetail.order_id);
//sb.Append("&product_id=" + orderDetail.product_id);
//sb.Append("&shop_id=" + item.shop_id);
//sb.Append("&shop_name=" + item.shop_name);
//sb.Append("&title=" + GetHtml.UrlEncodeUtf8(orderDetail.product_name));
//sb.Append("&order_status=" + orderDetail.order_status);
//sb.Append("&sku=" + GetHtml.UrlEncodeUtf8(sku));
//sb.Append("&sku_img=" + orderDetail.product_pic);
//sb.Append("&count=" + orderDetail.item_num);
//sb.Append("&price=" + orderDetail.pay_amount);
//sb.Append("&express_name=");
//sb.Append("&express_no=");
//sb.Append("&c_biz_desc=" + orderDetail.c_biz_desc);
//sb.Append("&name=" + GetHtml.UrlEncodeUtf8(Name));
//sb.Append("&mobile=" + GetHtml.UrlEncodeUtf8(Mobile));
//sb.Append("&address=" + GetHtml.UrlEncodeUtf8(Address));
//sb.Append("&create_time=" + orderDetail.create_time);
//if (pid.Length > 1 && pid != "none" && !pid.Replace(" ", "").Contains("{\"code\": 400".Replace(" ","")))
//{
// sb.Append("&up_product_id=" + pid);
//}
//sb.Append("&order_id_buy=");//0已完成 1待拍单
//sb.Append("&order_status_buy=1");//0已完成 1待拍单 2等待上家发货
//sb.Append("&buy_price=");
//sb.Append("&buyer_mobile=");
//sb.Append("&remark=" + item.seller_words);
//sb.Append("&is_update_order=0");//1修改状态0不修改状态
url = BaseClass.Build29WxObjString("order&act=update");
System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Start(); //开始监视代码运行时间
GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + sb.ToString());
watch.Stop(); //停止监视
TimeSpan timespans = watch.Elapsed; //获取当前实例测量得出的总时间
System.Diagnostics.Debug.WriteLine("发送订单到服务器数据:{0}(毫秒)", timespans.TotalMilliseconds); //总毫秒数
}
}
*/
#endregion
try
{
DouOrderListInfo.OrderData orderListInfo = JsonConvert.DeserializeObject<DouOrderListInfo.OrderListResponse>(html).data;
CollectionClass.orderDataList_Temp = CollectionClass.orderDataList_Temp.Concat(orderListInfo.shop_order_list).ToList();
if (orderListInfo.shop_order_list.Count > 0)
{
var maxTime = BaseClass.StampToDateTime(orderListInfo.shop_order_list.Max(o => o.create_time));
if (maxTime > nextReadOrderDateTime)
{
nextReadOrderDateTime = maxTime;
}
}
if (orderListInfo.total > totalcount)
{
page++;
totalcount += orderListInfo.shop_order_list.Count;
goto downpage;
}
// 读取完当前店铺更新最后读取时间以供下次读取开始
url = BaseClass.Build29WxObjString("shop&act=update_shop_pull_time");
shopReadtimejson = GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + "&shop_id=" + shop.ShopId +
"&pull_time=" + BaseClass.DateTimeToTimestampSeconds(nextReadOrderDateTime));
}
catch (Exception ex)
{
}
}
}
catch (Exception ex)
{
NaiBa.Util.Helper.LogHelper.WriteWithTime(ex.Message);
}
isOrderReading = false;
});
}
catch (Exception ex)
{
isOrderReading = false;
}
}
#endregion
#region 店铺
bool readshop = false;
public List<ShopLoginInfo> GetServerShop()
{
List<ShopLoginInfo> list = new List<ShopLoginInfo>();
if (readshop == false)
{
this.Invoke(new Action(() =>
{
dgvShop.Rows.Clear();
GlobalConfig.ShopLoginList.Clear();
lbsqcount.Text = "0";
lbwsqcount.Text = "0";
splitMain.Panel1.Enabled = false;
}));
readshop = true;
int page = 0;
while (true)
{
page++;
//var url = BaseClass.BuildObjString("shop&act=get_shop_list");
var url = BaseClass.Build29WxObjString("shop/get_shop_list");
var data = UserLogin.GetSignaturex() + "&page=" + page;
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)
{
//string shopStr = jObj.ToString();
//ShopLoginInfo shop = new ShopLoginInfo();
//shop.DbId = BaseRegex.GetStringJson(ref shopStr, "id");
//if (shop.DbId == null)
// continue;
//shop.LoginName = BaseRegex.GetStringJson(ref shopStr, "login_name");
//shop.ShopAccount = BaseRegex.GetStringJson(ref shopStr, "shop_name");
//shop.ApiAuthStatus = "读取中...";
//shop.LoginStatus = "读取中...";
//shop.Password = BaseRegex.GetStringJson(ref shopStr, "password");
//shop.ShopId = BaseRegex.GetStringJson(ref shopStr, "shop_id");
//url = BaseClass.Build29WxObjString("shop&act=get_shop_token");
//data = UserLogin.GetSignaturex() + "&shop_id=" + shop.ShopId;
//string htmltoken = GetHtml.PostUtf8(url, data, "", 5);
//for (int i = 0; i < 10 && (string.IsNullOrEmpty(htmltoken) || htmltoken.Replace(" ", "").Contains("\"code\":400")); i++)
//{
// Thread.Sleep(100);
// htmltoken = GetHtml.PostUtf8(url, data, "", 5);
//}
//var jArrs = JObject.Parse(htmltoken)["data"];
//foreach (JObject jObjs in jArrs)
//{
// string tokens = jObjs.ToString();
// string token = BaseRegex.GetStringJson(ref tokens, "access_token");
// string app_key = BaseRegex.GetStringJson(ref tokens, "app_key");
// string expires_in = BaseRegex.GetStringJson(ref tokens, "expires_in");
// if (app_key == "7016502755254683171")
// {
// shop.AccessToken = token;
// shop.TokenExpiresTime = Convert.ToDateTime(expires_in);
// }
//}
//shop.GroupName = BaseRegex.GetStringJson(ref shopStr, "cat_name");
//shop.BuyAccount = BaseRegex.GetStringJson(ref shopStr, "buy_user_name");
//shop.UploadAccount = BaseRegex.GetStringJson(ref shopStr, "upload_user_name");
var shop = ShopBLL.DeserializationShop(jObj);
if (list.Any(l => l.ShopId == shop.ShopId))
continue;
list.Add(shop);
this.Invoke(new Action(() =>
{
ShowShopStatus(shop);
}));
}
}
foreach (ShopLoginInfo shop in list)
{
}
if (list.Count > 0)
{
#region 获取服务端保存的店铺cookies
string shopNames = "";
foreach (var shop in list)
{
shopNames += shop.ShopAccount + ",";
}
var cookies = GetServerShopCookies(shopNames);
if (!string.IsNullOrEmpty(cookies) && cookies.Contains("\"code\":200"))
{
var data = JObject.Parse(cookies)["data"];
foreach (var shop in list)
{
for (int j = 0; data != null && j < data.Count(); j++)
{
if (data[j][shop.ShopAccount] != null)
{
shop.Cookies = data[j][shop.ShopAccount].ToString().Replace("&", "&").Replace("%", "%").Replace("+", "+");
break;
}
}
}
}
#endregion
#region 获取服务端保存的店铺授权信息
string shopIds = "";
foreach (var shop in list)
{
shopIds += shop.ShopId + ",";
}
var shopTokens = GetServerShopTokens(shopIds); //{"code":200,"msg":"success","data":[{"shop_id":"9050819","app_key":"6876612657718691336","access_token":"fd818b94-b4e7-4707-8073-bebcd81d8e4c","refresh_token":"9a109ef3-2bef-4ca9-8f4e-18369a356255","add_time":"2021-07-09 10:54:56","expires_in":"2021-07-14 18:40:44"}]}
if (!string.IsNullOrEmpty(shopTokens) && shopTokens.Contains("\"code\":200"))
{
JObject jShopsObj = JObject.Parse(shopTokens);
foreach (JObject jShop in jShopsObj["data"])
{
string shopStr = AllBase.JsonHelper.SerializeObject(jShop);
if (BaseRegex.GetStringJson(ref shopStr, "app_key") == "7016502755254683171")
{
string shop_id = BaseRegex.GetStringJson(ref shopStr, "shop_id");
var shop = list.FirstOrDefault(s => s.ShopId == shop_id);
if (shop != null)
{
shop.AppKey = BaseRegex.GetStringJson(ref shopStr, "app_key");
shop.AccessToken = BaseRegex.GetStringJson(ref shopStr, "access_token");
shop.RefreshToken = BaseRegex.GetStringJson(ref shopStr, "refresh_token");
shop.AddTime = Convert.ToDateTime(BaseRegex.GetStringJson(ref shopStr, "add_time"));
shop.ExpiresTime = Convert.ToDateTime(BaseRegex.GetStringJson(ref shopStr, "expires_in"));
}
}
}
}
#endregion
#region 读取服务端子账号列表用于订单分配
//------------------------------------
string url = BaseClass.Build29WxObjString("shop&act=get_shop_user_sub_group");
var param = UserLogin.GetSignaturex() + "&group_id=9";
string subUserIdResult = GetHtml.PostUtf8(url, param);
for (int i = 0; i < 10 && !subUserIdResult.Contains("\"code\":200"); i++)
{
Thread.Sleep(200);
subUserIdResult = GetHtml.PostUtf8(url, param);
}
if (subUserIdResult != "" && JObject.Parse(subUserIdResult)["code"].ToString() == "200")
{
List<DouSubAccountModel> dousubaccount = JsonConvert.DeserializeObject<List<DouSubAccountModel>>(JObject.Parse(subUserIdResult)["data"].ToString());
foreach (var shop in list)
{
var douSubAccountModelItem = new DouSubAccountModelItem() { DouSubAccountModel = dousubaccount.Where(d => d.shop_id == shop.ShopId).ToList() };
BaseClass.dousubaccountDic[shop.ShopId] = douSubAccountModelItem;
}
}
#endregion
}
foreach (var shop in list)
{
GlobalConfig.ShopLoginList.Add(shop);
}
CheckShopLogin(list);
readshop = false;
this.Invoke(new Action(() =>
{
splitMain.Panel1.Enabled = true;
}));
}
return list;
}
public void ShowShopStatus(ShopLoginInfo shop)
{
var row = this.dgvShop.Rows.Cast<DataGridViewRow>().FirstOrDefault(r => r.Cells["colShopId"].Value?.ToString() == shop.ShopId);
if (row == null)
dgvShop.Rows.Add(true, shop.ShopId, shop.LoginName, shop.ShopAccount, shop.ApiAuthStatus, shop.LoginStatus);
else
{
row.Cells["colShopAccount"].Value = shop.LoginName;
row.Cells["colShopName"].Value = shop.ShopAccount;
row.Cells["colAuthStatus"].Value = shop.ApiAuthStatus;
row.Cells["colLoginStatus"].Value = shop.LoginStatus;
}
}
/// <summary>
/// 获取店铺Cookies
/// </summary>
/// <param name="shopNames">店铺名称,逗号隔开</param>
public static string GetServerShopCookies(string shopNames)
{
var url = BaseClass.Build29WxObjString("shop&act=get_shop_cookie");
var data = UserLogin.GetSignaturex() + "&shop_name=" + shopNames.Trim(',');
var result = GetHtml.PostUtf8(url, data);
return result;
}
public static string GetServerShopTokens(string shopIds)
{
var url = BaseClass.Build29WxObjString("shop&act=get_shop_token");
var data = UserLogin.GetSignaturex() + "&shop_id=" + shopIds.Trim(',');
var result = GetHtml.PostUtf8(url, data);
return result;
}
//查询授权
public void CheckShopLogin(List<ShopLoginInfo> shoplists, bool isShowProgress = true)
{
for (int i = 0; i < shoplists.Count; i++)
{
ShopLoginInfo doushop = shoplists[i];
var url = BaseClass.Build29WxObjString("authorization&act=order_author");
var data = UserLogin.GetSignaturex() + "&timestamp=" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "&shop_id=" + doushop.ShopId;
var result = GetHtml.PostUtf8(url, data);
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(v => v.ShopAccount == doushop.ShopAccount);
if (shop != null)
{
var loginResult = GetShopStatus(shop);
if (loginResult.Contains("\"code\":0"))
{
shop.LoginStatus = "登录成功";
var shopId = BaseRegex.GetStringJson(ref loginResult, "id");
var shopToken = BaseRegex.GetStringJson(ref loginResult, "token");
var shopName = BaseRegex.GetStringJson(ref loginResult, "shop_name");
var mobile = BaseRegex.GetStringJson(ref loginResult, "mobile");
var expires_in = BaseRegex.GetStringJson(ref result, "expires_in");
if (!string.IsNullOrEmpty(shopId)) shop.ShopId = shopId;
if (!string.IsNullOrEmpty(expires_in))
{
shop.ExpiresTime = Convert.ToDateTime(expires_in);
}
if (!string.IsNullOrEmpty(shopToken)) shop.ShopToken = shopToken;
if (!string.IsNullOrEmpty(shopName)) shop.ShopAccount = shopName;
if (!string.IsNullOrEmpty(mobile)) shop.Mobile = mobile;
}
else if (loginResult.Contains("未登录"))
{
shop.LoginStatus = "未登录";
}
else
{
shop.LoginStatus = "登录失败";
}
if (BaseClass.GetServerTimeString() > shop.TokenExpiresTime)
{
this.Invoke(new Action(() =>
{
lbwsqcount.Text = (lbwsqcount.Text.ParseToInt() + 1).ToString();
shop.ApiAuthStatus = "未授权";
}));
}
else
{
Dictionary<string, string> dic = new Dictionary<string, string>() { };
dic.Add("size", "1");
dic.Add("page", "0");
dic.Add("order_by", "create_time");
dic.Add("create_time_start", BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddDays(-1)).ToString());
DouyinApi api = new DouyinApi(shop);
api.JsonData = dic;
string html = api.GetOrderList();
if (html.Contains("\"message\":\"success\"") || html.Contains("\"code\":10000"))
{
this.Invoke(new Action(() =>
{
lbsqcount.Text = (lbsqcount.Text.ParseToInt() + 1).ToString();
shop.ApiAuthStatus = "授权成功";
}));
}
else // "access_token已过期"
{
this.Invoke(new Action(() =>
{
lbwsqcount.Text = (lbwsqcount.Text.ParseToInt() + 1).ToString();
shop.ApiAuthStatus = "未授权";
}));
}
}
// 获取店铺token列表
//if (!string.IsNullOrEmpty(shop.AccessToken) && shop.ExpiresTime > DateTime.Now)
//{
// shop.ApiAuthStatus = "授权成功";
//}
if (!string.IsNullOrEmpty(loginResult))
shop.LastRefreshDate = DateTime.Now.Date.ToString("yyyyMMdd");
//StartUp.SaveDouShopLoginInfo();
//AddDataGridViewRow(shop);
}
if (this.Created && isShowProgress)
{
this.Invoke(new Action(() =>
{
//this.statusBar.lblTaskStatus.Text = "正在检测...";
//this.statusBar.pgbTaskProgress.Value = (i + 1);
//this.statusBar.pgbTaskProgress.Text = (i + 1) + "/" + shopNames.Length;
}));
}
this.Invoke(new Action(() =>
{
ShowShopStatus(doushop);
}));
}
}
private string GetShopStatus(ShopLoginInfo shop)
{
var timeStamp = AllBase.BaseClass.ConvertDateTimeInt(DateTime.Now);
var _lid = timeStamp.ToString().Substring(5) + Randomx.GetId(10) + Randomx.GetId(10) + Randomx.GetId(10) + Randomx.GetId(10);
HttpWebResponse response = null;
string result;
try
{
string url = "https://fxg.jinritemai.com/common/index/index?_lid=" + _lid;
url = "https://fxg.jinritemai.com/common/index/index?_=" + timeStamp + "&appid=1";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.KeepAlive = true;
request.Headers.Add("sec-ch-ua", @""" Not;A Brand"";v=""99"", ""Google Chrome"";v=""91"", ""Chromium"";v=""91""");
request.Headers.Add("sec-ch-ua-mobile", @"?0");
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 = "*/*";
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://fxg.jinritemai.com/ffa/mshop/homepage/index";
//request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate, br");
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
request.Headers.Set(HttpRequestHeader.Cookie, shop.Cookies);
//gfsitesid=MTQyNTYzMzg3MXwxNjI0ODY5MDgyMjN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gfsitesid=MTQyNTYzMzg3MXwxNjI0ODY5MDgyMjN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gfsitesid=MTQyNTYzMzg3MXwxNjI0ODY5MDgyMjN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gfsitesid=MTQyNTYzMzg3MXwxNjI0ODY5MDgyMjN8fDQyOTIxMTA1Mjk2MDgzNzUHBwcHBwcH; gftoken=MTQyNTYzMzg3MXwxNjI0ODY5MDgyMjN8fDAGBgYGBgY; Hm_lvt_b6520b076191ab4b36812da4c90f7a5e=1624869083; passport_csrf_token_default=63caff152adc5e1d5da5767bf68c6e13; passport_csrf_token=63caff152adc5e1d5da5767bf68c6e13; ttwid=1%7C7YnupmizSCfMVfQ9y8cSyDYdaFFZFIG3i91Gg2_c5o4%7C1624869083%7C2527885991ce10cc1d54edcb381f47d01aaaf862a2c1fb587f55e26aa41eba5b; ttcid=40a3419fe96343f794046035c0f1c6bb88; n_mh=7LrrRmeUceh3vjPZWa4C3h7B_APxodsUr7zuYy75V90; sso_uid_tt=c1960cf8de21effe142f1b380670a8a3; sso_uid_tt_ss=c1960cf8de21effe142f1b380670a8a3; toutiao_sso_user=c00794bc53d4a42eb9ab1388ca003bcb; toutiao_sso_user_ss=c00794bc53d4a42eb9ab1388ca003bcb; odin_tt=c646a97f8da607104fc7f1b424cf575d3a9360b52a860aa41d467407a14512fa049a875904a556a8ecbca4985d302a8287ae02bafeaf8235cd31d44a86c2f27f; gfpart_1.0.0.2541_75650=0; uidpasaddaehruigqreajf=0; ucas_sso_c0_ss=CkEKBTEuMC4wEIeIg9zOm-LsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DjkeaGBkjjxaKJBlCOvKLE77ansWBYbhIU4IRRs4bwygU2zJUnwUihzw_S6ko; ucas_sso_c0=CkEKBTEuMC4wEIeIg9zOm-LsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DjkeaGBkjjxaKJBlCOvKLE77ansWBYbhIU4IRRs4bwygU2zJUnwUihzw_S6ko; ucas_c0_ss=CkEKBTEuMC4wEKKIg9SJmuLsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DkkeaGBkjkxaKJBlCOvKLE77ansWBYbhIU3xVR2vJ8IbAhCwtumICcjmmBLh0; sid_guard=16f989cfdea4ddac75677dfc0ce57afd%7C1624869092%7C5184000%7CFri%2C+27-Aug-2021+08%3A31%3A32+GMT; uid_tt=6fdbf1e79a0ed585dfa8e872be181249; uid_tt_ss=6fdbf1e79a0ed585dfa8e872be181249; sid_tt=16f989cfdea4ddac75677dfc0ce57afd; sessionid=16f989cfdea4ddac75677dfc0ce57afd; sessionid_ss=16f989cfdea4ddac75677dfc0ce57afd; ucas_c0=CkEKBTEuMC4wEKKIg9SJmuLsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DkkeaGBkjkxaKJBlCOvKLE77ansWBYbhIU3xVR2vJ8IbAhCwtumICcjmmBLh0; PHPSESSID=3fe844ca974ebeea09da3231eee9646e; PHPSESSID_SS=3fe844ca974ebeea09da3231eee9646e; need_choose_shop=0; Hm_lpvt_b6520b076191ab4b36812da4c90f7a5e=1624869093; login_info=%7B%22for_im_reply%22%3A%223fe844ca974ebeea09da3231eee9646e%22%7D; tt_scid=jkzjB5E7zloxWMb2G449QYbHcDZpzOLTpPUBSBff8qryqYe.RyJXHuV0J7Zgm6nNa041; MONITOR_WEB_ID=4292110529608375
//passport_csrf_token_default=e5523a2b927b7a05c96d78a002476760; passport_csrf_token=e5523a2b927b7a05c96d78a002476760; source=bd.pcpz.1; uidpasaddaehruigqreajf=0; need_choose_shop=0; gfpart_1.0.0.695_75006=0; SHOP_ID=9050819; PIGEON_CID=4292110529608375; gfpart_1.0.0.2509_75019=0; Hm_lvt_b6520b076191ab4b36812da4c90f7a5e=1624517875,1624518442; passport_auth_status_ss=be2c708f6b44b8a69f25bb0be517ed9e%2C3eecc7d21580d321236fc0fdc098042c; passport_auth_status=be2c708f6b44b8a69f25bb0be517ed9e%2C3eecc7d21580d321236fc0fdc098042c; n_mh=7LrrRmeUceh3vjPZWa4C3h7B_APxodsUr7zuYy75V90; gfpart_1.0.0.312_74679=1; ttwid=1%7Cn--vVhfZ3AB5VnU0qJCRI6DEqVeEtvQU9yArHD7nu7A%7C1624868199%7Ccd636d9e6f1719d9a763eee1acf81ab435e14c542490ef0a5150c7566f110764; sso_uid_tt=b577dc2d646f30ca85d073bf096eb952; sso_uid_tt_ss=b577dc2d646f30ca85d073bf096eb952; toutiao_sso_user=c1581bc437561fd5a52f850ccd927686; toutiao_sso_user_ss=c1581bc437561fd5a52f850ccd927686; odin_tt=e85b04b36cb5475fe06a487c55655d731be76d54ae26e57e080823d3a568d863c7b24a14aa1c89b488b91e2e2f5743b98bc4e9b7f726b342d8f0c5ea43744e5c; ucas_sso_c0_ss=CkEKBTEuMC4wEIiIkvirrOHsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DsiuaGBkjsvqKJBlCOvKLE77ansWBYbhIUtAA8VK2j6e3rNeErWjH8DgLTusg; ucas_sso_c0=CkEKBTEuMC4wEIiIkvirrOHsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DsiuaGBkjsvqKJBlCOvKLE77ansWBYbhIUtAA8VK2j6e3rNeErWjH8DgLTusg; ucas_c0_ss=CkEKBTEuMC4wEISIh4LFquHsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DtiuaGBkjtvqKJBlCOvKLE77ansWBYbhIUW5zoGPqAfCOgljJMo1C38jEuxXU; sid_guard=e57a8c80525e8c0ed19010416cada4b5%7C1624868205%7C5184000%7CFri%2C+27-Aug-2021+08%3A16%3A45+GMT; uid_tt=77d00870f7e450b238e44daad9c2ce4b; uid_tt_ss=77d00870f7e450b238e44daad9c2ce4b; sid_tt=e57a8c80525e8c0ed19010416cada4b5; sessionid=e57a8c80525e8c0ed19010416cada4b5; sessionid_ss=e57a8c80525e8c0ed19010416cada4b5; ucas_c0=CkEKBTEuMC4wEISIh4LFquHsYBjmJiC9k9DP4oyUBCiwITC39dDb7fTPB0DtiuaGBkjtvqKJBlCOvKLE77ansWBYbhIUW5zoGPqAfCOgljJMo1C38jEuxXU; PHPSESSID=4509fb9e486ea387dd36c94c3300d730; PHPSESSID_SS=4509fb9e486ea387dd36c94c3300d730; login_info=%7B%22for_im_reply%22%3A%224509fb9e486ea387dd36c94c3300d730%22%7D; __G_CREATE_VERIFY_PASS__=9050819; gftoken=ZTU3YThjODA1MnwxNjI0ODY4MjE5MTN8fDAGBgYGBgY; Hm_lpvt_b6520b076191ab4b36812da4c90f7a5e=1624868264; tt_scid=UdcHHkJ0VryryaO30UGOPrdEqaM70FrV6n5xUCKx17Y27H1b.8HjmzE2PXTyrHxL62c8; MONITOR_WEB_ID=4292110529608375; gfpart_1.0.0.2541_75650=0
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
if (ex.Status == WebExceptionStatus.ProtocolError)
{
response = (HttpWebResponse)ex.Response;
result = DouYinHttpWebRequest.ReadResponse(response);
return result;
}
else return ex.Message;
}
catch (Exception e)
{
if (response != null) response.Close();
return e.Message;
}
result = DouYinHttpWebRequest.ReadResponse(response);
return result;
}
#endregion
#region 买手号
public void GetServiceBuyUsers()
{
string url = BaseClass.Build29WxObjString("user_login_cookies");
string data = "&act=get&site_id=99";
string html = GetHtml.PostUtf8(url, UserLogin.GetSignaturex() + data);
if (html == "")
{
return;
}
var code = JObject.Parse(html)["code"];
if (code.ToString() != "200")
{
return;
}
var jArr = JObject.Parse(html)["data"];
if (jArr.Count() == 0)
{
return;
}
List<System.Net.Cookie> cookie = new List<System.Net.Cookie>();
foreach (JObject jObj in jArr)
{
string buyuser = jObj.ToString();
PddBuyUser pddBuyUsers = new PddBuyUser();
string name = BaseRegex.GetStringJson(ref buyuser, "user_name");
string cookies = BaseRegex.GetStringJson(ref buyuser, "cookies");
string uid = BaseRegex.GetStringJson(ref buyuser, "user_id");
string site_id = BaseRegex.GetStringJson(ref buyuser, "site_id");
if (site_id == "0")
{
pddBuyUsers.AddBuyUserCookies(uid, name, cookies);
}
else if (site_id == "1")
{
new TaoBaoBuyUser().AddBuyUserCookies(uid, name, cookies);
}
else if (site_id == "3")
{
new ALBuyUser().AddBuyUserCookies(uid, name, cookies);
}
}
ResetUserList();
}
public void ReflashBuyUsers()
{
Invoke(new delegateView(ResetUserList));
}
private void ResetUserList()
{
Thread.Sleep(100);
Invoke(new Action(() =>
{
var currentPddBuyUser = cbpddBuyUser.SelectedItem?.ToString();
var currentTbBuyUser = cbtbBuyUser.SelectedItem?.ToString();
var current1688BuyUser = cb1688BuyUser.SelectedItem?.ToString();
var currentPddPifaUser = cmbPddPifaBuyUser.SelectedItem?.ToString();
cbpddBuyUser.Items.Clear();
cbtbBuyUser.Items.Clear();
cb1688BuyUser.Items.Clear();
cmbPddPifaBuyUser.Items.Clear();
try
{
foreach (KeyValuePair<BuyNumber, UserCookies> item in PddBuyUser.buyUserCookies)//拍单买手号
{
if (!cbpddBuyUser.Items.Contains("点击下拉切换"))
{
cbpddBuyUser.Items.Add("点击下拉切换");
cbpddBuyUser.SelectedIndex = 0;
}
ComboboxItem cbitem = new ComboboxItem();
cbitem.Text = item.Key.name;
cbitem.Value = item.Value.uid;
cbpddBuyUser.Items.Add(cbitem);
if (currentPddBuyUser == item.Key.name)
cbpddBuyUser.SelectedItem = cbitem;
}
foreach (KeyValuePair<BuyNumber, UserCookies> item in TaoBaoBuyUser.buyUserCookies)
{
if (!cbtbBuyUser.Items.Contains("点击下拉切换"))
{
cbtbBuyUser.Items.Add("点击下拉切换");
cbtbBuyUser.SelectedIndex = 0;
}
ComboboxItem cbitem = new ComboboxItem();
cbitem.Text = item.Key.name;
cbitem.Value = item.Value.uid;
cbtbBuyUser.Items.Add(cbitem);
if (currentTbBuyUser == item.Key.name)
cbtbBuyUser.SelectedItem = cbitem;
}
foreach (KeyValuePair<BuyNumber, UserCookies> item in ALBuyUser.buyUserCookies)
{
if (!cb1688BuyUser.Items.Contains("点击下拉切换"))
{
cb1688BuyUser.Items.Add("点击下拉切换");
cb1688BuyUser.SelectedIndex = 0;
}
ComboboxItem cbitem = new ComboboxItem();
cbitem.Text = item.Key.name;
cbitem.Value = item.Value.uid;
cb1688BuyUser.Items.Add(cbitem);
if (current1688BuyUser == item.Key.name)
cb1688BuyUser.SelectedItem = cbitem;
}
foreach (PddPifaShopInfo item in GlobalConfig.LstPddPifaShop)
{
if (!cmbPddPifaBuyUser.Items.Contains("点击下拉切换"))
{
cmbPddPifaBuyUser.Items.Add("点击下拉切换");
cmbPddPifaBuyUser.SelectedIndex = 0;
}
ComboboxItem cbitem = new ComboboxItem();
cbitem.Text = item.PddId;
cbitem.Value = item.PddShopName;
cmbPddPifaBuyUser.Items.Add(cbitem);
if (currentPddPifaUser == item.PddId)
cmbPddPifaBuyUser.SelectedItem = cbitem;
}
}
catch
{
}
}));
}
public void PddSelectedItem(string pdduid)
{
Invoke(new Action(() =>
{
for (int i = 0; i < cbpddBuyUser.Items.Count; i++)
{
if (cbpddBuyUser.Items[i].ToString() == "点击下拉切换")
{
continue;
}
if (pdduid == (cbpddBuyUser.Items[i] as ComboboxItem).Value.ToString())
{
cbpddBuyUser.SelectedIndex = i;
}
}
cbpddBuyUser_SelectedIndexChanged(cbpddBuyUser, null);
}));
}
public void cbpddBuyUser_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbpddBuyUser.Text != "点击下拉切换" && cbpddBuyUser.SelectedItem != null)
{
BaseClass.PddUid = (cbpddBuyUser.SelectedItem as ComboboxItem).Value.ToString();
if (BaseClass.PddUid == "")
{
MessageBox.Show("未选择买手");
return;
}
PddBuyUser s = new PddBuyUser();
s.Set(BaseClass.PddUid, "", 0);
}
}
private void lb_Click(object sender, EventArgs e)
{
if (cbpddBuyUser.Text != "点击下拉切换")
{
DelBuyer(cbpddBuyUser.Text, (cbpddBuyUser.SelectedItem as ComboboxItem).Value.ToString(), 0);
}
}
private void cbtbBuyUser_SelectedIndexChanged(object sender, EventArgs e)
{
if (cbtbBuyUser.Text != "点击下拉切换" && cbtbBuyUser.SelectedItem != null)
{
BaseClass.TaoBaoUid = (cbtbBuyUser.SelectedItem as ComboboxItem).Value.ToString();
if (string.IsNullOrEmpty(BaseClass.TaoBaoUid))
{
MessageBox.Show("未选择买手");
return;
}
TaoBaoBuyUser s = new TaoBaoBuyUser();
s.SetTaoBao(BaseClass.TaoBaoUid, 1);
}
}
private void lbtaobao_Click(object sender, EventArgs e)
{
if (cbtbBuyUser.Text != "点击下拉切换")
{
DelBuyer(cbtbBuyUser.Text, (cbtbBuyUser.SelectedItem as ComboboxItem).Value.ToString(), 1);
}
}
private void cb1688BuyUser_SelectedIndexChanged(object sender, EventArgs e)
{
if (cb1688BuyUser.Text != "点击下拉切换" && cb1688BuyUser.SelectedItem != null)
{
BaseClass.ALUid = (cb1688BuyUser.SelectedItem as ComboboxItem).Value.ToString();
if (BaseClass.ALUid == "")
{
MessageBox.Show("未选择买手");
return;
}
Task.Run(() =>
{
ALBuyUser s = new ALBuyUser();
s.SetAL(BaseClass.ALUid, 3);
});
}
}
private void lb1688_Click(object sender, EventArgs e)
{
if (cb1688BuyUser.Text != "点击下拉切换")
{
DelBuyer(cb1688BuyUser.Text, (cb1688BuyUser.SelectedItem as ComboboxItem).Value.ToString(), 3);
}
}
public bool DelBuyer(string name, string uid, int site_id)
{
BuyNumber buynumber = new BuyNumber(site_id, uid, name);
if (site_id == 0)
{
new PddBuyUser().DelCookies(buynumber);
cbpddBuyUser.Items.RemoveAt(cbpddBuyUser.SelectedIndex);
cbpddBuyUser.Text = "点击下拉切换";
}
else if (site_id == 1)
{
new TaoBaoBuyUser().DelCookies(buynumber);
cbtbBuyUser.Items.Remove(cbtbBuyUser.SelectedIndex);
cbtbBuyUser.Text = "点击下拉切换";
}
else if (site_id == 3)
{
new ALBuyUser().DelCookies(buynumber);
cb1688BuyUser.Items.Remove(cb1688BuyUser.SelectedIndex);
cb1688BuyUser.Text = "点击下拉切换";
}
else if (site_id == 7)
{
GlobalConfig.LstPddPifaShop.RemoveAll(s => s.PddId == cmbPddPifaBuyUser.Text || s.PddShopName == cmbPddPifaBuyUser.Text);
cmbPddPifaBuyUser.Items.Remove(cmbPddPifaBuyUser.SelectedIndex);
cmbPddPifaBuyUser.Text = "点击下拉切换";
}
string code = "200";
// 拼多多批发店铺买手保存在本地,无需服务端记录
if (site_id != 7)
{
string url = BaseClass.Build29WxObjString("user_login_cookies&act=delete");
string data = UserLogin.GetSignaturex() + "&site_id=" + site_id + "&user_name=" + name;
string html = GetHtml.PostUtf8(url, data);
code = JObject.Parse(html)["code"].ToString();
}
ResetUserList();
if (code != "200")
{
MessageBox.Show("删除失败");
return false;
}
MessageBox.Show("删除成功");
return true;
}
#endregion
#region 订单插旗
/// <summary>
/// 插旗
/// </summary>
/// <param name="orderid">订单编号</param>
/// <param name="color">颜色</param>
/// <param name="type">1待拍单 2待发货 3已完成 4 售后</param>
/// <param name="shopid">店铺ID</param>
public void chaqi(string orderid, int color, string shopid)
{
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(x => x.ShopId == shopid);
if (shop != null)
{
DouyinApi apix = new DouyinApi(shop);
Dictionary<string, string> dic = new Dictionary<string, string>() { };
dic.Add("shop_order_id", orderid);
apix.JsonData = dic;
string htmljm = apix.GetOrderDetail();
//{"code":40003,"err_no":30002,"log_id":"202112081416140101330381040002D034","message":"access_token已过期","msg":"非法的参数","sub_code":"isv.access-token-expired","sub_msg":"access_token已过期"}
string code = JObject.Parse(htmljm)["code"].ToString();
string remark = "";
if (code == "10000")
{
try
{
remark = JObject.Parse(htmljm)["data"]["shop_order_detail"]["seller_words"].ToString();
}
catch (Exception ex)
{
}
}
DouYinOrderModel dyorder = null;
dyorder = CollectionClass.orderDataList.Find(x => x.order_id == orderid);
if (dyorder == null)
{
dyorder = CollectionClass.orderSenderDataList.Find(x => x.order_id == orderid);
if (dyorder == null)
{
dyorder = CollectionClass.successOrderDataList.Find(x => x.order_id == orderid);
}
}
if (dyorder != null)
{
if (!remark.Contains("||") && !remark.Contains("~"))
{
remark = remark + "||" + dyorder.buyer_mobile + "~" + dyorder.order_id_buy;
}
if (htmljm.Contains("access_token已过期"))
{
shop.ApiAuthStatus = "未授权";
if (string.IsNullOrEmpty(dyorder.send_order_error_msg))
dyorder.send_order_error_msg = "店铺未授权或授权过期";
}
}
dic = new Dictionary<string, string>() { };
dic.Add("order_id", orderid);
dic.Add("is_add_star", "true");
dic.Add("star", color.ToString());
dic.Add("remark", remark);
apix.JsonData = dic;
string htmls = apix.AddOrderRemark();
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + orderid);
sb.Append("&remark=" + remark);
sb.Append("&seller_star=" + color);
sb.Append("&is_update_order=0");//1修改状态0不修改状态
string upjmurl = BaseClass.Build29WxObjString("order&act=update");
string param = UserLogin.GetSignaturex() + sb.ToString();
string html = GetHtml.PostUtf8(upjmurl, param);
if (html == null || !html.Contains("\"code\":200"))
{
Thread.Sleep(5000);
param = UserLogin.GetSignaturex() + sb.ToString();
html = GetHtml.PostUtf8(upjmurl, param);
}
if (html == null || !html.Contains("\"code\":200"))
{
BaseMsgForm.ShowError("订单插旗失败,请手动插旗!");
}
}
}
#endregion
public string GetProvince(string pid)
{
string path = "temp/province";
//string url = "http://apiv4.yangkeduo.com/api/galen/v2/regions/" + pid + "?pdduid=1635501584" /*+ BaseClass.PddUid*/;
string url = "http://apiv4.yangkeduo.com/api/galen/v2/regions/" + pid + "?pdduid=" + PddUid;
string refere = BaseClass.PddMobileUrlx + "addresses.html";
string html = "", file = path + "/" + pid + ".king";
if (FileBase.Exists(file))
html = FileBase.ReadAllText(file, Encoding.UTF8);
if (string.IsNullOrEmpty(html) || (!string.IsNullOrEmpty(html) && html.Contains("错误")))
{
html = GetPostTaobaoHtml.UploadTaobao(url, refere, true);
if (html.Contains("错误"))
{
Thread.Sleep(5 * 1000);
html = GetPostTaobaoHtml.UploadTaobao(url, refere, true);
}
if (!html.Contains("错误"))
{
FileBase.WriteAllText(file, html, Encoding.UTF8);
}
Thread.Sleep(200);
}
return html;
}
private void panel1_MouseUp(object sender, MouseEventArgs e)
{
isMouseDown = false;
}
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseOffset = new Point(-e.X, -e.Y);
isMouseDown = true;
}
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (isMouseDown && this.Width < Screen.PrimaryScreen.WorkingArea.Width)
{
// 获取鼠标的位置
Point mousePos = MousePosition;
mousePos.Offset(mouseOffset.X, mouseOffset.Y);
Location = mousePos;
}
}
private void panel1_DoubleClick(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
this.WindowState = FormWindowState.Normal;
else
this.WindowState = FormWindowState.Maximized;
}
//网页读取订单
//private void panelEx1_Click(object sender, EventArgs e)
//{
// if (cefWebBrowser == null)
// return;
// if (panelEx1.Text == "显示")
// {
// panelEx1.Text = "隐藏";
// cefWebBrowser.BringToFront();
// }
// else
// {
// panelEx1.Text = "显示";
// cefWebBrowser.SendToBack();
// }
//}
private void pnlExportExcel_Click(object sender, EventArgs e)
{
switch (panelpe.Name)
{
case "pnlWaitingBuyOrder":
buyOrderListForm.outexcel();
break;
case "pnlWaitingDeliverGoods":
sendOrderForms.outexcel();
break;
case "pnlSuccess":
successOrderListForm.outexcel();
break;
case "pnlAfterSale":
break;
}
MessageBox.Show("导出完成");
}
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string text = dgvShop.Columns[e.ColumnIndex].HeaderText;
string name = dgvShop.Columns[e.ColumnIndex].Name;
if (text == "店铺账号")
{
string shopname = dgvShop.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
ShopLoginInfo shop = GlobalConfig.ShopLoginList.FirstOrDefault(x => x.LoginName == shopname);
ShopBrower shopBrower = new ShopBrower();
shopBrower.TitleText = "店铺后台";
shopBrower.shop = shop;
shopBrower.WindowState = FormWindowState.Maximized;
shopBrower.webUrl = "https://fxg.jinritemai.com/ffa/morder/order/list";
shopBrower.Show();
}
if (name == "colSelect")
{
dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value = !dgvShop.Rows[e.RowIndex].Cells["colSelect"].Value.ParseToBool();
}
}
#region 刷新cookies
public void ReflashCookies()
{
try
{
while (true)
{
if (string.IsNullOrEmpty(BaseClass.ChromeUserAgent))
{
Thread.Sleep(300);
}
Thread.Sleep(300);
if (InvokeRequired)
{
Invoke(new delegateView(GetCookies));
}
Thread.Sleep(300);
string cookie = "";
string jinbaocookie = "";
for (int i = 0; i < cookies.Count; i++)//初始化COOKIES缓存
{
var c = cookies[i];
if (c == null)
{
continue;
}
string mainDomain = GetHtml.GetMainDomain(c.Domain);
if (BaseClass.CookiesAll.ContainsKey(mainDomain))
{
if (BaseClass.CookiesAll[mainDomain].ContainsKey(c.Name))
BaseClass.CookiesAll[mainDomain][c.Name] = c.Value;
else
BaseClass.CookiesAll[mainDomain].Add(c.Name, c.Value);
}
else
{
BaseClass.CookiesAll.Add(mainDomain, new Dictionary<string, string>());
BaseClass.CookiesAll[mainDomain].Add(c.Name, c.Value);
}
//if (!c.Domain.Contains("pinduoduo.com"))
// continue;
cookie += c.Name + "=" + c.Value + "; ";
if (c.Domain.Contains("pinduoduo.com"))
{
jinbaocookie += c.Name + "=" + c.Value + "; ";
}
}
BaseClass.ChromeCookies = cookie;
BaseClass.ChromeJinBaoCookies = jinbaocookie;
foreach (KeyValuePair<string, Dictionary<string, string>> co in BaseClass.CookiesAll)//同步到系统
{
string cook = "";
foreach (KeyValuePair<string, string> c in co.Value)
{
if (c.Key == "x5sec")
{
if (!string.IsNullOrEmpty(c.Value))
{
cook += c.Key + "=" + c.Value + "; ";
}
else if (!string.IsNullOrEmpty(BaseClass.x5Sec))
{
cook += c.Key + "=" + BaseClass.x5Sec + "; ";
}
else
{
cook += c.Key + "=" + c.Value + "; ";
}
}
else
{
cook += c.Key + "=" + c.Value + "; ";
}
}
if (BaseClass.CookiesAllString.ContainsKey(co.Key))
BaseClass.CookiesAllString[co.Key] = cook;
else
BaseClass.CookiesAllString.Add(co.Key, cook);
}
string mainDomainx = "yangkeduo.com";
string tbDomainx = "taobao.com";
string alDomainx = "1688.com";
if (BaseClass.CookiesAll.ContainsKey(mainDomainx) && BaseClass.CookiesAll[mainDomainx].ContainsKey("pdd_user_id"))
{
BuyForms.BuyBrower.Uid = BaseClass.CookiesAll[mainDomainx]["pdd_user_id"];
BuyOrderForms.PddUid = BaseClass.CookiesAll[mainDomainx]["pdd_user_id"];
BaseClass.PddUid = BaseClass.CookiesAll[mainDomainx]["pdd_user_id"];
}
if (BaseClass.CookiesAll.ContainsKey(tbDomainx) && BaseClass.CookiesAll[tbDomainx].ContainsKey("aui"))
{
BuyForms.BuyBrower.Uid = BaseClass.CookiesAll[tbDomainx]["aui"];
BuyOrderForms.PddUid = BaseClass.CookiesAll[tbDomainx]["aui"];
BaseClass.TaoBaoUid = BaseClass.CookiesAll[tbDomainx]["aui"];
}
if (BaseClass.CookiesAll.ContainsKey(alDomainx) && BaseClass.CookiesAll[alDomainx].ContainsKey("unb"))
{
BuyForms.BuyBrower.Uid = BaseClass.CookiesAll[alDomainx]["unb"];
BuyOrderForms.PddUid = BaseClass.CookiesAll[alDomainx]["unb"];
BaseClass.ALUid = BaseClass.CookiesAll[alDomainx]["unb"];
}
Thread.Sleep(100);
}
}
catch (Exception)
{
}
}
/// <summary>
/// 获取cookies
/// </summary>
private void GetCookies()
{
cookies.Clear();
var cookieManager = Cef.GetGlobalCookieManager();
CookieVisitor visitor = new CookieVisitor();
visitor.SendCookie += visitor_SendCookie;
cookieManager.VisitAllCookies(visitor);
}
public List<CefSharp.Cookie> cookies = new List<CefSharp.Cookie>();
/// <summary>
/// 加载完成时,重设cookies
/// </summary>
/// <param name="obj"></param>
private void visitor_SendCookie(CefSharp.Cookie obj)
{
cookies.Add(obj);
}
#endregion
private void pbseting_Click(object sender, EventArgs e)
{
SetForm setf = new SetForm();
setf.ShowDialog();
}
List<DevComponents.DotNetBar.Controls.CheckBoxX> list_cb = null;
private void cbAfterSale_CheckedChanged(object sender, EventArgs e)
{
list_cb = new List<DevComponents.DotNetBar.Controls.CheckBoxX>() {
checkBoxX1,checkBoxX2,checkBoxX3
};
string afterSalestatus = ",";
foreach (var item in list_cb)
{
if (item.Checked == true)
{
afterSalestatus += item.Text + ",";
}
}
afterSaleOrderListForm.AfterSaleWhere(afterSalestatus);
}
private void panel1_DoubleClick_1(object sender, EventArgs e)
{
if (this.Width == Screen.PrimaryScreen.WorkingArea.Width)
{
this.Width = 1325;
this.Height = 668;
splitMain.SplitterDistance = 107;
this.Top = DefaultTop;
this.Left = DefaultLeft;
}
else
{
// this.WindowState = FormWindowState.Maximized;
SetFormMax(this);
splitMain.SplitterDistance = 107;
}
}
public virtual void SetFormMax(Form frm)
{
frm.Top = 0;
frm.Left = 0;
frm.Width = Screen.PrimaryScreen.WorkingArea.Width;
frm.Height = Screen.PrimaryScreen.WorkingArea.Height;
}
private void cbsuccess_CheckedChanged(object sender, EventArgs e)
{
list_cb = new List<DevComponents.DotNetBar.Controls.CheckBoxX>() {
cbNotSigned,cbSignedIn,cbcancel
};
string successOrderstatus = ",";
foreach (var item in list_cb)
{
if (item.Checked == true)
{
successOrderstatus += item.Text + ",";
}
}
successOrderListForm.successOrderWhere(successOrderstatus);
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
public void skuimg(Bitmap skuImg)
{
pnsku.BringToFront();
pcskuimg.Image = skuImg;
pnsku.Visible = true;
}
public void skuimghide()
{
pnsku.Visible = false;
}
private void tborder_Click(object sender, EventArgs e)
{
}
private void pnlFactoryOrder_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtFactoryExportProductId.Text))
{
FactoryExportForm ff = new FactoryExportForm();
ff.productIdList = this.txtFactoryExportProductId.Text.Split(new string[] { ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
ff.ShowDialog();
}
}
public BuyForms.BuyBrower buyBrower1 = new BuyForms.BuyBrower();
private void pnlLoginBuyin_Click(object sender, EventArgs e)
{
buyBrower1.webtype = 99;
buyBrower1.Width = 1280;
buyBrower1.Height = 768;
buyBrower1.webUrl = "https://buyin.jinritemai.com/dashboard/merch-picking-hall";
//buyBrower1.webUrl = "https://buyin.jinritemai.com/mpa/account/login?log_out=1&type=24&target_url=/dashboard/merch-picking-hall";
buyBrower1.Show();
buyBrower1.BuyBrower_Load(null, null);
}
int lbvClickTimes = 0;
private void lbv_Click(object sender, EventArgs e)
{
}
private void lbv_MouseDown(object sender, MouseEventArgs e)
{
if (cefJuLiangWebBrowser != null)
{
if (lbvClickTimes == 10)
{
cefJuLiangWebBrowser.BringToFront();
lbvClickTimes = 0;
}
else
{
lbvClickTimes += 1;
cefJuLiangWebBrowser.SendToBack();
}
}
}
private void chkHasLogisticsThenSend_CheckedChanged(object sender, EventArgs e)
{
GlobalConfig.SystemSettings.IsHasLogisticsThenSend = chkHasLogisticsThenSend.Checked;
StartUp.SaveSystemSettings();
}
public void RefreshTabaoAliCookies()
{
if (cefWebBrowser == null)
{
cefTaoBaoAliRefreshWebBrowser = CEFBrowser.CreateChromiumWebBrowser("about:blank", false);
cefTaoBaoAliRefreshWebBrowser.KeyboardHandler = new KeyboardHandler();
cefTaoBaoAliRefreshWebBrowser.FrameLoadEnd += TaoBaoAliRefreshWebBrowser_FrameLoadEnd;
cefTaoBaoAliRefreshWebBrowser.Dock = DockStyle.Fill;
//var t = CEFBrowser.SetCookieAsync("jinritemai.com", shop.Cookies, cefWebBrowser.RequestContext.GetCookieManager(null));
splitMain.Panel2.Controls.Add(cefTaoBaoAliRefreshWebBrowser);
cefTaoBaoAliRefreshWebBrowser.SendToBack();
}
DateTime nextRefreshTime = DateTime.Now.AddSeconds(10);
Task.Run(() =>
{
while (true)
{
Thread.Sleep(10);
if (cefTaoBaoAliRefreshWebBrowser == null || !cefTaoBaoAliRefreshWebBrowser.IsBrowserInitialized)
continue;
if (DateTime.Now < nextRefreshTime)
continue;
nextRefreshTime = DateTime.Now.AddMinutes(12);
try
{
// 淘宝cookie刷新
var keys = TaoBaoBuyUser.buyUserCookies.Select(s => s.Key);
foreach (var key in keys)
{
continue;
if (TaoBaoBuyUser.buyUserCookies.Keys.Contains(key))
{
var user = TaoBaoBuyUser.buyUserCookies[key];
CEFBrowser.DeleteCookie(cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
CEFBrowser.SetCookieAsync(Work.Helper.CEFHelper.CefCookieToCookieStr(user.Cookies), cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
cefTaoBaoAliRefreshWebBrowser.Load("https://buyertrade.taobao.com/trade/itemlist/list_bought_items.htm");
while (cefTaoBaoAliRefreshWebBrowser.IsLoading)
{
Thread.Sleep(1000);
}
Thread.Sleep(5000);
Task<string> task = cefTaoBaoAliRefreshWebBrowser.GetBrowser().MainFrame.GetSourceAsync();
task.Wait(10000);
if (task.Result.Contains("所有订单"))
{
user.Cookies = CEFBrowser.GetCookieList("taobao.com", cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
Thread.Sleep(1000);
}
}
Thread.Sleep(1000);
}
// 阿里cookie刷新
keys = ALBuyUser.buyUserCookies.Select(s => s.Key);
foreach (var key in keys)
{
if (ALBuyUser.buyUserCookies.Keys.Contains(key))
{
var user = ALBuyUser.buyUserCookies[key];
CEFBrowser.DeleteCookie(cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
CEFBrowser.SetCookieAsync(Work.Helper.CEFHelper.CefCookieToCookieStr(user.Cookies), cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
cefTaoBaoAliRefreshWebBrowser.Load("https://work.1688.com/home/buyer.htm?_path_=buyer2017Base/2017buyerbase_trade/buyList");
while (cefTaoBaoAliRefreshWebBrowser.IsLoading)
{
Thread.Sleep(1000);
}
Thread.Sleep(5000);
Task<string> task = cefTaoBaoAliRefreshWebBrowser.GetBrowser().MainFrame.GetSourceAsync();
task.Wait(10000);
if (task.Result.Contains("我的阿里"))
{
user.Cookies = CEFBrowser.GetCookieList("1688.com", cefTaoBaoAliRefreshWebBrowser.RequestContext.GetCookieManager(null));
user.Cookies = user.Cookies.Where(c => c.Domain.StartsWith(".1688")).ToList();
Thread.Sleep(1000);
}
}
Thread.Sleep(1000);
}
}
catch
{
}
}
});
}
private void TaoBaoAliRefreshWebBrowser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e)
{
}
int lbnameClickTimes = 0;
private void lbname_Click(object sender, EventArgs e)
{
}
private void lbname_MouseDown(object sender, MouseEventArgs e)
{
if (cefTaoBaoAliRefreshWebBrowser != null)
{
if (lbnameClickTimes == 10)
{
cefTaoBaoAliRefreshWebBrowser.BringToFront();
lbnameClickTimes = 0;
}
else
{
lbnameClickTimes += 1;
cefTaoBaoAliRefreshWebBrowser.SendToBack();
}
}
}
/// <summary>
/// 批量设置订单完成
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void pnlSetSendOrder_Click(object sender, EventArgs e)
{
pnlSetSendOrder.Enabled = false;
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Title = "选择文件";
fileDialog.Filter = "All files (*.*)|*.*";
fileDialog.FilterIndex = 1;
fileDialog.RestoreDirectory = true;
if (fileDialog.ShowDialog() != DialogResult.OK)
{
pnlSetSendOrder.Enabled = true;
return;
}
ProgressForm pf = new ProgressForm();
pf.SetText("正在设置订单");
pf.Show();
pf.TopMost = true;
Task.Run(() =>
{
string[] arrTmp = FileBase.ReadAllLines(fileDialog.FileName, FileBase.GetFileEncoding(fileDialog.FileName));
if (arrTmp == null || arrTmp.Length == 0)
return;
for (int i = 0; i < arrTmp.Length; i++)
{
try
{
StringBuilder sb = new StringBuilder();
sb.Append("&order_id=" + arrTmp[i]);
sb.Append("&order_status_buy=" + 0);
sb.Append("&is_update_order=1"); // 1修改状态0不修改状态
string upjmurl = BaseClass.Build29WxObjString("order&act=update");
string html = GetHtml.PostUtf8(upjmurl, UserLogin.GetSignaturex() + sb.ToString());
string code = JObject.Parse(html)["code"].ToString();
Invoke(new Action(() =>
{
pf.SetText("已设置订单:" + (i + 1) + "/" + arrTmp.Length);
pf.SetProGress(i + 1, arrTmp.Length);
}));
}
catch
{
}
Thread.Sleep(50);
}
Thread.Sleep(500);
Invoke(new Action(() =>
{
pf.SetText("设置完成,3秒后自动退出");
}));
Thread.Sleep(3000);
Invoke(new Action(() =>
{
pf.Close();
pnlSetSendOrder.Enabled = true;
}));
});
}
private void pnlEditTableHeaders_Click(object sender, EventArgs e)
{
switch (panelpe.Name)
{
case "pnlWaitingBuyOrder":
buyOrderListForm.SetDgvHeaders();
break;
case "pnlWaitingDeliverGoods":
sendOrderForms.SetDgvHeaders();
break;
case "pnlSuccess":
successOrderListForm.SetDgvHeaders();
break;
case "pnlAfterSale":
afterSaleOrderListForm.SetDgvHeaders();
break;
}
}
private void button1_Click(object sender, EventArgs e)
{
//3513538240521087498
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == "20445141");
if (shop == null)
return;
//\"shop_order_list\":[]
Dictionary<string, string> dic = new Dictionary<string, string>() { };
dic.Add("size", "1");
dic.Add("page", "1");
dic.Add("product", "3491447318656455133");
dic["create_time_start"] = BaseClass.DateTimeToTimestampSeconds(DateTime.Now.AddDays(-1)).ToString();
dic.Add("create_time_end", BaseClass.DateTimeToTimestampSeconds(DateTime.Now).ToString());
dic.Add("order_by", "create_time");
//if (status > 0)
// dic.Add("combine_status", "{\"order_status\":\"" + status + "\"}");
//dic.Add("combine_status", "{\"main_status\":2}");
DouyinApi apix = new DouyinApi(shop);
apix.JsonData = dic;
BaseClass.ShopId = shop.ShopId;
BaseClass.ShopName = shop.ShopAccount;
string html = apix.GetOrderList();
for (int i = 0; i < 5 && html.Contains("系统繁忙,请稍后重试"); i++)
{
Thread.Sleep(1000);
html = apix.GetOrderList();
}
}
private void lblContactSupport_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
SupportQrCodeForm qrForm = new SupportQrCodeForm();
qrForm.ShowDialog();
}
private void chkReadFinish_CheckedChanged(object sender, EventArgs e)
{
AfterSaleOrderListForm.IsReadFinishedRefund = this.chkReadFinishedRefund.Checked;
ConfigHelper.SaveConfig("read_finished_refund", AfterSaleOrderListForm.IsReadFinishedRefund);
afterSaleOrderListForm.SetFinishOrderVisible();
}
private void chkReadFinishedRefund_Click(object sender, EventArgs e)
{
}
private void pnlSetReceiveAddress_Click(object sender, EventArgs e)
{
TransitAddressForm f = new TransitAddressForm();
f.ShowDialog();
}
private void btnLoginPddPifa_Click(object sender, EventArgs e)
{
PddShopLoginForm shopBrower = new PddShopLoginForm();
shopBrower.isPifaLogin = true;
var pddPifaUser = GlobalConfig.LstPddPifaShop.FirstOrDefault(s => s.PddId == cmbPddPifaBuyUser.Text || s.PddShopName == cmbPddPifaBuyUser.Text);
if (pddPifaUser != null)
shopBrower.pddShop = pddPifaUser;
shopBrower.Show();
}
private void lbDelPddPifa_Click(object sender, EventArgs e)
{
if (cmbPddPifaBuyUser.Text != "点击下拉切换")
{
DelBuyer(cmbPddPifaBuyUser.Text, (cmbPddPifaBuyUser.SelectedItem as ComboboxItem).Value.ToString(), 7);
}
}
private void chkUsePddPifa_CheckedChanged(object sender, EventArgs e)
{
GlobalConfig.SystemSettings.IsUsePddPifa = chkUsePddPifa.Checked;
StartUp.SaveSystemSettings();
if (chkUsePddPifa.Checked)
chkUseMultiBuyer.Checked = false;
}
private void chkUseMultiBuyer_CheckedChanged(object sender, EventArgs e)
{
GlobalConfig.SystemSettings.IsUseMultiBuyer = chkUseMultiBuyer.Checked;
StartUp.SaveSystemSettings();
if (chkUseMultiBuyer.Checked)
chkUsePddPifa.Checked = false;
}
private void pnlSetMutliBuyer_Click(object sender, EventArgs e)
{
PddMultiBuyerForm f = new PddMultiBuyerForm();
f.ShowDialog();
}
private void splitMain_Panel2_Paint(object sender, PaintEventArgs e)
{
}
private void btn电子面单测试_Click(object sender, EventArgs e)
{
foreach (ShopLoginInfo shop in GlobalConfig.ShopLoginList)
{
if (shop.ShopAccount == "开箱小店")
{
DouyinApi api = new DouyinApi(shop);
api.CreateOrder();
}
}
}
private void button2_Click(object sender, EventArgs e)
{
//flowLayoutPanel2.BringToFront();
//Task.Run(() =>
//{
// for (int i = 0; i < 10000; i++)
// {
// Invoke(new Action(() => { this.flowLayoutPanel2.Controls.Add(new MyProSkuItemsControl()); }));
// if (i % 100 == 0)
// Thread.Sleep(1);
// }
//});
}
}
}