支持淘宝拍单

This commit is contained in:
wule committed 2026-10-13 18:24:06 +08:00
1 parent 5fb42e4d34
commit 41fa98dc2d
12 files changed
+634 -278

No files matched your search

@@ -34,6 +34,17 @@
Orientation="Vertical"
VerticalSpacing="2">
<WrapPanel x:Name="wpPddBuyer">
<CheckBox
x:Name="chkPddBuyerLogin"
Margin="2,2,2,2"
HorizontalAlignment="Left"
VerticalAlignment="Center"
VerticalContentAlignment="Center"
d:IsChecked="True"
BorderBrush="{StaticResource mainColorBrush}"
Click="chkBuyerLogin_Click"
FontSize="12"
IsChecked="True" />
<ComboBox
x:Name="cmbPddBuyer"
Grid.Column="1"
@@ -108,7 +119,18 @@
<WrapPanel
x:Name="wpTaobaoBuyer"
d:Visibility="Visible"
Visibility="Collapsed">
Visibility="Visible">
<CheckBox
x:Name="chkTbBuyerLogin"
Margin="2,2,2,2"
HorizontalAlignment="Left"
VerticalAlignment="Center"
VerticalContentAlignment="Center"
BorderBrush="{StaticResource mainColorBrush}"
Click="chkBuyerLogin_Click"
FontSize="12"
IsChecked="False" />
<ComboBox
x:Name="cmbTaobaoBuyer"
Grid.Column="1"
@@ -189,7 +211,8 @@
c:DebugVisibility.Enable="True"
d:Visibility="Visible"
Click="btnSwitch_Click"
Style="{StaticResource BasePageButtonStyle}">
Style="{StaticResource BasePageButtonStyle}"
Visibility="Collapsed">
<TextBlock
Grid.Column="2"
Margin="0,0,0,1"
@@ -149,9 +149,10 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
}
int buyZIndex = 2;
private void Image_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (wpPddBuyer.Visibility == Visibility.Visible)
if (/*wpPddBuyer.Visibility == Visibility.Visible*/ chkPddBuyerLogin.IsChecked == true)
{
if (MainWindow.Instance.gridTbBuyerOrderReadCtrl.Visibility != Visibility.Visible)
MainWindow.Instance.gridTbBuyerOrderReadCtrl.Visibility = Visibility.Visible;
@@ -159,10 +160,12 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
Panel.SetZIndex(MainWindow.Instance.gridTbBuyerOrderReadCtrl, 1);
else
Panel.SetZIndex(MainWindow.Instance.gridTbBuyerOrderReadCtrl, -1);
Panel.SetZIndex(MainWindow.Instance.pddBuyerOrderReadCtrl, buyZIndex++);
MainWindow.Instance.pddBuyerOrderReadCtrl.Visibility = Visibility.Visible;
MainWindow.Instance.tbBuyerOrderReadCtrl.Visibility = Visibility.Collapsed;
MainWindow.Instance.tbBuyerOrderReadCtrl.Visibility = Visibility.Visible;
}
else if (wpTaobaoBuyer.Visibility == Visibility.Visible)
else if (/*wpTaobaoBuyer.Visibility == Visibility.Visible*/ chkTbBuyerLogin.IsChecked == true)
{
if (MainWindow.Instance.gridTbBuyerOrderReadCtrl.Visibility != Visibility.Visible)
MainWindow.Instance.gridTbBuyerOrderReadCtrl.Visibility = Visibility.Visible;
@@ -170,7 +173,9 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
Panel.SetZIndex(MainWindow.Instance.gridTbBuyerOrderReadCtrl, 1);
else
Panel.SetZIndex(MainWindow.Instance.gridTbBuyerOrderReadCtrl, -1);
MainWindow.Instance.pddBuyerOrderReadCtrl.Visibility = Visibility.Collapsed;
Panel.SetZIndex(MainWindow.Instance.tbBuyerOrderReadCtrl, buyZIndex++);
MainWindow.Instance.pddBuyerOrderReadCtrl.Visibility = Visibility.Visible;
MainWindow.Instance.tbBuyerOrderReadCtrl.Visibility = Visibility.Visible;
}
else
@@ -318,5 +323,41 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
}
}
private void chkBuyerLogin_Click(object sender, RoutedEventArgs e)
{
if (sender == chkPddBuyerLogin)
{
chkPddBuyerLogin.IsChecked = true;
chkTbBuyerLogin.IsChecked = false;
GlobalConfig.CurrentBuyPlatform = "pdd";
foreach (var order in GlobalConfig.lstOrder)
{
//OrderListCtrl.InitOrderObservableProp(order);
foreach (var orderItem in order.orderItems)
{
orderItem.UpdateOrderItemBuyButton();
orderItem.SetAbnormalAndDirectBtnVisibility();
}
}
}
else
{
chkPddBuyerLogin.IsChecked = false;
chkTbBuyerLogin.IsChecked = true;
GlobalConfig.CurrentBuyPlatform = "tb";
foreach (var order in GlobalConfig.lstOrder)
{
//OrderListCtrl.InitOrderObservableProp(order);
foreach (var orderItem in order.orderItems)
{
orderItem.UpdateOrderItemBuyButton();
orderItem.SetAbnormalAndDirectBtnVisibility();
}
}
}
}
}
}
@@ -12,6 +12,7 @@
Height="768"
MinWidth="800"
MinHeight="600"
d:Height="800"
Loaded="taobaoBuyOrderCtrl_Loaded"
mc:Ignorable="d">
<UserControl.Resources>
@@ -64,11 +65,12 @@
Background="White"
ClipToBounds="True">
<TextBlock
Margin="0,-140,0,0"
Padding="30,20"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Panel.ZIndex="99"
d:Text="TextBlock"
d:Text="ErrorMsg"
Background="#C0FFFFFF"
FontSize="20"
Foreground="Red"
@@ -76,6 +78,20 @@
Text="{Binding ErrorMsg}"
TextWrapping="Wrap"
Visibility="{Binding ErrorMsg, Converter={StaticResource HasTextVisibility}}" />
<TextBlock
Margin="0,0,0,0"
Padding="30,20"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Panel.ZIndex="99"
d:Text="TransitErrorMsg"
Background="#C0FFFFFF"
FontSize="20"
Foreground="Red"
IsHitTestVisible="False"
Text="{Binding TransitErrorMsg}"
TextWrapping="Wrap"
Visibility="{Binding TransitErrorMsg, Converter={StaticResource HasTextVisibility}}" />
</Grid>
<GridSplitter
Grid.Column="1"
@@ -98,6 +114,18 @@
Orientation="Vertical"
VerticalSpacing="4">
<Image
x:Name="imgOrderItem"
Grid.Row="1"
Grid.Column="0"
Width="100"
Height="100"
Margin="0,2,8,2"
VerticalAlignment="Top"
Cursor="Hand"
MouseDown="imgOrderItem_MouseDown"
Source="{Binding Img}" />
<TextBlock FontSize="14" FontWeight="Bold">店铺商品信息:</TextBlock>
<wpf:TitleContent
x:Name="tcShopGoodsName"
@@ -362,6 +390,19 @@
Content="重新关联商品"
FontSize="12"
Style="{StaticResource BasePageButtonLightStyle}" />
<Button
x:Name="btnCopyCurrentFullAddress"
Grid.Column="1"
Height="20"
MinWidth="48"
Margin="90,0"
Padding="4,0"
HorizontalAlignment="Left"
Command="{Binding CopyCurrentFullAddressCommand}"
Content="复制当前完整中转地址"
FontSize="12"
Visibility="{Binding CurrentFullTransitAddress,Converter={StaticResource HasTextVisibility}}"
Style="{StaticResource BasePageButtonLightStyle}" />
<Button
x:Name="btnManualUpdateBuyOrder"
Grid.Column="1"
@@ -375,6 +416,18 @@
FontSize="12"
Style="{StaticResource BasePageButtonStyle}" />
</Grid>
<TextBlock
Width="auto"
Padding="0,3"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Panel.ZIndex="99"
Background="#C0FFFFFF"
FontSize="16"
Foreground="#EE0000"
IsHitTestVisible="False"
Text=" 淘宝网页跳转速度较慢,请耐心等待"
TextWrapping="Wrap" />
</wpf:SpacingStackPanel>
</wpf:SpacingStackPanel>
@@ -77,4 +77,18 @@ public partial class TaobaoBuyOrderCtrl : UserControl
{
}
private void imgOrderItem_MouseDown(object sender, MouseButtonEventArgs e)
{
if (imgOrderItem.Width == 100)
{
imgOrderItem.Width = 300;
imgOrderItem.Height = 300;
}
else
{
imgOrderItem.Width = 100;
imgOrderItem.Height = 100;
}
}
}
@@ -9,6 +9,7 @@ using AllBase.Model.DBModel;
using AllBase.Model.MvvmBaseClasses;
using AllBase.Model.Result;
using CefSharp;
using CefSharp.DevTools.IO;
using CefSharp.Handler;
using CefSharp.Wpf;
using NaiBa.Util.Extension;
@@ -24,6 +25,7 @@ using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media.Imaging;
using TemuKJD.ToolForms;
using Work;
using Work._29Tools.BLL;
@@ -32,6 +34,7 @@ using Work.BaseForms;
using WxOrder.Framework.Commons;
using WxOrder.Framework.Helpers;
using static AllBase.DouYinModel.Result.DouOrderListInfo;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ListView;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
using static WPFCommon.Interop.InteropValues;
@@ -66,6 +69,10 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
string mapSkuIdTmp = null;
string sendProvince = null;
pddFrontGoods3Lite pddFrontGoodsLite = null;
/// <summary>
/// 自动读取拍单状态时,网页资源更新,可能会刷新多次,防止重复调用,记录状态只允许调用一次
/// </summary>
private bool HasAutoUpdateBuyStatus = false;
/// <summary>
/// 直发direct 中转transit
@@ -100,6 +107,16 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
get { return this.GetValue(x => x.ErrorMsg); }
set { this.SetValue(x => x.ErrorMsg, value); }
}
public string TransitErrorMsg
{
get { return this.GetValue(x => x.TransitErrorMsg); }
set { this.SetValue(x => x.TransitErrorMsg, value); }
}
public string CurrentFullTransitAddress
{
get { return this.GetValue(x => x.CurrentFullTransitAddress); }
set { this.SetValue(x => x.CurrentFullTransitAddress, value); }
}
public Visibility BuyInfoVisivility
{
get { return this.GetValue(x => x.BuyInfoVisivility); }
@@ -264,6 +281,12 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
set { this.SetValue(x => x.cmbTransitWarehouseVal, value); }
}
public BitmapImage Img
{
get { return this.GetValue(x => x.Img); }
set { this.SetValue(x => x.Img, value); }
}
#endregion
#region 命令
@@ -276,6 +299,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
/// <summary> 重新关联 </summary>
public ICommand ReMapCommand { get; }
public ICommand CopyCurrentFullAddressCommand { get; }
/// <summary> 确认拍单 /// </summary>
public ICommand ManualUpdateBuyOrderCommand { get; }
/// <summary> 确认商品关联 </summary>
@@ -298,6 +322,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
CopyUserNameCommand = new DelegateCommand(CopyUserName);
CopyPasswordCommand = new DelegateCommand(CopyPassword);
ReMapCommand = new DelegateCommand(ReMap);
CopyCurrentFullAddressCommand = new DelegateCommand(CopyCurrentFullAddress);
ManualUpdateBuyOrderCommand = new DelegateCommand(ManualUpdateBuyOrder);
UpdateTransitWarehouseCommand = new DelegateCommand(UpdateTransitWarehouse);
@@ -322,6 +347,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
BuyInfoVisivility = Visibility.Collapsed;
MapInfoVisivility = Visibility.Visible;
}
Task.Run(() =>
{
Img = AllBase.ImageBuild.LoadBitmipImageFromUrl(orderItem.thumb_img);
});
}
/// <summary>
@@ -535,10 +565,23 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
// 打开窗口即进入商品页面一定是拍单,则下一步点击立即购买,随后进入地址修改页面(不能一开始就进入,会掉cookie)
if (Address.StartsWith("https://item.taobao.com/item.htm?id="))
if (Address.StartsWith("https://item.taobao.com/item.htm?id=") || Address.StartsWith("https://detail.tmall.com/item.htm?id="))
{
if (this.BuyType == "transit")
TransitErrorMsg = "中转仓地址尚未匹配,请等待匹配成功后方可付款!";
try
{
if (transitWarehouse != null && !txtSourceCodeVal.IsNullOrEmpty())
{
var name = TransitWaybillHelper.LastName[Randomx.GetId(TransitWaybillHelper.LastName.Count)] + (Randomx.GetId(2) == 1 ? "先生" : "女士");
var mobile = TransitWaybillHelper.MobileHead[Randomx.GetId(TransitWaybillHelper.MobileHead.Count)] + Randomx.GetNumber(8);
var addressSubValue = Randomx.GetId(1, 35) + Randomx.GetId(1, 9).ToString().PadLeft(2, '0') + "室" + txtSourceCodeVal;
var detail = transitWarehouse.TransDetail + addressSubValue;
var address = name + mobile + transitWarehouse.TransFullAddress + addressSubValue;
CurrentFullTransitAddress = address;
}
// 点击 立即购买/领券购买
await AutoClickBuyButton();
@@ -546,7 +589,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
//await AutoClickManageAddressButton();
// 自动修改地址 进入地址页面
//Thread.Sleep(Randomx.GetId(500, 1000));
Thread.Sleep(Randomx.GetId(500, 1000));
CefWebBrowser.Load("https://i.taobao.com/my_itaobao/receiver-address-pc");
await AutoChangeAddress();
}
@@ -562,11 +605,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
private async Task AutoClickBuyButton()
{
for (int i = 0; i < 10 && !Address.StartsWith("https://item.taobao.com/item.htm?id="); i++)
for (int i = 0; i < 20 && !Address.StartsWith("https://item.taobao.com/item.htm?id=") && !Address.StartsWith("https://detail.tmall.com/item.htm?id="); i++)
{
Thread.Sleep(500);
}
if (!Address.StartsWith("https://item.taobao.com/item.htm?id="))
if (!Address.StartsWith("https://item.taobao.com/item.htm?id=") && !Address.StartsWith("https://detail.tmall.com/item.htm?id="))
throw new Exception("当前不在商品界面!");
var client = CefWebBrowser.GetDevToolsClient();
@@ -644,12 +687,12 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
sb.Append(" return 'failed';\r\n");
sb.Append("})();");
var jsStr = sb.ToString();
for (int i = 0; i < 20 && !Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"); i++)
for (int i = 0; i < 30 && !Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml") && !Address.StartsWith("https://buy.tmall.com/order/confirm_order.htm"); i++)
{
var r = await client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
Thread.Sleep(500);
}
if (!Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"))
if (!Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml") && !Address.StartsWith("https://buy.tmall.com/order/confirm_order.htm"))
throw new Exception("购买按钮不存在或点击失败!");
//滑块完成验证
@@ -677,7 +720,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
break;
}
if (!Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"))
if (!Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml") && !Address.StartsWith("https://buy.tmall.com/order/confirm_order.htm"))
throw new Exception("立即购买点击失败!");
Thread.Sleep(500);
@@ -699,11 +742,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
private async Task AutoClickManageAddressButton()
{
for (int i = 0; i < 10 && !Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"); i++)
for (int i = 0; i < 10 && !Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml") && !Address.StartsWith("https://buy.tmall.com/order/confirm_order.htm"); i++)
{
Thread.Sleep(500);
}
if (!Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"))
if (!Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml") && !Address.StartsWith("https://buy.tmall.com/order/confirm_order.htm"))
throw new Exception("当前不在结算界面!");
var client = CefWebBrowser.GetDevToolsClient();
@@ -817,6 +860,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
detail = transitWarehouse.TransDetail + addressSubValue;
address = name + mobile + transitWarehouse.TransFullAddress + addressSubValue;
CurrentFullTransitAddress = address;
if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(mobile) || string.IsNullOrEmpty(address))
throw new Exception("地址获取失败!");
}
@@ -1031,11 +1076,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
// 7.确定已回到结算页面
await client.Runtime.EvaluateAsync("history.go(-1);", null, true, null, null, true, null, true);
for (int i = 0; i < 10 && !Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"); i++)
for (int i = 0; i < 10 && !Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml") && !Address.StartsWith("https://buy.tmall.com/order/confirm_order.htm"); i++)
{
Thread.Sleep(500);
}
if (!Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml"))
if (!Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml") && !Address.StartsWith("https://buy.tmall.com/order/confirm_order.htm"))
throw new Exception("当前不在结算界面!");
// 8.确定结算页面地址是最新中转仓地址
@@ -1080,7 +1125,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
// https://item.taobao.com/item.htm?id=756295486950&skuId=5216824841290
if (currentUrl.Contains("item.taobao.com/item.htm?") && currentUrl.Contains("id") && currentUrl.Contains("skuId"))
if ((currentUrl.Contains("item.taobao.com/item.htm?") || currentUrl.Contains("detail.tmall.com/item.htm?")) && currentUrl.Contains("id") && currentUrl.Contains("skuId"))
{
if (IsMappingGoods && buymapSkuInfo?.map_skus != null)
{
@@ -1101,6 +1146,54 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
SetBuyMapValues();
}
}
// 放到资源更新时候调用,防止触发两次
// "https://web.m.taobao.com/app/tbpc-trade/tbpc-pay-success/home"
if (currentUrl.Contains("app/tbpc-trade/tbpc-pay-success/home") && currentUrl.Contains("?biz_order_id=" + this.txtBuyOrderIdVal))
{
// 拍单后更新状态
if (!HasAutoUpdateBuyStatus)
{
HasAutoUpdateBuyStatus = true;
this.ManualUpdateBuyOrder();
}
}
if (this.BuyType == "transit" && (Address.StartsWith("https://buy.taobao.com/auction/buy_now.jhtml") || Address.StartsWith("https://buy.tmall.com/order/confirm_order.htm")))
{
Task.Run(() =>
{
// 确定结算页面地址是最新中转仓地址
var client = CefWebBrowser.GetDevToolsClient();
try
{
var jsRst = "failed";
var sb = new StringBuilder();
sb.Append("(function() {\r\n");
sb.Append(" var uiElements = document.getElementsByTagName('div');\r\n");
sb.Append(" for (i = 0; i < uiElements.length; i++) {\r\n");
sb.Append(" var uiElement = uiElements[i];\r\n");
sb.Append(" if (uiElement.innerHTML.indexOf('" + txtSourceCodeVal + "') >= 0) {\r\n");
sb.Append(" return 'success';\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
sb.Append(" return 'failed';\r\n");
sb.Append("})();");
var jsStr = sb.ToString();
for (int i = 0; i < 20 && jsRst != "success"; i++)
{
var t = client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
jsRst = t.Result.Result.Value.ParseToString();
Thread.Sleep(500);
}
if (jsRst == "success")
TransitErrorMsg = "";
}
catch
{
}
});
}
}
private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
@@ -1144,6 +1237,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
return;
}
await Task.Run(() => { });
// 1.关联或者购买商品
//https://detail.tmall.com/item.htm?id=655638393036&sku_properties=1627207%3A42499150508
//{"appData":null,"loaderData":{"home":{"data":{"res":{"seller":{"sellerNick":"匹克世冠专卖店","shopName":"匹克世冠专卖店","evaluates":[{"score":"4.8 ","level":"1","levelText":"高","title":"宝贝描述","type":"desc"},{"score":"4.8 ","level":"1","levelText":"高","title":"卖家服务","type":"serv"},{"score":"4.8 ","level":"1","levelText":"高","title":"物流服务","type":"post"}],"startsIcon":"https://img.alicdn.com/imgextra/i4/O1CN018GrFIW1Zx7vwjt3Jg_!!6000000003260-2-tps-91-14.png","pcShopUrl":"//shop67269976.taobao.com","creditLevelIcon":"//gw.alicdn.com/imgextra/i1/O1CN01VD9Iap25oweneR31D_!!6000000007574-2-tps-120-60.png","sellerType":"B","encryptUid":"RAzN8HWKpmWFSf9AkzVpz3nhAYRZrPS63pSiDPMWyvui5ixfJBs"},"item":{"images":["https://img.alicdn.com/imgextra/i4/717513321/O1CN01cvzkE61aP4Tjeupfh_!!4611686018427380329-0-item_pic.jpg","https://img.alicdn.com/imgextra/i3/717513321/O1CN01W9mF4N1aP4OAc3Mtt_!!4611686018427380329-0-item_pic.jpg","https://img.alicdn.com/imgextra/i1/717513321/O1CN01a72PTr1aP4S55SiRs_!!4611686018427380329-0-item_pic.jpg"],"title":"匹克态极拖鞋男情侣款夏季外穿潮鞋篮球运动防滑太极沙滩凉拖鞋女","itemId":"655638393036","useWirelessDesc":"true","qrCode":"https://h5.m.taobao.com/awp/core/detail.htm?id=655638393036","spuId":"2122802472","titleIcon":"//img.alicdn.com/tfs/TB1SMG7nnvI8KJjSspjXXcgjXXa-78-36.png?getAvatar=avatar"},"feature":{"pcResistDetail":"true","tmwOverseasScene":"false","pcIdentityRisk":"true"},"plusViewVO":{"askAnswerVO":{"ext":{"skeletonImg":"https://img.alicdn.com/imgextra/i2/O1CN01MLPxBr1flZy969k5W_!!6000000004047-2-tps-1376-1216.png"},"hit":"true"},"addCartActionVO":{"ext":{"type":"dialogWithRecommond_2","frequency":"day:1;repeat:1"},"hit":"true"},"guessLikeVO":{"hit":"true"},"wangwangFlowSplitVO":{"hit":"true"},"rankVO":{"hit":"true"},"tabPlaceholderVO":{"hit":"true"},"imageSearchVO":{"ext":{"textList":["商品已经下架啦~要不要瞧瞧别的~","该区域暂不支持购买","此商品不支持在当前地区销售","商品已经卖光啦~","当前商品仅限店铺会员购买","商品已经卖光啦,非常抱歉","店铺正在打烊中,当前商品不可下单","商品已经卖光啦~","当前库存已售完","该商品有卖家设置的购买门槛,须达门槛才可购买噢~","此商品暂时不能购买"]},"spm":"aliabtest1115297_1138353","hit":"true"},"reportEntranceVO":{"spm":"aliabtest1097211_1051854","hit":"true"},"headAtmosphereBeltVO":{"valid":"false","hit":"true"},"commentListVO":{"ext":{"countShow":"\"false\""},"hit":"true"},"pcFrontSkuQuantityLimitVO":{"hit":"true"},"buyParamVO":{"ext":{"autoApplCoupSource":"pcDetailOrder","needAutoApplCoup":"true"},"hit":"true"}},"skuCore":{"skuItem":{"renderSku":"true","itemStatus":0,"unitBuy":1},"sku2info":{"0":{"moreQuantity":"true","quantity":200,"logisticsTime":"平均9小时发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"157","priceDesc":"起","priceMoney":"15700"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmdD1Plv0m1WF"}},"5359436967823":{"moreQuantity":"false","quantity":12,"logisticsTime":"48小时内发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"157","priceMoney":"15700"},"cartParam":{"addCartCheck":"true"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmdD1Plv0m1WF"}},"5769423993152":{"moreQuantity":"false","quantity":19,"logisticsTime":"48小时内发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"157","priceMoney":"15700"},"cartParam":{"addCartCheck":"true"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmdD1Plv0m1WF"}},"5359436967808":{"moreQuantity":"false","quantity":46,"logisticsTime":"48小时内发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"157","priceMoney":"15700"},"cartParam":{"addCartCheck":"true"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmdD1Plv0m1WF"}},"5359436967810":{"moreQuantity":"false","quantity":95,"logisticsTime":"48小时内发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"157","priceMoney":"15700"},"cartParam":{"addCartCheck":"true"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmdD1Plv0m1WF"}},"5132110197053":{"moreQuantity":"false","quantity":18,"logisticsTime":"平均9小时发货","price":{"priceTitle":"优惠前","priceColorNew":"#FFFFFF","priceText":"169","priceMoney":"16900"},"cartParam":{"addCartCheck":"true"},"quantityDisplayValue":1,"quantityText":"有货","buyExParams":{"mi_id":"0000m5cdA3X8kO8PXBJ3r8ji8d6gjumNVDVBkp9kKySsEPW3KKjUvUifmLine truncated
@@ -1183,7 +1278,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
continue;
var tbSku2 = dicTaoBaoSku2[key];
if (tbSku2.quantity < 1 || tbSku2.quantityText != "有货")
if (tbSku2.quantity < 1 || !tbSku2.quantityText.Contains("有货") )
continue;
var taobaoSku = taobaoSkusLst.FirstOrDefault(s => s.skuId == key);
@@ -1273,12 +1368,17 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
var quantity = BaseRegex.GetStringJson(ref dataTmp, "quantity");
this.txtBuyCntVal = quantity;
}
// 3.获取订单Id
if (url.StartsWith("https://h5api.m.taobao.com/h5/mtop.trade.order.create"))
if (url.StartsWith("https://h5api.m.taobao.com/h5/mtop.trade.order.create") || url.StartsWith("https://h5api.m.tmall.com/h5/mtop.trade.order.create"))
{
//{"api":"mtop.trade.order.create","data":{"alipayOrderId":"2026100823001114311406600349","alipayWapCashierUrl":"https://tbapi.alipay.com/trade/trade_payment.htm?sign_account_no=20884520920143130156&sign_date=1791446919&sign_signature=hme_x_lhum6j77_y_b8m4ge%2F7_q_cbu8_rw_a_r_uru_zz_du0%2F_c_l_u_rkc7sodv_zfh_q%3D%3D&sign_from=3000&trade_no=2026100823001114311406600349&already_check=0","backUrl":"https://web.m.taobao.com/app/tbpc-trade/tbpc-pay-success/home?biz_order_ids=5127312711003132114","bizOrderId":"5127312711003132114","buyerNumId":2210214614749,"cashierParam":{"sdkExtParams":{}},"clientPayScenario":0,"feature":{"pcRedirectLocation":"orderSuccess.vm","targetURL":"https://tbapi.alipay.com/trade/trade_payment.htm?sign_account_no=20884520920143130156&sign_date=1791446919&sign_signature=hme_x_lhum6j77_y_b8m4ge%2F7_q_cbu8_rw_a_r_uru_zz_du0%2F_c_l_u_rkc7sodv_zfh_q%3D%3D&sign_from=3000&trade_no=2026100823001114311406600349&already_check=0"},"nextUrl":"https://tbapi.alipay.com/trade/trade_payment.htm?sign_account_no=20884520920143130156&sign_date=1791446919&sign_signature=hme_x_lhum6j77_y_b8m4ge%2F7_q_cbu8_rw_a_r_uru_zz_du0%2F_c_l_u_rkc7sodv_zfh_q%3D%3D&sign_from=3000&trade_no=2026100823001114311406600349&already_check=0","partSuccess":false,"resultType":0,"secrityPay":true,"signStr":"service=\"mobile.securitypay.pay\"&_input_charset=\"utf-8\"&app_name=\"tb\"&appenv=\"appid=taobao^system=tbwang^version=1.0.0#pc\"&partner=\"PARTNER_TAOBAO_ORDER\"&biz_type=\"trade\"&trade_no=\"2026100823001114311406600349\"&sign_date=\"2026-10-08 16:08:39\"&extern_token=\"1e48bb37ed4474e59b7d10b39491a123\"&monitorType=\"0-buy2.create-doCreatingOrderBiz-0000\"&sign=\"_ov_g_x_y1i_p_q_x6_mgtxgr_h_f_l5_lq_gyr_s_q_g2_sz_k_t1_i%2F2_d3wo_v%2B_t52_n_h_dr_p_e_a%3D%3D\"&sign_type=\"DSA\"","simplePay":true,"useSimplePayForH5":false,"withholdingParams":"{}"},"ret":["SUCCESS::调用成功"],"traceId":"2147844817914469194905047e0ea8","v":"6.0"}
txtBuyOrderIdVal = BaseRegex.GetStringJson(ref responseData, "bizOrderId");
}
if (responseData.Contains("\"bizOrderId\":"))
{
txtBuyOrderIdVal = BaseRegex.GetStringJson(ref responseData, "bizOrderId");
}
//if (url.StartsWith("https://h5api.m.taobao.com/h5/mtop.trade.order.adjust/6.0"))
//{ //"https://h5api.m.taobao.com/h5/mtop.trade.order.create"
@@ -1292,10 +1392,15 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
// //{"api":"mtop.user.getUserSimple","v":"1.0","ret":["SUCCESS::调用成功"],"data":{"nick":"jtt_fan","userNumId":440631048,"displayNick":"jtt_fan"}}
//}
if (url.StartsWith("https://web.m.taobao.com/app/tbpc-trade/tbpc-pay-success/home") && url.Contains("?biz_order_id=" + this.txtBuyOrderIdVal))
{
this.ManualUpdateBuyOrder();
}
//if (currentUrl.Contains("app/tbpc-trade/tbpc-pay-success/home") && currentUrl.Contains("?biz_order_id=" + this.txtBuyOrderIdVal))
//{
// // 拍单后更新状态
// if (!HasAutoUpdateBuyStatus)
// {
// HasAutoUpdateBuyStatus = true;
// this.ManualUpdateBuyOrder();
// }
//}
}
private void SetBuyMapValues()
@@ -1924,6 +2029,23 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
this.MapInfoVisivility = Visibility.Visible;
this.transitWarehouse = null;
this.IsMappingGoods = true;
this.mapSkuIdTmp = null;
}
public void CopyCurrentFullAddress()
{
for (int i = 0; i < 10; i++)
{
try
{
Clipboard.SetDataObject(CurrentFullTransitAddress);
BaseMsgWindow.ShowInfo("复制成功");
break;
}
catch (Exception ex)
{
}
}
}
}
@@ -10,6 +10,7 @@ using AllBase.Model.DBModel;
using AllBase.Model.Result;
using AllBase.Util;
using CefSharp;
using CefSharp.DevTools.IO;
using CefSharp.DevTools.LayerTree;
using CefSharp.DevTools.Network;
using CefSharp.Handler;
@@ -55,6 +56,9 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
/// </summary>
public partial class TbBuyerOrderReadCtrl : UserControl
{
/// <summary>
/// 淘宝拍单是否走同步单逻辑
/// </summary>
bool IsTbSyncDirectBuyOrderWaybill = false;
Dictionary <BuyerLoginInfo, TbPickInfo> dicTbPickInfo = new Dictionary<BuyerLoginInfo, TbPickInfo>();
@@ -136,7 +140,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (isHideNoWxOrderNo && order.ShopOrderIdStr.IsNullOrEmpty())
return true;
if (!string.IsNullOrEmpty(filterTxt) && !order.order_sn.Contains(filterTxt) && !order.ShopOrderIdStr.ParseToString().Contains(filterTxt) &&
!order.tracking_number.Contains(filterTxt) &&
!order.tracking_number.ParseToString().Contains(filterTxt) &&
!order.sendStatus.ParseToString().Contains(filterTxt))
return true;
return false;
@@ -159,8 +163,6 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
return;
this.lbTbBuyer.ItemsSource = GlobalConfig.TaobaoBuyerLoginList;
buyerReadOrderConfig = NaiBa.Util.Helper.ConfigHelper.LoadConfig<TbBuyerReadOrderConfig>("tb_buyer_read_order_config");
@@ -277,7 +279,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
cefShowShopOrderLstWebBrowser.RequestHandler = new LocalRequestHandler(resourceRequestHandler);
var lifeSapnHandler = new LocalLifeSpanHandler(PopWindowType.SelfWindow);
cefShowShopOrderLstWebBrowser.LifeSpanHandler = lifeSapnHandler;
cefShowShopOrderLstWebBrowser.KeyboardHandler = new KeyboardHandler();
cefShowShopOrderLstWebBrowser.KeyboardHandler = new CefKeyboardHandler();
cefShowShopOrderLstWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd;
cefShowShopOrderLstWebBrowser.AddressChanged += CefWebBrowser_AddressChanged;
cefShowShopOrderLstWebBrowser.LoadError += CefWebBrowser_LoadError;
@@ -293,7 +295,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
cefWebBrowser.RequestHandler = new LocalRequestHandler(resourceRequestHandler);
var lifeSapnHandler = new LocalLifeSpanHandler(PopWindowType.SelfWindow);
cefWebBrowser.LifeSpanHandler = lifeSapnHandler;
cefWebBrowser.KeyboardHandler = new KeyboardHandler();
cefWebBrowser.KeyboardHandler = new CefKeyboardHandler();
cefWebBrowser.FrameLoadEnd += CefWebBrowser_FrameLoadEnd;
cefWebBrowser.AddressChanged += CefWebBrowser_AddressChanged;
cefWebBrowser.LoadError += CefWebBrowser_LoadError;
@@ -347,12 +349,6 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
await CefReadBuyerOrder(url1, data1, buyer);
}
// 读订单
// if (url1.StartsWith("https://mobile.yangkeduo.com/proxy/api/api/aristotle/order_list_v"))
//{
// await CefReadBuyerOrder(url1, data1);
// }
//// 读取售后
//if (url1.StartsWith("https://mobile.yangkeduo.com/proxy/api/api/blade/after_sales_list"))
//{
@@ -584,7 +580,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
{
Dispatcher.Invoke(new Action(() =>
{
lblMsg.Content = buyer.buyer_name + " 获取到空订单列表,退出自动滑动 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
lblMsg.Content = buyer.buyer_name + " 获取到空订单列表,退出自动读单 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}));
currentReadBuyer = "";
return;
@@ -641,11 +637,16 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
o.order_link_url = BaseRegex.GetStringJson(ref shopInfoStr, "orderDetailUrl");
o.order_prompt_color = "#E02E24";
// 买家已付款 卖家已发货 交易成功 交易关闭 退款成功
o.order_status_prompt = BaseRegex.GetStringJson(ref shopInfoStr, "tradeTitle");
if (o.order_status_prompt.Contains("退款成功"))
{
}
o.parent_order_sn = "";
o.service_amount = 0;
o.shipping_amount = ((orderPayment.fields.pcPostFee?.value?.Replace("¥", "")).ParseToDecimal() * 100).ParseToInt();
o.order_time = o.order_time;
o.order_time = BaseClass.DateTimeToTimestampSeconds(BaseRegex.GetStringJson(ref shopInfoStr, "createTime").ParseToDateTime());
if (orderLogistics != null)
{
o.tbOutExpressCompanyMsg = BaseRegex.GetStringJson(ref orderLogistics, "cpName");
@@ -682,9 +683,9 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
// lstTbBuyerOrderInfoLite.Remove(order);
// lstTbBuyerOrderInfoLite.Insert(index, order);
//}));
}
return;
list.Add(o);
}
//var list = JsonHelper.DeserializeJsonToList<TbBuyerOrderLiteInfo>(JsonHelper.JObjectParse(data)["orders"].ParseToString());
@@ -703,8 +704,10 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
lstSyncLogistics.Add(syncOrder);
}
}
// 根据拼多多外采订单列表查询中转仓订单信息
var transitOrderList = GetOrderTransitWarehouseInfo(out_order_nos);
// 根据拼多多外采订单列表查询订单扩展信息
var orderExtList = GetOrderItemExtInfo(out_order_nos);
@@ -821,8 +824,13 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
order.sendStatus = o.sendStatus;
}
//order = JsonHelper.DeserializeJsonToObject<TbBuyerOrderInfoLite>(JsonHelper.SerializeObject(o));
order.activity_type = o.activity_type;
//order = JsonHelper.DeserializeJsonToObject<TbBuyerOrderInfoLite>(JsonHelper.SerializeObject(o));
// 淘宝专属物流公司名称
order.tbOutExpressCompanyMsg = o.tbOutExpressCompanyMsg;
// 赋值字段属性值
order.activity_type = o.activity_type;
order.after_sales = o.after_sales;
order.discount_amount = o.discount_amount;
order.display_amount = o.display_amount;
@@ -890,7 +898,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}));
}
Task.Run(() =>
await Task.Run(() =>
{
// 根据订单状态 取号/修改取号
if (order.WxSendTypeStr == "直发")
@@ -898,46 +906,44 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
// 微信售后,客户端取消直发买手订单
if (order.ShopOrderRefundStr.ParseToString().Contains("售后"))
{
if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
{
// 待发货直接售后,并通知中转仓接口修改退货状态
var afterSaleRst = TbDirectAutoAfterSale(order);
isUpdate = true;
}
// todo 将拼多多售后改为淘宝售后
//if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
//{
// // 待发货直接售后,并通知中转仓接口修改退货状态
// var afterSaleRst = TbDirectAutoAfterSale(order);
// isUpdate = true;
//}
}
// 淘宝IsTbSyncDirectBuyOrderWaybill目前为假,不执行同步单逻辑
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill != true || IsTbSyncDirectBuyOrderWaybill != true)
SendOrderE57(order);
}
else
}
else
{
// 微信售后,服务端自动作废订单,客户端取消买手订单即可
if (order.ShopOrderRefundStr.ParseToString().Contains("售后"))
{
if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
{
// 待发货直接售后,并通知中转仓接口修改退货状态
var afterSaleRst = TbTransitAutoAfterSale(order);
isUpdate = true;
}
{
// todo 将拼多多售后改为淘宝售后
//if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
//{
// // 待发货直接售后,并通知中转仓接口修改退货状态
// var afterSaleRst = TbTransitAutoAfterSale(order);
// isUpdate = true;
//}
}
if (order.TransitWarehouseRawMessage.ParseToString().Contains("超出派送范围"))
{
if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
{
// 待发货直接售后,并通知中转仓接口修改退货状态
var afterSaleRst = TbTransitAutoAfterSale(order);
isUpdate = true;
}
//if (!",2,3,4,5,7,8,10,31,".Contains("," + (order.after_sales?.after_sales_status).ParseToString() + ","))
//{
// // 待发货直接售后,并通知中转仓接口修改退货状态
// var afterSaleRst = TbTransitAutoAfterSale(order);
// isUpdate = true;
//}
}
SendTransitOrderE57(order);
}
if (order.order_sn == "260924-431226960203223")
{
}
if (order.ShopOrderIdStr == "3739392779260688128")
{
}
// 同步单更新处理逻辑 淘宝IsTbSyncDirectBuyOrderWaybill目前为假,不执行同步单逻辑
if (order.WxSendTypeStr == "直发" && IsTbSyncDirectBuyOrderWaybill)
{
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill && !string.IsNullOrEmpty(order.tracking_number) && order.WxOrderStatus < 30)
@@ -946,7 +952,6 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
if (isUpdate && !string.IsNullOrEmpty(order.ShopOrderIdStr)/* && order.WxSendTypeStr != "直发"*/)
{
// 买手订单状态记录到数据库
order_tb_buyer_order tbBuyerOrder = new order_tb_buyer_order()
{
@@ -988,7 +993,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = GetHtml.PostUtf8(url3, data3);
//勾选了调用同步单接口,必须直发且库里已有物流单号
//勾选了调用同步单接口,必须直发且库里已有物流单号 淘宝IsTbSyncDirectBuyOrderWaybill目前为假,不执行同步单逻辑
if (order.WxSendTypeStr == "直发" && IsTbSyncDirectBuyOrderWaybill == true)
{
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill && !string.IsNullOrEmpty(order.tracking_number) && html3.Contains("\"code\":200"))
@@ -997,7 +1002,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
}
// 填写取件码
// 填写取件码 淘宝IsTbSyncDirectBuyOrderWaybill目前为假,不执行同步单逻辑
if (order.WxSendTypeStr == "直发" && IsTbSyncDirectBuyOrderWaybill == true)
{
if (GlobalConfig.BuyConfig.IsSyncDirectBuyOrderWaybill && !string.IsNullOrEmpty(order.tracking_number))
@@ -1517,8 +1522,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
Thread.Sleep(Randomx.GetId(2000, 3000));
Dispatcher.Invoke(new Action(() => { MainWindow.Instance.Title = buyer.buyer_nick + " 待发货读取中"; }));
BindBuyer(buyer, "正在读取待发货");
Dispatcher.Invoke(new Action(() => { MainWindow.Instance.Title = buyer.buyer_nick + " 订单读取中"; }));
BindBuyer(buyer, "正在读取订单");
top = 0;
lastCefReadOrderTime = DateTime.Now;
@@ -1554,24 +1559,60 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
times++;
Thread.Sleep(Randomx.GetId(100, 300));
//top += Randomx.GetId(450, 600);
//top += Randomx.GetId(450, 600);
//var jsStr = @"window.scroll({
// top: document.body.scrollHeight,
// left: 0,
// behavior: 'smooth' // 可选,使滚动平滑
// });";
//jsStr = @"window.scroll({
// top: " + top + @",
// left: 0,
// behavior: 'smooth' // 可选,使滚动平滑
// });";
//var client = buyer.wpf_browser.GetDevToolsClient();
//if (client != null)
//{
// var result = client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
// result.Wait(5000);
//}
//var jsStr = @"window.scroll({
// top: document.body.scrollHeight,
// left: 0,
// behavior: 'smooth' // 可选,使滚动平滑
// });";
//jsStr = @"window.scroll({
// top: " + top + @",
// left: 0,
// behavior: 'smooth' // 可选,使滚动平滑
// });";
//var client = buyer.wpf_browser.GetDevToolsClient();
//if (client != null)
//{
// var result = client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
// result.Wait(5000);
//}
// 1.点击下一页按钮
string jsRst = "failed";
StringBuilder sb = new StringBuilder();
sb.Append("(function() {\r\n");
sb.Append(" var searchElements = document.getElementsByTagName('div');\r\n");
sb.Append(" for (i = 0; i < searchElements.length; i++) {\r\n");
sb.Append(" var searchElement = searchElements[i];\r\n");
sb.Append(" if (searchElement.innerHTML.indexOf('下一页') >= 0 && searchElement.innerHTML.indexOf('下一页') <= 3 && searchElement.outerHTML.indexOf('disabled') >= 0) {\r\n");
sb.Append(" return 'end';\r\n");
sb.Append(" }\r\n");
sb.Append(" if (searchElement.innerHTML.indexOf('下一页') >= 0 && searchElement.innerHTML.indexOf('下一页') <= 3) {\r\n");
sb.Append(" searchElement.click();\r\n");
sb.Append(" return 'success';\r\n");
sb.Append(" }\r\n");
sb.Append(" }\r\n");
sb.Append(" return 'failed';\r\n");
sb.Append("})();");
var jsStr = sb.ToString();
var client = buyer.wpf_browser.GetDevToolsClient();
var t = client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
t.Wait(10000);
jsRst = t.Result.Result.Value.ParseToString();
if (jsRst.IsNullOrEmpty() || jsRst == "failed")
{
Dispatcher.Invoke(() => { lblMsg.Content = buyer.buyer_name + " 订单读取失败,跳过 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); });
BindBuyer(buyer, "订单读取失败,跳过");
break;
}
if (jsRst == "end")
{
Dispatcher.Invoke(() => { lblMsg.Content = buyer.buyer_name + " 订单读取完毕,跳过 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); });
BindBuyer(buyer, "订单读取完毕,跳过");
break;
}
Thread.Sleep(Randomx.GetId(5000, 7000));
}
if (isSkipNext)
{
@@ -1674,6 +1715,11 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
// order.sendStatus = "";
NaiBa.Util.Helper.ConfigHelper.SaveConfig("tb_buyer_order_list", lstTbBuyerOrderInfoLite);
if (order.order_sn == "tb_5127845257228122932")
{
}
// 仓库处理中
if (order.sendStatus.ParseToString().Contains("仓库处理中"))
{
@@ -306,6 +306,8 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
// 读取暂时记录的买手订单,后面想办法放到中转订单库里去
var pddBuyerOrders = GetPddBuyerOrders(order_ids);
// 读取暂时记录的淘宝买手订单(格式与拼多多的一致,存在不同的表中),后面想办法放到中转订单库里去
pddBuyerOrders.AddRange(GetTbBuyerOrders(order_ids));
// 读取暂时记录的买手售后单,后面想办法放到中转订单库里去
var pddBuyerAfterSales = GetPddBuyerAfterSales(order_ids);
@@ -736,6 +738,34 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
return new List<order_pdd_buyer_order>();
}
public static List<order_pdd_buyer_order> GetTbBuyerOrders(string order_ids)
{
if (string.IsNullOrEmpty(order_ids))
return new List<order_pdd_buyer_order>();
var url4 = BaseClass.Build29WxObjString("order/wx_get_tb_buyer_order_list");
var data4 = UserLogin.GetSignaturex();
data4 += "&wx_order_id_in=" + order_ids;
var html4 = GetHtml.PostUtf8(url4, data4);
if (string.IsNullOrEmpty(html4) || !html4.Contains("\"code\":200"))
html4 = GetHtml.PostUtf8(url4, data4);
if (string.IsNullOrEmpty(html4) || !html4.Contains("\"code\":200"))
{
BaseMsgWindow.ShowAnimateMessage("订单读取失败(买手) " + BaseRegex.GetStringJson(ref html4, "msg"), "Error", 5);
}
List<order_pdd_buyer_order> pddBuyerOrders = new List<order_pdd_buyer_order>();
try
{
pddBuyerOrders = JsonHelper.DeserializeJsonToList<order_pdd_buyer_order>(JObject.Parse(html4)["data"].ParseToString())
.OrderByDescending(p => p.TransitCreateTime).ToList();
return pddBuyerOrders;
}
catch
{
}
return new List<order_pdd_buyer_order>();
}
public static List<order_pdd_buyer_after_sale> GetPddBuyerAfterSales(string order_ids)
{
var url6 = BaseClass.Build29WxObjString("order/wx_get_buyer_after_sale_list");
@@ -1188,15 +1218,13 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
if (orderItem.order_id == "3739105285145538816")
{
}
if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直")
{
if (order.out_after_sale_status.ParseToString().Contains("待用户发货") && !(orderItem.DistribReturnOrderInfo?.real_logistics_express_code).IsNullOrEmpty())
{
string orderSn = order.out_order_no;
if (orderSn.IsNullOrEmpty())
if (orderSn.IsNullOrEmpty() || orderSn.StartsWith("tb_")) // 无外采或淘宝外采直接退出
continue;
string buyerNickName = order.out_account;
if (buyerNickName.IsNullOrEmpty())
@@ -2447,222 +2475,233 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
if (tmpOrderItem.order_id == "3739296914665288192")
{
}
Dispatcher.Invoke(new Action(() => { BottomMsg = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index++; }));
var pddOrderSn = "";
var outOrderSn = "";
if (tmpOrderItem.ItemOrder?.OrderBuyType == "云仓")
pddOrderSn = tmpOrderItem.ItemTransitOrderWithVoid?.out_order_no;
outOrderSn = tmpOrderItem.ItemTransitOrderWithVoid?.out_order_no;
else if (tmpOrderItem.ItemOrder?.OrderBuyType == "直发" || tmpOrderItem.ItemOrder?.OrderBuyType == "云改直")
pddOrderSn = tmpOrderItem.ItemOrder?.out_order_no;
outOrderSn = tmpOrderItem.ItemOrder?.out_order_no;
BuyerLoginInfo buyer = null;
if (tmpOrderItem.ItemOrder?.OrderBuyType == "云仓")
Dispatcher.Invoke(new Action(() => { buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_nick == tmpOrderItem.ItemTransitOrderWithVoid.buyer_account); }));
else if (tmpOrderItem.ItemOrder?.OrderBuyType == "直发" || tmpOrderItem.ItemOrder?.OrderBuyType == "云改直")
Dispatcher.Invoke(new Action(() => { buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_nick == tmpOrderItem.ItemOrder?.out_account); }));
if (buyer == null)
{
BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手不在当前账户下,跳过", "Error", 3);
continue;
if (outOrderSn.StartsWith("tb_"))
{
// todo 淘宝退货暂时不处理
}
// 检测一下买手号
if (buyer.status == "在线")
else
{
PddMobileLoginViewModel.CheckBuyerLogin(buyer);
}
if (buyer.status != "在线")
{
BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手号掉线,跳过", "Error", 3);
continue;
}
#region 拼多多外采退货
await Task.Run(() => { MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id); });
var pddOrderSn = outOrderSn;
oms_wei_order_info order = null;
Dispatcher.Invoke(new Action(() => { order = GlobalConfig.lstOrder.FirstOrDefault(oi => oi.order_id == tmpOrderItem.order_id); }));
if (order == null)
continue;
oms_wei_order_item_info orderItem = null;
Dispatcher.Invoke(new Action(() => { orderItem = order.orderItems.FirstOrDefault(oi => oi.order_id == tmpOrderItem.order_id && oi.sku_id == tmpOrderItem.sku_id); }));
if (orderItem == null)
continue;
string refundStatusStr = "";
string outOrderNo = "";
string AfterSaleAddressStr = "";
if (order.OrderBuyType == "云仓")
{
outOrderNo = (orderItem.ItemTransitOrderWithVoid?.out_order_no).ParseToString();
refundStatusStr = (orderItem?.TransitRefundStatusStr).ParseToString();
AfterSaleAddressStr = orderItem.PddBuyerAfterSaleAddressStr;
}
else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直")
{
outOrderNo = (order.out_order_no).ParseToString();
refundStatusStr = (order.out_after_sale_status).ParseToString();
AfterSaleAddressStr = orderItem.DirectPddBuyerAfterSaleAddressStr;
}
if (string.IsNullOrEmpty(outOrderNo) || !(AfterSaleAddressStr.IsNullOrEmpty() || GetNeedBuyerNewAfterSale(refundStatusStr)) || !GetNeedBuyerAfterSale(refundStatusStr))
continue;
PddBuyerOrderLiteInfo pddBuyerOrderLiteInfo = new PddBuyerOrderLiteInfo();
pddBuyerOrderLiteInfo.ShopOrderIdStr = orderItem.order_id;
pddBuyerOrderLiteInfo.order_sn = pddOrderSn;
if (order.OrderBuyType == "云仓")
pddBuyerOrderLiteInfo.order_amount = orderItem.ItemTransitOrderWithVoid?.out_amount;
else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直")
pddBuyerOrderLiteInfo.order_amount = order.out_amount;
order_pdd_buyer_after_sale pddBuyerAfterSale = new order_pdd_buyer_after_sale()
{
wx_order_id = orderItem.order_id,
wx_sku_id = orderItem.sku_id,
TransitCreateTime = orderItem.ItemTransitOrderWithVoid?.created_time == null ? DateTime.MinValue : orderItem.ItemTransitOrderWithVoid.created_time,
pre_allocated_order_no = orderItem.ItemTransitOrderWithVoid?.pre_allocated_order_no,
buyerId = buyer.buyer_id,
buyerName = buyer.buyer_name,
orderSn = pddOrderSn,
orderAmount = pddBuyerOrderLiteInfo.order_amount,
refundAmount = pddBuyerOrderLiteInfo.order_amount,
orderDate = pddOrderSn.ParseToString().Split('-').FirstOrDefault().ParseToInt(),
};
// 根据云仓还是直发判断是哪个买手单
if (tmpOrderItem.ItemOrder?.OrderBuyType == "云仓" && orderItem.PddBuyerAfterSale != null)
pddBuyerAfterSale = orderItem.PddBuyerAfterSale;
if (tmpOrderItem.ItemOrder?.OrderBuyType != "云仓" && orderItem.DirectPddBuyerAfterSale != null)
pddBuyerAfterSale = orderItem.DirectPddBuyerAfterSale;
bool isSimPddAfterSaleSuccess = true;
if (GetNeedBuyerNewAfterSale(refundStatusStr))
{
isSimPddAfterSaleSuccess = false;
// pddBuyerAfterSale作为参数传入,获取退货退款金额
var rst = PDDBuyerOrderReadCtrl.SimPddAfterSaleWithReturnGoods(buyer, pddBuyerOrderLiteInfo, pddBuyerAfterSale);
var afterSalesStatus = BaseRegex.GetIntJson(ref rst, "after_sales_status");
var afterSalesId = BaseRegex.GetLongJson(ref rst, "after_sales_id");
pddBuyerAfterSale.afterSalesId = afterSalesId.ToString();
pddBuyerAfterSale.statusText = "待用户发货";
if (afterSalesStatus == 0)
BuyerLoginInfo buyer = null;
if (tmpOrderItem.ItemOrder?.OrderBuyType == "云仓")
Dispatcher.Invoke(new Action(() => { buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_nick == tmpOrderItem.ItemTransitOrderWithVoid.buyer_account); }));
else if (tmpOrderItem.ItemOrder?.OrderBuyType == "直发" || tmpOrderItem.ItemOrder?.OrderBuyType == "云改直")
Dispatcher.Invoke(new Action(() => { buyer = GlobalConfig.PDDBuyerLoginList.FirstOrDefault(b => b.buyer_nick == tmpOrderItem.ItemOrder?.out_account); }));
if (buyer == null)
{
var msg = BaseRegex.GetStringJsonByRegs(ref rst, rst, "msg", "err_msg", "error_msg", "errorMsg", "errMsg");
BaseMsgWindow.ShowAnimateMessage(msg, "Error", 5);
Thread.Sleep(5000);
if (msg == "已超过可申请售后的时间")
BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手不在当前账户下,跳过", "Error", 3);
continue;
}
// 检测一下买手号
if (buyer.status == "在线")
{
PddMobileLoginViewModel.CheckBuyerLogin(buyer);
}
if (buyer.status != "在线")
{
BaseMsgWindow.ShowAnimateMessage("买手单:" + pddOrderSn + " 买手号掉线,跳过", "Error", 3);
continue;
}
await Task.Run(() => { MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id); });
oms_wei_order_info order = null;
Dispatcher.Invoke(new Action(() => { order = GlobalConfig.lstOrder.FirstOrDefault(oi => oi.order_id == tmpOrderItem.order_id); }));
if (order == null)
continue;
oms_wei_order_item_info orderItem = null;
Dispatcher.Invoke(new Action(() => { orderItem = order.orderItems.FirstOrDefault(oi => oi.order_id == tmpOrderItem.order_id && oi.sku_id == tmpOrderItem.sku_id); }));
if (orderItem == null)
continue;
string refundStatusStr = "";
string outOrderNo = "";
string AfterSaleAddressStr = "";
if (order.OrderBuyType == "云仓")
{
outOrderNo = (orderItem.ItemTransitOrderWithVoid?.out_order_no).ParseToString();
refundStatusStr = (orderItem?.TransitRefundStatusStr).ParseToString();
AfterSaleAddressStr = orderItem.PddBuyerAfterSaleAddressStr;
}
else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直")
{
outOrderNo = (order.out_order_no).ParseToString();
refundStatusStr = (order.out_after_sale_status).ParseToString();
AfterSaleAddressStr = orderItem.DirectPddBuyerAfterSaleAddressStr;
}
if (string.IsNullOrEmpty(outOrderNo) || !(AfterSaleAddressStr.IsNullOrEmpty() || GetNeedBuyerNewAfterSale(refundStatusStr)) || !GetNeedBuyerAfterSale(refundStatusStr))
continue;
PddBuyerOrderLiteInfo pddBuyerOrderLiteInfo = new PddBuyerOrderLiteInfo();
pddBuyerOrderLiteInfo.ShopOrderIdStr = orderItem.order_id;
pddBuyerOrderLiteInfo.order_sn = pddOrderSn;
if (order.OrderBuyType == "云仓")
pddBuyerOrderLiteInfo.order_amount = orderItem.ItemTransitOrderWithVoid?.out_amount;
else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直")
pddBuyerOrderLiteInfo.order_amount = order.out_amount;
order_pdd_buyer_after_sale pddBuyerAfterSale = new order_pdd_buyer_after_sale()
{
wx_order_id = orderItem.order_id,
wx_sku_id = orderItem.sku_id,
TransitCreateTime = orderItem.ItemTransitOrderWithVoid?.created_time == null ? DateTime.MinValue : orderItem.ItemTransitOrderWithVoid.created_time,
pre_allocated_order_no = orderItem.ItemTransitOrderWithVoid?.pre_allocated_order_no,
buyerId = buyer.buyer_id,
buyerName = buyer.buyer_name,
orderSn = pddOrderSn,
orderAmount = pddBuyerOrderLiteInfo.order_amount,
refundAmount = pddBuyerOrderLiteInfo.order_amount,
orderDate = pddOrderSn.ParseToString().Split('-').FirstOrDefault().ParseToInt(),
};
// 根据云仓还是直发判断是哪个买手单
if (tmpOrderItem.ItemOrder?.OrderBuyType == "云仓" && orderItem.PddBuyerAfterSale != null)
pddBuyerAfterSale = orderItem.PddBuyerAfterSale;
if (tmpOrderItem.ItemOrder?.OrderBuyType != "云仓" && orderItem.DirectPddBuyerAfterSale != null)
pddBuyerAfterSale = orderItem.DirectPddBuyerAfterSale;
bool isSimPddAfterSaleSuccess = true;
if (GetNeedBuyerNewAfterSale(refundStatusStr))
{
isSimPddAfterSaleSuccess = false;
// pddBuyerAfterSale作为参数传入,获取退货退款金额
var rst = PDDBuyerOrderReadCtrl.SimPddAfterSaleWithReturnGoods(buyer, pddBuyerOrderLiteInfo, pddBuyerAfterSale);
var afterSalesStatus = BaseRegex.GetIntJson(ref rst, "after_sales_status");
var afterSalesId = BaseRegex.GetLongJson(ref rst, "after_sales_id");
pddBuyerAfterSale.afterSalesId = afterSalesId.ToString();
pddBuyerAfterSale.statusText = "待用户发货";
if (afterSalesStatus == 0)
{
var msg = BaseRegex.GetStringJsonByRegs(ref rst, rst, "msg", "err_msg", "error_msg", "errorMsg", "errMsg");
BaseMsgWindow.ShowAnimateMessage(msg, "Error", 5);
Thread.Sleep(5000);
if (msg == "已超过可申请售后的时间")
{
if (order.OrderBuyType == "云仓")
{
var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "已超过可申请售后的时间");
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
{
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3);
Thread.Sleep(Randomx.GetId(10000, 12001));
}
else
{
msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
}
}
else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直")
{
var e57Rst = PDDBuyerOrderReadCtrl.SendAfterSaleE57NeedManual(pddBuyerOrderLiteInfo, "已超过可申请售后的时间");
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
{
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3);
Thread.Sleep(Randomx.GetId(10000, 12001));
}
else
{
msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
}
}
}
}
else
{
if (order.OrderBuyType == "云仓")
{
var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "已超过可申请售后的时间");
var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "待用户发货");
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
{
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3);
Thread.Sleep(Randomx.GetId(10000, 12001));
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功" + orderItem.order_id, "Msg", 3);
isSimPddAfterSaleSuccess = true;
await Task.Run(() => { Thread.Sleep(Randomx.GetId(10000, 12001)); });
}
else
{
msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
var msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
}
}
else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直")
{
var e57Rst = PDDBuyerOrderReadCtrl.SendAfterSaleE57NeedManual(pddBuyerOrderLiteInfo, "已超过可申请售后的时间");
var e57Rst = PDDBuyerOrderReadCtrl.SendAfterSaleE57NeedManual(pddBuyerOrderLiteInfo, "待用户发货");
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
{
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3);
Thread.Sleep(Randomx.GetId(10000, 12001));
isSimPddAfterSaleSuccess = true;
await Task.Run(() => { Thread.Sleep(Randomx.GetId(10000, 12001)); });
}
else
{
msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
var msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
}
}
}
}
else
// 更新Pdd总店退货地址
if (isSimPddAfterSaleSuccess)
{
if (order.OrderBuyType == "云仓")
var addressRst = YkdBuyerOrder.GetAfterSaleAddress(buyer, pddOrderSn, pddBuyerAfterSale.afterSalesId.ParseToString());
var merchantReceiverInfo = BaseRegex.GetOneJsonObjStrJson(ref addressRst, "merchantReceiverInfo");
string address = "";
if (merchantReceiverInfo != null)
{
var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, "待用户发货");
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
{
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功" + orderItem.order_id, "Msg", 3);
isSimPddAfterSaleSuccess = true;
await Task.Run(() => { Thread.Sleep(Randomx.GetId(10000, 12001)); });
}
else
{
var msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
}
address = BaseRegex.GetStringJson(ref merchantReceiverInfo, "copyValue");
}
else if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直")
if (addressRst.Contains("网络异常,请稍后重试"))
{
var e57Rst = PDDBuyerOrderReadCtrl.SendAfterSaleE57NeedManual(pddBuyerOrderLiteInfo, "待用户发货");
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
{
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 3);
isSimPddAfterSaleSuccess = true;
await Task.Run(() => { Thread.Sleep(Randomx.GetId(10000, 12001)); });
}
else
{
var msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 3);
}
BaseMsgWindow.ShowAnimateMessage("买手 " + buyer.buyer_nick + " 网络异常,请手动获取总店退货地址并填写", "Msg", 5);
}
}
}
// 更新Pdd总店退货地址
if (isSimPddAfterSaleSuccess)
{
var addressRst = YkdBuyerOrder.GetAfterSaleAddress(buyer, pddOrderSn, pddBuyerAfterSale.afterSalesId.ParseToString());
var merchantReceiverInfo = BaseRegex.GetOneJsonObjStrJson(ref addressRst, "merchantReceiverInfo");
string address = "";
if (merchantReceiverInfo != null)
{
address = BaseRegex.GetStringJson(ref merchantReceiverInfo, "copyValue");
}
if (addressRst.Contains("网络异常,请稍后重试"))
{
BaseMsgWindow.ShowAnimateMessage("买手 " + buyer.buyer_nick + " 网络异常,请手动获取总店退货地址并填写", "Msg", 5);
}
var url3 = BaseClass.Build29WxObjString("order/wx_add_mdy_buyer_after_sale");
var data3 = UserLogin.GetSignaturex();
data3 += "&wx_order_id=" + pddBuyerAfterSale.wx_order_id;
data3 += "&wx_sku_id=" + pddBuyerAfterSale.wx_sku_id;
if (pddBuyerAfterSale.TransitCreateTime != DateTime.MinValue)
data3 += "&TransitCreateTime=" + pddBuyerAfterSale.TransitCreateTime.ToString("yyyy-MM-dd HH:mm:ss");
data3 += "&pre_allocated_order_no=" + pddBuyerAfterSale.pre_allocated_order_no;
data3 += "&buyerId=" + pddBuyerAfterSale.buyerId;
data3 += "&buyerName=" + pddBuyerAfterSale.buyerName;
data3 += "&orderAmount=" + pddBuyerAfterSale.orderAmount;
data3 += "&orderSn=" + pddBuyerAfterSale.orderSn;
data3 += "&afterSalesId=" + pddBuyerAfterSale.afterSalesId;
data3 += "&orderDate=" + pddBuyerAfterSale.orderDate;
//data3 += "&TransitPickupTime=" + pddBuyerOrder.TransitPickupTime.ToString("yyyy-MM-dd HH:mm:ss");
data3 += "&refundAmount=" + pddBuyerAfterSale.refundAmount;
data3 += "&statusText=" + pddBuyerAfterSale.statusText;
if (!string.IsNullOrEmpty(address))
data3 += "&afterSaleAddress=" + address;
if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直") // 云仓 0 直发 1
data3 += "&wx_send_type=1";
//data3 += "&is_mdy=true";
var html3 = await GetHtml.PostUtf8Async(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = await GetHtml.PostUtf8Async(url3, data3);
var url3 = BaseClass.Build29WxObjString("order/wx_add_mdy_buyer_after_sale");
var data3 = UserLogin.GetSignaturex();
data3 += "&wx_order_id=" + pddBuyerAfterSale.wx_order_id;
data3 += "&wx_sku_id=" + pddBuyerAfterSale.wx_sku_id;
if (pddBuyerAfterSale.TransitCreateTime != DateTime.MinValue)
data3 += "&TransitCreateTime=" + pddBuyerAfterSale.TransitCreateTime.ToString("yyyy-MM-dd HH:mm:ss");
data3 += "&pre_allocated_order_no=" + pddBuyerAfterSale.pre_allocated_order_no;
data3 += "&buyerId=" + pddBuyerAfterSale.buyerId;
data3 += "&buyerName=" + pddBuyerAfterSale.buyerName;
data3 += "&orderAmount=" + pddBuyerAfterSale.orderAmount;
data3 += "&orderSn=" + pddBuyerAfterSale.orderSn;
data3 += "&afterSalesId=" + pddBuyerAfterSale.afterSalesId;
data3 += "&orderDate=" + pddBuyerAfterSale.orderDate;
//data3 += "&TransitPickupTime=" + pddBuyerOrder.TransitPickupTime.ToString("yyyy-MM-dd HH:mm:ss");
data3 += "&refundAmount=" + pddBuyerAfterSale.refundAmount;
data3 += "&statusText=" + pddBuyerAfterSale.statusText;
if (!string.IsNullOrEmpty(address))
data3 += "&afterSaleAddress=" + address;
if (order.OrderBuyType == "直发" || order.OrderBuyType == "云改直") // 云仓 0 直发 1
data3 += "&wx_send_type=1";
//data3 += "&is_mdy=true";
var html3 = await GetHtml.PostUtf8Async(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = await GetHtml.PostUtf8Async(url3, data3);
}
MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id);
Dispatcher.Invoke(new Action(() => { BottomMsg = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index; }));
#endregion
}
MainWindow.Instance.orderListCtrl.GetOrder(tmpOrderItem.order_id);
Dispatcher.Invoke(new Action(() => { BottomMsg = "正在处理买手退货,总计:" + tmpOrderItems.Count + ",已处理:" + index; }));
}
Dispatcher.Invoke(new Action(() => { BottomMsg = "买手退货处理完成,总计:" + tmpOrderItems.Count + ",已处理:" + index; }));
@@ -526,6 +526,12 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
public static void TbBuyOrder(oms_wei_order_item_info orderItem, bool isAbnormalOrder, bool isAutoBuy)
{
if (GlobalConfig.CurrentTaobaoBuyer == null)
{
BaseMsgWindow.ShowError("未选择买手!");
return;
}
TaobaoBuyOrderCtrl taobaoBuyView = new TaobaoBuyOrderCtrl(GlobalConfig.CurrentTaobaoBuyer, orderItem);
//https://item.taobao.com/item.htm?id=756295486950&skuId=5216824841295
if (orderItem.TbBuyMap != null)
@@ -1230,6 +1236,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
orderItem.ItemTransitOrders = OrderListCtrl.GetTransitWarehouseList(orderItem.order_id);
orderItem.PddBuyerOrders = OrderListCtrl.GetPddBuyerOrders(orderItem.order_id).Where(o => o.wx_send_type == 0).ToList();
orderItem.PddBuyerOrders.AddRange(OrderListCtrl.GetTbBuyerOrders(orderItem.order_id).Where(o => o.wx_send_type == 0).ToList());
OrderListCtrl.InitOrderItemObservableProp(orderItem);
//if (orderItem.ItemTransitOrder?.warehouse_status == 3)
@@ -2054,6 +2061,13 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
{
//var orderSn = btnSendSync.Tag.ParseToString();
var directOrder = orderItem.DirectPddBuyerOrder;
if (directOrder.order_sn.StartsWith("tb_"))
{
BaseMsgWindow.ShowInfo("淘宝买手单暂不支持同步单");
return;
}
PddBuyerOrderLiteInfo orderLiteInfo = new PddBuyerOrderLiteInfo()
{
ShopOrderIdStr = orderItem.order_id,
@@ -2062,6 +2076,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
outExpressCompanyMsg = directOrder.outExpressCompanyCode,
tracking_number = directOrder.tracking_number,
};
// 同步单发货
MainWindow.Instance.pddBuyerOrderReadCtrl.SendAsyncWaybillOrder(orderLiteInfo, true);
}
}
+3 -2
View File
@@ -86,8 +86,9 @@ namespace _29WxOrderWpf
//shopListCtrl.Visibility = Visibility.Visible;
orderListCtrl.Visibility = Visibility.Visible;
pddBuyerOrderReadCtrl.Visibility = Visibility.Visible;
pddBuyerSelectCtrl.Visibility = Visibility.Visible;
pddBuyerOrderReadCtrl.Visibility = Visibility.Visible;
tbBuyerOrderReadCtrl.Visibility = Visibility.Visible;
pddBuyerSelectCtrl.Visibility = Visibility.Visible;
Task.Run(() =>
{
GetServerShop();
@@ -227,11 +227,12 @@ namespace _29WxOrderWpf.ViewModels
//cef 138 如果没有设置RequestContext 可能为空,直接getCookieManager
//await WPFCEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), CefWebBrowser.GetCookieManager(null));
foreach (var cook in cookieLst)
{
await WPFCEFBrowser.SetCookieAsync(cook.Domain.Trim('.'), cook.Name + "=" + cook.Value + ";", CefWebBrowser.GetCookieManager(null));
//t.Wait(5000);
}
if (OpenType != EnumOpenType.login)
foreach (var cook in cookieLst)
{
await WPFCEFBrowser.SetCookieAsync(cook.Domain.Trim('.'), cook.Name + "=" + cook.Value + ";", CefWebBrowser.GetCookieManager(null));
//t.Wait(5000);
}
//根据登录的具体店铺设置local storage
if (!string.IsNullOrEmpty(buyer?.buyer_id))
+1 -1
View File
@@ -756,7 +756,7 @@ namespace AllBase.Model.DBModel
else
IsShowChangeWaybillBtn = true;
if (IsWaitBuy)
if (IsWaitBuy || this.orderItems.All(oi => oi.ItemTransitOrderWithVoid == null))
IsShowTransitExtraPackagesBtn = false;
else
IsShowTransitExtraPackagesBtn = true;
@@ -451,8 +451,9 @@ namespace AllBase.Model.Result
if (outExpressCompanyMsg.Contains("极兔快递")) return "极兔速递";
if (outExpressCompanyMsg.Contains("申通快递")) return "申通快递";
if (outExpressCompanyMsg.Contains("韵达快递")) return "韵达快递";
if (outExpressCompanyMsg.Contains("圆通快递")) return "圆通快递";
if (outExpressCompanyMsg.Contains("中通快递")) return "中通快递";
if (outExpressCompanyMsg.Contains("圆通快递")) return "圆通快递";
if (outExpressCompanyMsg.Contains("圆通速递")) return "圆通快递";
if (outExpressCompanyMsg.Contains("中通快递")) return "中通快递";
if (outExpressCompanyMsg.Contains("百世快运")) return "百世快运";
if (outExpressCompanyMsg.Contains("百世快递")) return "百世快递";
if (outExpressCompanyMsg.Contains("顺丰速运")) return "顺丰速运";