拼多多订单自动填写退货包裹

This commit is contained in:
wule committed 2026-08-06 12:03:37 +08:00
1 parent 355a0f6be7
commit 5719cbc277
11 files changed
+225 -20

No files matched your search

@@ -87,7 +87,7 @@
<ColumnDefinition x:Name="colBuyerName" Width="100*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<CheckBox Grid.Column="0" Background="Transparent" HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding IsSelect, Mode=TwoWay}" Click="CheckBox_Click"/>
<TextBox Grid.Column="1" Background="Transparent" TextWrapping="Wrap" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" IsReadOnly="True" BorderThickness="0" Text="{Binding buyer_nick}" Cursor="Hand" MouseLeftButtonDown="TextBox_MouseLeftButtonDown" />
<TextBox Grid.Column="1" Background="Transparent" TextWrapping="Wrap" HorizontalContentAlignment="Left" VerticalContentAlignment="Center" IsReadOnly="True" BorderThickness="0" Text="{Binding buyer_nick}" x:Name="txtBuyerNick" Loaded="txtBuyerNick_Loaded" Cursor="Hand" />
</Grid>
</Border>
</DataTemplate>
@@ -947,7 +947,8 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
currentReadBuyer = "";
//return;
}
if (data.Contains("\"error_code\":40001"))
//{\"error_code\":50000,\"error_msg\":\"http error:504\"}
if (data.Contains("\"error_code\":40001") || data.Contains("\"error_code\":50000"))
{
currentReadBuyer = "";
PddMobileLoginForm.CheckBuyerLogin(new List<BuyerLoginInfo> { buyer }, false);
@@ -2368,11 +2369,13 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
if (btnHideBuyer.Content.ParseToString() == "▶")
{
btnHideBuyer.Content = "◀";
btnHideBuyer.Width = 20;
borderPddBuyer.Visibility = Visibility.Visible;
}
else
{
btnHideBuyer.Content = "▶";
btnHideBuyer.Width = 17;
borderPddBuyer.Visibility = Visibility.Collapsed;
}
}
@@ -2414,7 +2417,7 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
//if (e.Source)
}
private void TextBox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
private void txtBuyerNick_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (sender is TextBox txt)
{
@@ -2430,6 +2433,12 @@ namespace _29WxOrderWpf.Ctrls.BuyerCtrls
}
}
}
private void txtBuyerNick_Loaded(object sender, RoutedEventArgs e)
{
if (sender is TextBox txtBuyerNick)
txtBuyerNick.AddHandler(TextBox.MouseUpEvent, new MouseButtonEventHandler(txtBuyerNick_MouseLeftButtonDown), true);
}
}
public class YkdBuyerOrder
@@ -420,11 +420,16 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
}
if (string.IsNullOrEmpty(orderIds))
GetShopWaybillExceptionOrder();
// 处理店铺后台物流异常单
if (string.IsNullOrEmpty(orderIds))
GetShopWaybillExceptionOrder();
if (string.IsNullOrEmpty(orderIds))
hasReadOrder = true;
// 处理中转仓退货包裹
if (string.IsNullOrEmpty(orderIds))
AutoUpdateTransitPackageToPddShop();
if (string.IsNullOrEmpty(orderIds))
hasReadOrder = true;
Dispatcher.Invoke(new Action(() =>
{
@@ -660,6 +665,81 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
}
}
public void AutoUpdateTransitPackageToPddShop()
{
Task.Run(() =>
{
foreach (var order in GlobalConfig.lstOrder)
{
foreach (var orderItem in order.orderItems)
{
//// 测试写死
//if (orderItem.ItemOrder?.order_id == "3738160750339728384")
//{
// orderItem.ItemTransitOrderAfterSale = new oms_wei_external_procurement_after_sale_info()
// {
// downstream_waybill = "315090716621027",
// };
//}
// 260801-439070256640980260801-439070256640980
// string url = "https://mobile.yangkeduo.com/complaint.html?mode=128&after_sales_id=22059412840967&order_sn=260801-439070256640980"
if (orderItem.TransitRefundStatusStr.Contains("待用户发货") && orderItem.ItemTransitOrderAfterSale?.downstream_waybill != null)
{
string orderSn = orderItem.ItemTransitOrderWithVoid.out_order_no;
if (orderSn.IsNullOrEmpty())
continue;
string buyerNickName = orderItem.ItemTransitOrderWithVoid.buyer_account;
if (buyerNickName.IsNullOrEmpty())
continue;
var buyer = GlobalConfig.PDDBuyerLoginList.ToList().FirstOrDefault(b => b.buyer_nick == buyerNickName);
if (buyer == null)
continue;
var afterSalesId = orderItem.PddBuyerAfterSale?.afterSalesId;
if (string.IsNullOrEmpty(afterSalesId))
continue;
var waybillId = orderItem.ItemTransitOrderAfterSale.downstream_waybill;
var chkRst = AddReturnPddShopPackageInfocheck(buyer, orderSn, afterSalesId, waybillId);
var result = AddReturnPddShopPackageInfo(buyer, orderSn, afterSalesId, waybillId);
if (result.Contains("\"result\":\"ok\""))
{
orderItem.ItemTransitOrderWithVoid.refund_status = "商家处理中";
}
else
{
orderItem.ItemTransitOrderWithVoid.refund_status = "待用户发货 自动退货失败";
}
var pddBuyerOrderLiteInfo = new PddBuyerOrderLiteInfo()
{
ShopOrderIdStr = orderItem.order_id,
order_sn = orderSn,
};
// 更新中转仓退货信息
var e57Rst = PDDBuyerOrderReadCtrl.SendTransitAfterSaleE57(pddBuyerOrderLiteInfo, orderItem.ItemTransitOrderWithVoid.refund_status);
if (e57Rst.Contains("<code>0</code>") || e57Rst.Contains("<code>200</code>"))
{
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新成功", "Msg", 5);
}
else
{
var msg = BaseRegex.GetStringXml(ref e57Rst, "msg");
BaseMsgWindow.ShowAnimateMessage("买手退款信息更新失败,服务端返回 " + msg, "Error", 5);
}
// 赋值显示订单元素
Dispatcher.Invoke(new Action(() =>
{
orderItem.SetOrderItemTextProperty();
order.SetOrderTextProperty();
MainWindow.Instance.orderListCtrl.FilterOneOrder(order);
}));
}
}
}
});
}
public void disPlayOrderTabOrderCount()
{
@@ -1579,7 +1659,7 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
}
FilterOrders();
}
private void btn_ShowShopRevenueStatisticsView(object sender, RoutedEventArgs e)
{
new DialogWindow()
@@ -1588,7 +1668,67 @@ namespace _29WxOrderWpf.Ctrls.OrderCtrls
Content = new ShopRevenueStatisticsView(),
}.ShowDialog();
}
}
/// <summary>
///
/// </summary>
/// <param name="buyer"></param>
/// <param name="after_sales_id"></param>
/// <param name="shipping_name"></param>
/// <param name="shipping_id">121韵达快递 384极兔速递 115中通快递</param>
/// <param name="tracking_number"></param>
/// <returns></returns>
public string MdyReturnShippingINfo(BuyerLoginInfo buyer, string order_sn, string after_sales_id, string shipping_name, string shipping_id, string tracking_number)
{
// 物流版本 version 中通2 韵达4 极兔5
//https://mobile.yangkeduo.com/proxy/api/api/asm/modify_return_shipping_info?pdduid=5746442372052
//修改{"after_sales_id":"21943158712295","question_desc":"已发极兔速递(JT3172520393785)","version":5,"images":[],"shipping_id":384,"shipping_name":"极兔速递","tracking_number":"JT3172520393785","can_merge_tracking_number":false,"remark_shipping_name":"","id":"21943158712295"}
//{"success":true,"errorCode":1000000,"errorMsg":null,"result":null}
//修改{"after_sales_id":"21944843820487","question_desc":"已发韵达快递(315091268379268)","version":4,"images":[],"shipping_id":121,"shipping_name":"韵达快递","tracking_number":"315091268379268","can_merge_tracking_number":false,"remark_shipping_name":"","id":"21944843820487"}
//{"success":true,"errorCode":1000000,"errorMsg":null,"result":null}
//新增{"after_sales_id":"22051692661447","question_desc":"已发中通快递(73719278250925)","version":2,"images":[],"shipping_id":115,"shipping_name":"中通快递","tracking_number":"73719278250925","can_merge_tracking_number":false,"remark_shipping_name":"","express_fee":0}
//{"after_sales_status":11,"result":"ok"}
string url = "https://mobile.yangkeduo.com/proxy/api/api/asm/modify_return_shipping_info?pdduid=" + buyer.buyer_id;
string data = "{\"after_sales_id\":\"" + after_sales_id + "\",\"question_desc\":\"已发" + shipping_name + "(" + tracking_number + ")\",\"version\":4,\"images\":[],\"shipping_id\":" +
shipping_id + "," + "\"shipping_name\":\"" + shipping_name + "\",\"tracking_number\":\"" + tracking_number +
"\",\"can_merge_tracking_number\":false,\"remark_shipping_name\":\"\",\"id\":\"" + after_sales_id + "\"}";
string referer = "https://mobile.yangkeduo.com/complaint.html?mode=1024&after_sales_id=" + after_sales_id +
"&order_sn=" + order_sn + "&refer_page_name=complaints_new_detail";
return HttpResponseYkdBLL.YangkeduoPostResponse(buyer, url, data, referer);
}
public string AddReturnPddShopPackageInfo(BuyerLoginInfo buyer, string order_sn, string after_sales_id, string tracking_number,
string shipping_name = "韵达快递", string shipping_id = "121", string version = "4")
{
//https://mobile.yangkeduo.com/proxy/api/after_sales/confirm_delivery/22051692661447?pdduid=5746442372052
//修改{"after_sales_id":"21943158712295","question_desc":"已发极兔速递(JT3172520393785)","version":5,"images":[],"shipping_id":384,"shipping_name":"极兔速递","tracking_number":"JT3172520393785","can_merge_tracking_number":false,"remark_shipping_name":"","id":"21943158712295"}
//{"success":true,"errorCode":1000000,"errorMsg":null,"result":null}
//修改{"after_sales_id":"21944843820487","question_desc":"已发韵达快递(315091268379268)","version":4,"images":[],"shipping_id":121,"shipping_name":"韵达快递","tracking_number":"315091268379268","can_merge_tracking_number":false,"remark_shipping_name":"","id":"21944843820487"}
//{"success":true,"errorCode":1000000,"errorMsg":null,"result":null}
//新增{"after_sales_id":"22051692661447","question_desc":"已发中通快递(73719278250925)","version":2,"images":[],"shipping_id":115,"shipping_name":"中通快递","tracking_number":"73719278250925","can_merge_tracking_number":false,"remark_shipping_name":"","express_fee":0}
//{"after_sales_status":11,"result":"ok"}
string url = "https://mobile.yangkeduo.com/proxy/api/after_sales/confirm_delivery/" + after_sales_id + "?pdduid=" + buyer.buyer_id;
string data = "{\"after_sales_id\":\"" + after_sales_id + "\",\"question_desc\":\"已发" + shipping_name + "(" + tracking_number + ")\",\"version\":" + version +
",\"images\":[],\"shipping_id\":" + shipping_id + "," + "\"shipping_name\":\"" + shipping_name + "\",\"tracking_number\":\"" + tracking_number +
"\",\"can_merge_tracking_number\":false,\"remark_shipping_name\":\"\",\"express_fee\":0}";
string referer = "https://mobile.yangkeduo.com/complaint.html?mode=128&after_sales_id=" + after_sales_id +
"&order_sn=" + order_sn + "&refer_page_name=complaints_new_detail";
return HttpResponseYkdBLL.YangkeduoPostResponse(buyer, url, data, referer);
}
public string AddReturnPddShopPackageInfocheck(BuyerLoginInfo buyer, string order_sn, string after_sales_id, string tracking_number,
string shipping_name = "韵达快递", string shipping_id = "121")
{
string url = "https://mobile.yangkeduo.com/proxy/api/api/asm/express/tracking_number/check?pdduid=" + buyer.buyer_id;
string body = @"{""orderSn"":""" + order_sn + @""",""afterSalesId"":""" + after_sales_id + @""",""shippingId"":121,""trackingNumber"":""" + tracking_number + @"""}";
string referer = "https://mobile.yangkeduo.com/complaint.html?mode=128&after_sales_id=" + after_sales_id +
"&order_sn=" + order_sn + "";
return HttpResponseYkdBLL.YangkeduoPostResponse(buyer, url, body , referer);
}
}
}
@@ -91,7 +91,7 @@
<Button Grid.Row="9" Grid.Column="1" x:Name="btnAdd" Style="{StaticResource BasePageButtonStyle}" Click="btnAdd_Click"
Margin="0,0,0,0" Content="添 加" MinWidth="48" Height="28" HorizontalAlignment="left" VerticalAlignment="Top" Padding="4"/>
<Label x:Name="lblMsg" Foreground="{StaticResource PageWarningBrushCC}"></Label>
<Label x:Name="lblMsg" Grid.Row="9" Grid.Column="1" Margin="70,0,0,0" Foreground="{StaticResource PageWarningBrushCC}"></Label>
</Grid>
</Border>
<userctrls:UcWindowBoxes x:Name="ucWindowBox" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="4" MaxBoxVisibility="Visible"/>
@@ -71,6 +71,7 @@ namespace _29WxOrderWpf.Windows.OrderWindows
}
if (OrderItem?.ItemTransitOrder?.warehouse_status != 0 && OrderItem?.ItemTransitOrder?.warehouse_status != 1)
//if (OrderItem?.ItemTransitOrderWithVoid?.warehouse_status != 0 && OrderItem?.ItemTransitOrderWithVoid?.warehouse_status != 1)
{
btnAdd.IsEnabled = false;
//BaseMsgWindow.ShowError("当前订单仓库状态不支持售后,请联系买家直接退回总店!");
+1 -1
View File
@@ -32,7 +32,7 @@ namespace AllBase
/// 版本ID
/// </summary>
public static int VersionCount = 208;
public static int VersionCount = 209;
public static string ServerUrl { get; set; } = "http://1.13.195.131:9000";
public static string DebugUrl { get; set; } = "http://localhost:9000";
+2
View File
@@ -1170,6 +1170,8 @@ Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrom
request.Headers.Add("Sec-Fetch-Dest", @"document");
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
request.AllowAutoRedirect = false;
request.Proxy = null;
request.Method = "POST";
request.ServicePoint.Expect100Continue = false;
@@ -256,11 +256,12 @@ namespace AllBase.Model.DBModel
}
// 仓库物流售后按钮上的文字,仓库作废单不存在仓库物流,所以此处必须是有效的仓库单(含作废失败)
//if (this.ItemTransitOrder == null || !this.ItemOrder.IsRefundWithCancel)
AddEditTransitWarehouseAfterSaleStr = this.ItemTransitOrderAfterSale == null ? "添加" : "已添加";
if (this.ItemTransitOrderWithVoid == null || (!this.ItemOrder.IsEmergency && !this.ItemOrder.isAbnormal))
AddEditTransitWarehouseAfterSaleStr = "";
else
AddEditTransitWarehouseAfterSaleStr = this.ItemTransitOrderAfterSale == null ? "添加" : "已添加";
{
if (AddEditTransitWarehouseAfterSaleStr == "添加")
AddEditTransitWarehouseAfterSaleStr = "";
}
if (this.ItemTransitOrderAfterSale != null)
TransitWarehouseAfterSaleWayBillStr = (this.ItemTransitOrderAfterSale?.downstream_express_code + "-" + this.ItemTransitOrderAfterSale?.downstream_waybill).Trim('-');
+47 -3
View File
@@ -562,10 +562,25 @@ namespace Work._29Tools.BLL
return result;
}
public static string sAuthorization = "";
public static string e57PostResponse(string _url, string _data, string referer, string Authorization = null)
{
if (string.IsNullOrEmpty(Authorization))
Authorization = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjQ3YmRlOGNlLWY5MDUtNDIzOS05M2VjLWZiN2U3MjRmOTY0NiJ9.vwxhj3t4zTDdBQTyfVjcKr-0Oma8-VtPDzE2LVkw4A4aWftncY1ikXgEhGwoYHn9E7yOnhS_Pb7FfzgecTqqHA";
//if (string.IsNullOrEmpty(Authorization)) Authorization = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjQ3YmRlOGNlLWY5MDUtNDIzOS05M2VjLWZiN2U3MjRmOTY0NiJ9.vwxhj3t4zTDdBQTyfVjcKr-0Oma8-VtPDzE2LVkw4A4aWftncY1ikXgEhGwoYHn9E7yOnhS_Pb7FfzgecTqqHA";
bool isRetry = false;
if (string.IsNullOrEmpty(sAuthorization))
{
var url3 = BaseClass.Build29WxObjString("user/get_e57_authorization");
var data3 = UserLogin.GetSignaturex();
var html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = GetHtml.PostUtf8(url3, data3);
sAuthorization = BaseRegex.GetStringJson(ref html3, "authorization");
}
Retry:
HttpWebResponse response = null;
string result;
try
@@ -595,15 +610,17 @@ namespace Work._29Tools.BLL
request.Headers.Add("sec-ch-ua-mobile", @"?0");
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
request.Headers.Add("Upgrade-Insecure-Requests", @"1");
request.Headers.Add("Authorization", Authorization);
request.Headers.Add("Authorization", "Bearer " + sAuthorization);
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7";
request.Headers.Add("Sec-Fetch-Site", @"none");
request.Headers.Add("Sec-Fetch-Mode", @"navigate");
request.Headers.Add("Sec-Fetch-User", @"?1");
request.Headers.Add("Sec-Fetch-Dest", @"document");
request.Headers.Set(HttpRequestHeader.Cookie, "Admin-Token=" + sAuthorization);
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
request.Proxy = null;
request.Method = "POST";
request.ServicePoint.Expect100Continue = false;
@@ -633,11 +650,29 @@ namespace Work._29Tools.BLL
return e.Message;
}
result = HttpResponseBLL.ReadResponse(response);
if (result.Contains("没有Authorization") && !isRetry)
{
isRetry = true;
sAuthorization = "";
goto Retry;
}
return result;
}
public static string e57GetResponse(string _url, string referer)
{
bool isRetry = false;
if (string.IsNullOrEmpty(sAuthorization))
{
var url3 = BaseClass.Build29WxObjString("user/get_e57_authorization");
var data3 = UserLogin.GetSignaturex();
var html3 = GetHtml.PostUtf8(url3, data3);
if (string.IsNullOrEmpty(html3) || !html3.Contains("\"code\":200"))
html3 = GetHtml.PostUtf8(url3, data3);
sAuthorization = BaseRegex.GetStringJson(ref html3, "authorization");
}
Retry:
HttpWebResponse response = null;
string result;
try
@@ -661,14 +696,17 @@ namespace Work._29Tools.BLL
request.Headers.Add("sec-ch-ua-mobile", @"?0");
request.Headers.Add("sec-ch-ua-platform", @"""Windows""");
request.Headers.Add("Upgrade-Insecure-Requests", @"1");
request.Headers.Add("Authorization", "Bearer " + sAuthorization);
request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7";
request.Headers.Add("Sec-Fetch-Site", @"none");
request.Headers.Add("Sec-Fetch-Mode", @"navigate");
request.Headers.Add("Sec-Fetch-User", @"?1");
request.Headers.Add("Sec-Fetch-Dest", @"document");
request.Headers.Set(HttpRequestHeader.Cookie, "Admin-Token=" + sAuthorization);
request.Headers.Set(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
request.Headers.Set(HttpRequestHeader.AcceptLanguage, "zh-CN,zh;q=0.9");
request.Proxy = null;
response = (HttpWebResponse)request.GetResponse();
}
@@ -688,6 +726,12 @@ namespace Work._29Tools.BLL
return e.Message;
}
result = HttpResponseBLL.ReadResponse(response);
if (result.Contains("没有Authorization") && !isRetry)
{
isRetry = true;
sAuthorization = "";
goto Retry;
}
return result;
}
}
+1
View File
@@ -45,6 +45,7 @@ namespace Work._29Tools.BLL
request.Headers.Add("sec-ch-ua-mobile", @"?0");
request.Headers.Add("Origin", @"https://mobile.yangkeduo.com");
request.Headers.Set(HttpRequestHeader.Cookie, cookies);
//request.Headers.Add("VerifyAuthToken", @"m1PjolxzzHNRdzkNf4X0rQ4b1c734034415e092");
request.Headers.Add("Sec-Fetch-Site", @"same-origin");
request.Headers.Add("Sec-Fetch-Mode", @"cors");
request.Headers.Add("Sec-Fetch-Dest", @"empty");
+8 -1
View File
@@ -549,9 +549,16 @@ namespace TemuKJD.ToolForms
});
}
if (postData.Contains("260805-"))
{
}
// 订单提交接口
//https://mobile.yangkeduo.com/proxy/api/order/prepay?pdduid=8161628055192
if (url.StartsWith("https://mobile.yangkeduo.com/proxy/api/order/prepay?pdduid="))
//https://mobile.yangkeduo.com/proxy/api/api/van-spike/prepay?pdduid=8161628055192
if (url.StartsWith("https://mobile.yangkeduo.com/proxy/api/order/prepay?pdduid=") ||
url.StartsWith("https://mobile.yangkeduo.com/proxy/api/api/van-spike/prepay?pdduid="))
{
var data = postData;
Task.Run(() =>