using BBWYB.Client.Models; //using BBWYB.Common.Models; //using HtmlAgilityPack; //using Newtonsoft.Json; //using Newtonsoft.Json.Linq; //using System; //using System.Collections.Generic; //using System.Linq; //using System.Net.Http; //using System.Text; //using System.Text.RegularExpressions; //using System.Threading.Tasks; //namespace BBWYB.Client.Helpers //{ // /// // /// 手动支付采购单业务 // /// // public class Collect1688Helper // { // private string _1688Cookie { get; set; } // public Action AddLog { get; set; } // public Collect1688Helper(string _1688Cookie) // { // this._1688Cookie = _1688Cookie; // } // private string UrlEncode(string str, string encodingStr) // { // Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // return System.Web.HttpUtility.UrlEncode(str, Encoding.GetEncoding(encodingStr)); // } // /// // /// // /// // /// // public ProductModel GetProductMsg(string offerId)//获取限制条件 // { // string url = $"https://detail.1688.com/offer/{offerId}.html"; // using HttpClient http = new HttpClient(); // //添加cookie // http.DefaultRequestHeaders.Add("Cookie", _1688Cookie); // http.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0"); // var res = http.GetAsync(url).Result; // if (res.IsSuccessStatusCode) // { // Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // var html = res?.Content?.ReadAsStringAsync().Result; // string ipvId = GetRegexValue(html, "\"ipvId\":\"([^\"]+)\""); //可以不带ipvId // //"sellerUserId":3199397430, // //string sellerUserId = GetRegexValue(html, "\"sellerUserId\":([^,]+),"); // //"mixNumber": 2, // int mixNumber = int.Parse(GetRegexValue(html, "\"mixNumber\":([^,]+),")); // return new ProductModel() { MixNumber = mixNumber, IpvId = ipvId }; // } // AddLog("获取商品信息失败"); // return null; // } // public OrderParameter GetProductParameter(List orderProducts, OrderModel orderModel, string ipvId) // { // var flow = orderModel.ToString(); //下单类型 // string url = $"https://order.1688.com/order/smart_make_order.htm?p=detail&_input_charset=utf-8&fromkv={UrlEncode($"offerdetail:pc;ipvId:{ipvId}", "utf-8")}"; // List orderProductIds = new List(); // foreach (var orderProduct in orderProducts) // { // orderProductIds.Add(@$"{{""specId"":""{orderProduct.SpectId}"",""offerId"":{orderProduct.ProductId},""quantity"":{orderProduct.Quantity},""flow"":""{flow}"",""ext"":{{""sceneCode"":""""}},""selectedTradeServices"":[]}}"); // } // var id = UrlEncode($"[{string.Join(",", orderProductIds)}]", "gb2312"); // string postData = $"id={id}&flow=xxx"; // var response = PostHtml(url, postData, _1688Cookie); // if (response == null || !response.IsSuccessStatusCode) // { // AddLog("获取订单参数失败"); // return null; // } // // string lvid = response.Headers.Get("Eagleeye-Traceid"); // string lvid = ""; // if (response.Headers.Contains("Eagleeye-Traceid")) // { // //获取响应头 Resin-Trace的值 // var trace = response.Headers.GetValues("Eagleeye-Traceid"); // if (trace.Any()) // { // lvid = trace.FirstOrDefault(); // } // } // string html = response.Content.ReadAsStringAsync().Result; // var orderUrl = GetRegexValue(html, "action=\"([^\"]+)\"").Replace("&", "&"); // //data-default-checked-address-id="6012255930" // var address = GetRegexValue(html, "data-default-checked-address-id=\"([^\"]+)\""); // //name="_fm.smarta._0.t" value="350502005" // var townCode = GetRegexValue(html, "name=\"_fm.smarta._0.t\" value=\"([^\"]+)\""); // var res = new OrderParameter() // { // Lvid = lvid, // OrderUrl = orderUrl, // Address = address, // TownCode = townCode, // IpvId = ipvId // }; // HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); // htmlDoc.LoadHtml(html); // HtmlNode csrfInput = htmlDoc.DocumentNode.SelectSingleNode("//input[@name='_csrf_token']"); // if (csrfInput != null) // { // // 获取 value 属性的值 // string csrfTokenValue = csrfInput.GetAttributeValue("value", ""); // res.Csrf_token = csrfTokenValue; // } // // 使用XPath选择器获取
元素 // HtmlNode orderDiv = htmlDoc.DocumentNode.SelectSingleNode("//div[@id='order']"); // if (orderDiv != null) // { // List OrderGroupParameterList = new List(); // // 获取
内的所有子元素 // HtmlNodeCollection childNodes = orderDiv.ChildNodes; // foreach (HtmlNode node in childNodes) // { // // 处理每个子元素 // string innerText = node.InnerText; // 获取元素的文本内容 // string outerHtml = node.OuterHtml; // 获取元素的HTML代码 // // 其他操作... // if (node.Name == "div") // { // var zone_orders = node.Descendants("div") // .Where(div => div.Attributes.Contains("class") && div.GetAttributeValue("class", "").Equals("zone-order", StringComparison.OrdinalIgnoreCase)); // foreach (HtmlNode zone_order in zone_orders) // { // // 获取 data-source 属性的值 // string dataSourceValue = zone_order.GetAttributeValue("data-source", ""); // var groupHeaderJson = JsonConvert.DeserializeObject(dataSourceValue); // //sellerMemberId // string sellerMemberId = groupHeaderJson.sellerMemberId.ToString(); // //sellerUserId // string sellerUserId = groupHeaderJson.sellerUserId.ToString(); // ////buyerMemberId // //string buyerMemberId = groupHeaderJson.buyerMemberId.ToString(); // //orderOutId // string orderOutId = groupHeaderJson.orderOutId.ToString(); // //group // string group = groupHeaderJson.group.ToString(); // //belong // string belong = groupHeaderJson.belong.ToString(); // //flow 下单类型 // flow = groupHeaderJson?.flow?.ToString(); // //bizType // string bizType = groupHeaderJson?.bizType?.ToString(); // var groupDiv = zone_order.Descendants("li") // .Where(li => li.Attributes.Contains("class") && li.GetAttributeValue("class", "").Equals("step-item step-item-first", StringComparison.OrdinalIgnoreCase)); // //.SelectSingleNode("//li[@class='step-item step-item-first']"); // if (groupDiv == null) // { // continue; // } // string stepName = ""; // foreach (var item in groupDiv) // { // var groupDivDataSource = item.GetAttributeValue("data-source", ""); // if (groupDivDataSource != null) // { // var json = JsonConvert.DeserializeObject(groupDivDataSource); // group = json.group.ToString(); // stepName = json.stepName.ToString(); // } // } // OrderGroupParameter orderGroupParameter = new OrderGroupParameter() // { // Group = group, // StepName = stepName, // OrderOutId = orderOutId, // MemberId = sellerMemberId, // SellerUserId = sellerUserId, // Belong = belong, // }; // var groupOrders = zone_order.Descendants("tr") // .Where(tr => tr.Attributes.Contains("data-group-name")); // List productAmountList = new List(); // List OrderProductParameterList = new List(); // foreach (var groupOrder in groupOrders) // { // if (groupOrder.Name == "tr") // { // var data_source = groupOrder.GetAttributeValue("data-source", ""); // string groutOuterHtml = groupOrder.OuterHtml; // if (data_source != null) // { // var sumCarriage = GetRegexValue(groutOuterHtml, "\"fee\":([^,]+),"); // if (sumCarriage == null) // { // sumCarriage = "0"; // } // //"freightId":"18605534" // var freightId = GetRegexValue(groutOuterHtml, "\"freightId\":\"([^\"]+)\""); // //'freightId':'16850501' // if (freightId == null) // { // freightId = GetRegexValue(groutOuterHtml, "'freightId':'([^\']+)'"); // } // //'outId':'general_705889664759_df9e522ec29afb80a682fcaac1dce50c', // var outId = GetRegexValue(data_source, "'outId':'([^']+)'"); // //"discountFee":"0" // var discountFee = decimal.Parse(GetRegexValue(data_source, "\"discountFee\":\"([^\"]+)\"") ?? "0"); // var cargoKey = GetRegexValue(data_source, "'cargoKey':'([^']+)'"); // //'unitPrice':'6.33' // var unitPrice = decimal.Parse(GetRegexValue(data_source, "'unitPrice':'([^']+)'")); // var payFee = (int)(unitPrice * 100); // //'quantity':1.0 // int quantity = (int)(decimal.Parse(GetRegexValue(data_source, "'quantity':([^,]+),"))); // //'offerId':'563883060952', // var offerId = GetRegexValue(data_source, "'offerId':'([^']+)'"); // //'skuId':'ea66ab9ceff1fbcc8d0b97d4926e476f', // var spectId = GetRegexValue(data_source, "'skuId':'([^']+)'"); // //'tbSkuId':'5408119750040', // var skuId = GetRegexValue(data_source, "'tbSkuId':'([^']+)'"); // //'offerPriceRangeJson':[{"ba":1,"ea":0,"p":2.5}] // var offerPriceRangeJson = GetRegexValue(data_source, "'offerPriceRangeJson'\\s*:\\s*\\[(.*?)\\]")?.Replace(""", "\""); // var productAmount = quantity * unitPrice - discountFee; // productAmountList.Add(productAmount); // OrderProductParameterList.Add(new OrderProductParameter() // { // ProductAmount = productAmount, // CargoKey = cargoKey, // ProductId = offerId, // SkuId = skuId, // SpectId = spectId, // UnitPrice = unitPrice, // Quantity = quantity, // DiscountFee = discountFee, // SumCarriage = decimal.Parse(sumCarriage), // FreightId = freightId, // OutId = outId, // OfferPriceRangeJson = offerPriceRangeJson // }); // } // } // } // var totalProductAmount = OrderProductParameterList.Sum(p => p.ProductAmount); // var actualPay = OrderProductParameterList.Sum(p => p.ProductAmount + p.SumCarriage); // orderGroupParameter.SumCarriage = OrderProductParameterList.Sum(p => p.SumCarriage); // orderGroupParameter.ActualPay = actualPay; // orderGroupParameter.ActualPayFee = (int)(actualPay * 100); // orderGroupParameter.TotalProductAmount = totalProductAmount; // orderGroupParameter.PayFee = (int)(totalProductAmount * 100); // orderGroupParameter.OrderProductParameterList = OrderProductParameterList; // OrderGroupParameterList.Add(orderGroupParameter); // } // } // } // res.OrderGroupParameterList = OrderGroupParameterList; // } // return res; // } // /// // /// 输入临时收货地址(姓名 手机号 收货地址)或者直接输入地址 (主要获取邮编编码) //feiyu 19959858952 福建省泉州市鲤城区金龙街道古龙路媒人桥2号三文公寓一楼齐越中转仓 // /// // public AddressModel InputAddress(string adress, string _csrf_token) // { // //callback=jQuery17207000444400310621_1711938052406&address=feiyu+19959858952+%E7%A6%8F%E5%BB%BA%E7%9C%81%E6%B3%89%E5%B7%9E%E5%B8%82%E9%B2%A4%E5%9F%8E%E5%8C%BA%E9%87%91%E9%BE%99%E8%A1%97%E9%81%93%E5%8F%A4%E9%BE%99%E8%B7%AF%E5%AA%92%E4%BA%BA%E6%A1%A52%E5%8F%B7%E4%B8%89%E6%96%87%E5%85%AC%E5%AF%93%E4%B8%80%E6%A5%BC%E9%BD%90%E8%B6%8A%E4%B8%AD%E8%BD%AC%E4%BB%93&_csrf_token=42b5ba743ad1a219f275a0f2b8f13303&_input_charset=utf-8 // string url = $"https://wuliu.1688.com/address/ajax/address_parse.jsx?callback=jQuery17207000444400310621_1711938052406&address={UrlEncode(adress, "utf-8")}&_csrf_token={_csrf_token}&_input_charset=utf-8"; // /* // jQuery17207000444400310621_1711938052406({ // "data": { // "addressDetail": "金龙街道古龙路媒人桥2号三文公寓一楼齐越中转仓", // "city": "泉州市", // "cityCode": 350500, // "district": "鲤城区", // "districtCode": 350502, // "divisionZip": "362000", // "mobileNO": "19959858952", // "personalName": "feiyu", // "province": "福建省", // "provinceCode": 350000 // }, // "success": true //}) // */ // using HttpClient http = new HttpClient(); // http.BaseAddress = new Uri(url); // http.DefaultRequestHeaders.Add("Cookie", _1688Cookie); // http.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0"); // var res = http.GetAsync(url).Result; // if (res.IsSuccessStatusCode) // { // Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // var html = res?.Content?.ReadAsStringAsync().Result; // if (html.Contains("会话已过期,请刷新页面")) // { // AddLog?.Invoke("登陆已过期,请刷新页面"); // return null; // } // var addressCode = GetRegexValue(html, "\"districtCode\":(\\d+)"); // var divisionZip = GetRegexValue(html, "\"divisionZip\":\"([^\"]+)\""); // var mobileNO = GetRegexValue(html, "\"mobileNO\":\"([^\"]+)\""); // var personalName = GetRegexValue(html, "\"personalName\":\"([^\"]+)\""); // var addressDetail = GetRegexValue(html, "\"addressDetail\":\"([^\"]+)\""); // return new AddressModel() // { // AddressDetail = addressDetail, // DivisionZip = divisionZip, // MobileNO = mobileNO, // PersonalName = personalName, // AddressCode = addressCode // }; // } // return null; // } // //刷新物流列表 // public OrderParameter ReflashAdress(OrderParameter oldData, AddressModel addressModel, OrderModel orderModel) // { // string url = "https://order.1688.com/order/smart_ajax.jsx?_input_charset=utf-8"; // List generalOrders_orderGroupKeyList = new List(); // foreach (var orderGroup in oldData.OrderGroupParameterList) // { // List orderList = new List(); // foreach (var orderProduct in orderGroup.OrderProductParameterList) // { // string freightId = orderProduct.FreightId; // string order = $@"{{""offerId"":""{orderProduct.ProductId}"",""skuId"":""{orderProduct.SpectId}"",""tbSkuId"":""{orderProduct.SkuId}"",""hasSkuUmp"":""false"",""outId"":""{orderProduct.OutId}"",""quantity"":{orderProduct.Quantity},""isfreefreight"":0,""marketingScene"":"""",""offerPriceRangeJson"":[{orderProduct.OfferPriceRangeJson}],""unitPrice"":""{orderProduct.UnitPrice}"",""bundle"":"""",""couple"":"""",""freightId"":""{freightId}"",""rebate"":0,""buyerBearServiceFee"":false,""gift"":""0""}}"; // orderList.Add(order); // } // string orderGroupData = $@"""{orderGroup.Group}"":{{""order"":[{string.Join(",", orderList)}] ,""orderOutId"":""{orderGroup.OrderOutId}"",""orderBundle"":"""",""orderCouple"":"""",""type"":""address"",""memberId"":""{orderGroup.MemberId}"",""sellerUserId"":""{orderGroup.SellerUserId}"",""operate"":"""",""countyCode"":""{addressModel.AddressCode}"",""addressCode"":""{addressModel.AddressCode}"",""address"":""-1"",""townCode"":"""",""umpSysAvailble"":""1"",""bizType"":""{orderModel}"",""bizScene"":""{orderModel}"",""transportType"":""multiStep"",""groupId"":""{orderGroup.Group}"",""tplCode"":""assureTrade"",""countryISOCode"":"""",""channelId"":"""",""mobile"":""{addressModel.MobileNO}"",""orderAmount"":""{orderGroup.ActualPayFee}"",""carriage"":""{orderGroup.SumCarriage}"",""belong"":""{orderGroup.Belong}""}}"; // generalOrders_orderGroupKeyList.Add(orderGroupData); // } // string generalOrders_orderGroupKey = string.Join(",", generalOrders_orderGroupKeyList); // string data = $"{{\"ordersUmp.0\":{{\"orderBlockAjaxParam\":{{\"{orderModel}Orders..orderGroupKey\":{{{generalOrders_orderGroupKey}}}}},\"changeType\":\"address\",\"selectedCrossPromotionId\":\"\",\"selectedCrossPromotionIdMap\":\"{{}}\",\"bizScene\":\"{orderModel}\"}}}}"; // string postData = $"tasks=ordersUmp.0&data={UrlEncode(data, "UTF-8")}&_csrf_token={oldData.Csrf_token}&lvId={oldData.Lvid}"; // var response = PostHtml(url, postData, _1688Cookie); // if (response == null || !response.IsSuccessStatusCode) // { // AddLog("获取订单参数失败"); // return null; // } // // string lvid = response.Headers.Get("Eagleeye-Traceid"); // if (response.Headers.Contains("Eagleeye-Traceid")) // { // //获取响应头 Resin-Trace的值 // var trace = response.Headers.GetValues("Eagleeye-Traceid"); // if (trace.Any()) // { // oldData.Lvid = trace.FirstOrDefault(); // } // } // var html = response.Content.ReadAsStringAsync().Result; // var json = JsonConvert.DeserializeObject(html); // dynamic jsonObj = JsonConvert.DeserializeObject(html); // if (jsonObj["success"].ToString() == "true") // { // var datawuliu = jsonObj["data"]["ordersUmp.0"]["data"]["orderPromotion"].ToString(); // //获取键值对的方式 // bool isReflash = false; // JObject jbO = JObject.Parse(datawuliu); // foreach (var property in jbO.Properties()) // { // var key = property.Name; // var groupData = oldData.OrderGroupParameterList.SingleOrDefault(o => o.Group == key); // var value = property.Value; // //获取value下的 freight // var freight = (JObject)value["freight"]; // //获取freight的键值对的key值 // foreach (var item in freight.Properties()) // { // var freightKey = item.Name; // var freightValue = item.Value; // //获取freight的键值对的value值 // //totalFreightFee的值 // var wuliufee = freightValue["totalFreightFee"].ToString(); // groupData.OrderProductParameterList.OrderByDescending(s => s.SumCarriage).FirstOrDefault(g => g.FreightId == freightKey).SumCarriage = decimal.Parse(wuliufee) / 100m; // isReflash = true; // } // var order = (JObject)value["order"]; // foreach (var item in order.Properties()) // { // var outId = item.Name; // var orderProduct = groupData.OrderProductParameterList.FirstOrDefault(g => g.OutId == outId); // if (orderProduct != null) // { // orderProduct.ProductAmount = item.Value["amount"].ToObject(); // //selectedUmpBundle 的couple // var skuSelectedUmpBundle = item.Value["selectedUmpBundle"]; // if (skuSelectedUmpBundle != null) // { // var couple = skuSelectedUmpBundle["couple"].ToString(); // var sceneUnitPrice = skuSelectedUmpBundle["sceneUnitPrice"].ToObject(); // var discountFee = skuSelectedUmpBundle["price"].ToObject();//折扣价格 // var skuChooseFreeFreight = skuSelectedUmpBundle["isFreeFreight"].ToObject() ? 1 : 0; // orderProduct.Couple = couple; // orderProduct.ChooseFreeFreight = skuChooseFreeFreight; // orderProduct.ProductAmount = orderProduct.UnitPrice * orderProduct.Quantity - discountFee; // } // } // } // //selectedShopUmpBundle // var selectedShopUmpBundle = value["selectedShopUmpBundle"]; // bool isFreeFreight = false; // decimal shopDiscountFee = 0; // string shopCouple = ""; // if (selectedShopUmpBundle != null) // { // shopCouple = selectedShopUmpBundle["couple"].ToString();//店铺优惠券 // isFreeFreight = selectedShopUmpBundle["isFreeFreight"].ToObject();//是否包邮 // shopDiscountFee = selectedShopUmpBundle["price"].ToObject();//店铺优惠金额 // } // groupData.ChooseFreeFreight = isFreeFreight ? 1 : 0; // groupData.PromotionId = shopCouple; // if (isFreeFreight) // groupData.SumCarriage = 0; // else // groupData.SumCarriage = groupData.OrderProductParameterList.Select(s => s.SumCarriage).Sum(); // groupData.TotalProductAmount = groupData.OrderProductParameterList.Select(s => s.ProductAmount).Sum(); // groupData.ActualPay = groupData.TotalProductAmount + groupData.SumCarriage - shopDiscountFee; // groupData.ActualPayFee = (int)(groupData.ActualPay * 100); // } // if (isReflash) // { // AddLog?.Invoke("刷新地址成功"); // } // else // { // AddLog?.Invoke("刷新地址失败"); // } // } // else // { // AddLog?.Invoke("刷新地址失败"); // } // return oldData; // } // public string GetCookieStr(string cookies, string cookieName) // { // //通过;分割 // var cookieDatas = cookies.Split(';', StringSplitOptions.RemoveEmptyEntries); // foreach (var cookie in cookieDatas) // { // var cookieParams = cookie.Split('='); // if (cookieParams.Count() >= 2) // { // var key = cookieParams[0]?.Trim(); // var value = cookieParams[1]?.Trim(); // if (key == cookieName) // { // return value; // } // } // } // return ""; // } // private string GetRegexValue(string html, string patternStr) // { // //使用正则匹配出值 // var regex = Regex.Match(html, patternStr); // if (regex.Success) // { // return regex.Groups[1].Value; // } // return null; // } // //获取_csrf_token参数 // public string GetCsrfToken(string cookies) // { // var csrf_token = GetCookieStr(cookies, "_csrf_token"); // if (csrf_token == null) // { // return null; // } // return Md5Helper.Md5_32(csrf_token); // } // //加入购物车 // public void AddCart(string offerId, string specId, int quantity, string IpvId) // { // try // { // //时间戳 // var timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); // string url = "https://cart.1688.com/ajax/safe/add_to_cart_list_new.jsx"; // string ext = $"{{\"sceneCode\":\"offerdetail:pc;ipvId:{IpvId}\"}}"; // string specData = $"[{{\"amount\":{quantity},\"specId\":\"{specId}\",\"selectedTradeServices\":[]}}]"; // string postData = $"type=offer&cargoIdentity={offerId}&returnType=url&needTotalPrice=false&promotionSwitch=false&_csrf_token={GetCsrfToken(_1688Cookie)}&t={timestamp}&purchaseType=&ext={UrlEncode(ext, "utf-8")}&specData={UrlEncode(specData, "utf-8")}"; // var res = PostHtml(url, postData, _1688Cookie); // if (res.IsSuccessStatusCode) // { // var html = res.Content.ReadAsStringAsync().Result; // var json = JsonConvert.DeserializeObject(html); // if (json.success) // { // AddLog?.Invoke("成功加入购物车"); // } // else // { // AddLog?.Invoke("加入购物车失败"); // } // } // } // catch (Exception ex) // { // AddLog?.Invoke($"加入购物车失败:{ex.Message}"); // } // } // public ApiResponse CommitOrder(PrewOrderResponse prewOrderResponse, string remarkMesg) // { // var productParameter = prewOrderResponse.orderParameter; // var orderModel = prewOrderResponse.OrderModel; // var adressModel = prewOrderResponse.AddressModel; // var flow = orderModel.ToString(); //下单类型 // var ipvId = productParameter.IpvId; // var addressDetail = adressModel.AddressDetail; // var townCode = productParameter.TownCode; // var csrf_token = productParameter.Csrf_token; // var orderUrl = productParameter.OrderUrl; // var addressCode = adressModel.AddressCode; // var lvid = productParameter.Lvid; // var personalName = adressModel.PersonalName; // var mobileNO = adressModel.MobileNO; // var _csrf_token = productParameter.Csrf_token; // var divisionZip = adressModel.DivisionZip; // // 213e38fa17117750507943145ee537 // string fromkv = $"offerdetail:pc;ipvId:{productParameter.IpvId}";//24885ba917116953616677208e // //string remarkMesg = "拖鞋";//备注消息 // string cna = GetCookieStr(_1688Cookie, "cna"); // List _fm_sm_0_iList = new List(); // List _fm_sma_cargoKeyList = new List(); // List _fm_smartin_group_meList = new List(); // List smarts_mList = new List(); // List _fm_smart_group_meList = new List(); // List _fm_sma_group_g_fList = new List(); // foreach (var OrderGroupParameter in productParameter.OrderGroupParameterList) // { // var group = OrderGroupParameter.Group; // var discountFee = OrderGroupParameter.DiscountFee; // var sumCarriage = OrderGroupParameter.SumCarriage; // var stepName = OrderGroupParameter.StepName; // var totalProductAmount = OrderGroupParameter.TotalProductAmount.ToString("0.00"); // var actualPay = OrderGroupParameter.ActualPay; // var actualPayFee = OrderGroupParameter.ActualPayFee; // var payFee = OrderGroupParameter.PayFee; // var shopCouple = OrderGroupParameter.PromotionId; // var chooseFreeFreight = OrderGroupParameter.ChooseFreeFreight; // foreach (var orderProductParameter in OrderGroupParameter.OrderProductParameterList) // { // var cargoKey = orderProductParameter.CargoKey; // var unitPrice = orderProductParameter.UnitPrice.ToString("0.00"); // var productAmount = orderProductParameter.ProductAmount; // var quantity = orderProductParameter.Quantity; // var offerId = orderProductParameter.ProductId; // var specId = orderProductParameter.SpectId; // var tbSkuId = orderProductParameter.SkuId; // var skuChooseFreeFreight = orderProductParameter.ChooseFreeFreight; // var _fm_sm_0_i_ = @$"{{""cartId"":"""",""offerId"":""{offerId}"",""specId"":""{specId}"",""tbSkuId"":""{tbSkuId}"",""hasSkuUmp"":""false"",""quantity"":{quantity},""tradeMode"":""multiStep"",""tradeWay"":""100"",""templateCode"":""assureTrade"",""flow"":""{flow}"",""subflow"":"""",""ext"":""{{\""sceneCode\"":\""\""}}""}}"; // _fm_sm_0_iList.Add(_fm_sm_0_i_); // string _fm_sma_cargoKey = @$"{{""group"":""{group}"",""cargoKey"":""{cargoKey}"",""quantity"":{quantity},""unitPrice"":""{unitPrice}"",""offerId"":""{offerId}"",""specId"":""{specId}"",""tbSkuId"":""{tbSkuId}"",""hasSkuUmp"":""false"",""chooseFreeFreight"":{skuChooseFreeFreight},""productAmount"":""{productAmount}"",""discount"":1,""isVirtual"":""0"",""gift"":"""",""cartId"":"""",""promotionId"":""{orderProductParameter.Couple}"",""ext"":""{{\""sceneCode\"":\""\""}}"",""buyerCharge"":false,""marketingScene"":""""}}"; // _fm_sma_cargoKeyList.Add($"_fm.smar.{cargoKey}.m={UrlEncode(_fm_sma_cargoKey, "gb2312")}"); // } // string smarts_m = @$"[{{""group"":""{group}"",""stepNo"":""1"",""templateId"":""30"",""stepName"":""{UrlEncode(stepName, "GB2312")}"",""instantPay"":""0"",""sellerActionName"":"""",""buyerPayTimeout"":""0"",""buyerConfirmTimeout"":""0"",""needSellerAction"":""0"",""transferAfterConfirm"":""0"",""needSellerCallNext"":""0"",""isStepPayAll"":""0"",""agreement"":"""",""needLogistics"":""1"",""percent"":""1.0"",""deliveryPercent"":""1.0"",""payFee"":""{payFee}"",""actualPayFee"":""{actualPayFee}"",""discountFee"":""{discountFee}"",""itemDiscountFee"":""0"",""price"":""0"",""amount"":""1"",""postFee"":""0"",""mergedJsonVar"":""""}}]"; // smarts_mList.Add(smarts_m); // string _fm_smart_group_me = @$"{{""group"":""{group}"",""tplCode"":""assureTrade"",""message"":""{remarkMesg}"",""sumCarriage"":""{sumCarriage}"",""totalAmount"":""{actualPay}"",""totalProductAmount"":""{totalProductAmount}"",""chooseFreeFreight"":{chooseFreeFreight},""mixAmount"":"""",""mixNumber"":""1"",""promotionId"":""{shopCouple}"",""umpSysAvailble"":""1"",""toleranceFreight"":""${{model.toleranceCollection.toleranceFreight}}"",""checkCarriage"":1,""filledCarriage"":""0.00"",""isNeedSellerConfirmFlag"":""0"",""lvid"":""{lvid}"",""fundUsageSelected"":""0"",""hasTaosampleCard"":""0"",""anonymousBuyer"":true,""payEntry"":""multiStep"",""bizType"":""{flow}"",""payWay"":""100"",""orderCodFee"":0,""crossPromotionIds"":[],""crossPromotionIdsMap"":{{}},""crossShopPromotions"":[],""terminal"":""pc_browser_null_0.0.0"",""cna"":""{cna}"",""fromkv"":""{fromkv}""}}"; // _fm_smart_group_meList.Add($"_fm.smart.{group}.me={UrlEncode(_fm_smart_group_me, "GB2312")}"); // string _fm_smartin_group_me = @$"{{ ""invoiceFlag"":false,""invoiceType"":0,""invoiceMode"":"""",""streetAddress"":"""",""registerPhone"":"""",""bank"":"""",""accountId"":"""",""companyName"":"""",""localInvoiceId"":""undefined"",""taxpayerIdentifier"":"""",""extParams"":{{ ""email"":""""}},""group"":""{group}""}}"; // _fm_smartin_group_meList.Add($"_fm.smartin.{group}.me={UrlEncode(_fm_smartin_group_me, "GB2312")}&_fm.smartin.{group}.i=false"); // _fm_sma_group_g_fList.Add($"_fm.sma.{group}.g={group}&_fm.sma.{group}.f={flow}"); // } // var _fm_smarts_0_m = $"[{string.Join(",", smarts_mList)}]"; // var _fm_sm_0_i = $"[{string.Join(",", _fm_sm_0_iList)}]"; // string cargoKeyStr = string.Join("&", _fm_sma_cargoKeyList); // string _fm_smart_group_meStr = string.Join("&", _fm_smart_group_meList); // string _fm_smartin_group_meStr = string.Join("&", _fm_smartin_group_meList); // string _fm_smart_group_g_fStr = string.Join("&", _fm_sma_group_g_fList); // string url = orderUrl; // string key = GetRegexValue(orderUrl, "key=(\\d+)"); // Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // string adress = UrlEncode(addressDetail, "GB2312");// // string userName = UrlEncode(personalName, "GB2312"); // string phoneNumber = UrlEncode(mobileNO, "GB2312"); // var timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); // string postData = $"action=SmartMakeOrderAction&event_submit_execute=Action&fromWhere=confirmOrder&fromType=normal&_fm.smarti._0.me=%7B%7D&_fm.smarti._0.i=false&_csrf_token={_csrf_token}" + // $"&_fm.sm._0.f=xxx&_fm.sm._0.i={UrlEncode(_fm_sm_0_i, "GB2312")}&_fm.sm._0.k={key}&_fm.sm._0.a=0&_fm.sm._0.q=&_fm.sm._0.in=&_fm.sm._0.fr=&_fm.sm._0.fro=&_fm.sm._0.s=&_fm.sm._0.se=&_fm.sm._0.p=-1&_fm.sm._0.e=&_fm.sm._0.is=false&_fm.sm._0.null=cart&_fm.sm._0.ex=" + // $"&_fm.sm._0.sc=&_fm.smart._PAGE_LEVEL_.me=%7B%22group%22%3A%22_PAGE_LEVEL_%22%7D&{_fm_smart_group_meStr}&{cargoKeyStr}" + // $"&{_fm_smart_group_g_fStr}&_fm.smartm._0.m=&_fm.smarta._0.ar={addressCode}&_fm.smarta._0.p={addressCode}&_fm.smarta._0.c={addressCode}&_fm.smarta._0.po={divisionZip}&_fm.smarta._0.ad={adress}&_fm.smarta._0.t=&_fm.smarta._0.to=&_fm.smarta._0.f={userName}" + // $"&_fm.smarta._0.ph=&_fm.smarta._0.m={phoneNumber}&_fm.smarta._0.i=false&_fm.smarta._0.is=true&_fm.smarta._0.a=-1&{_fm_smartin_group_meStr}&" + // $"_fm.smarts._0.m={_fm_smarts_0_m}&_fm.r._0.w={timestamp}"; // var s = GetOrderId(url, postData, _1688Cookie); // if (s != null) // { // AddLog?.Invoke($"下单成功,返回订单号:{s}"); // return new ApiResponse() { Code = 200, Data = s }; // } // else // { // AddLog.Invoke("下单失败"); // return new ApiResponse() { Code = 1000, Msg = "下单失败" }; // } // return new ApiResponse() { Code = 1000, Msg = "下单失败" }; // } // private string GetOrderId(string url, string postData, string cookie) // { // var response = PostHtml(url, postData, cookie); // if (response.IsSuccessStatusCode) // { // Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // var sss = response.Content.ReadAsStringAsync().Result; // if (response.Headers.Contains("Resin-Trace")) // { // //获取响应头 Resin-Trace的值 // var trace = response.Headers.GetValues("Resin-Trace"); // if (trace.Any()) // { // var traceValue = trace.FirstOrDefault(); // if (traceValue.Contains("biz_order")) // { // var biz_order = GetRegexValue(traceValue, "biz_order=(\\d+[,]?\\d+)");//获取下单号 // return biz_order; // } // } // } // } // return null; // } // public HttpResponseMessage PostHtml(string url, string postData, string cookie) // { // HttpClient client = new HttpClient(); // //使用 application/x-www-form-urlencoded post提交 // client.DefaultRequestHeaders.Add("Cookie", cookie); // //postData = "action=SmartMakeOrderAction&event_submit_execute=Action&fromWhere=confirmOrder&fromType=normal&_fm.smarti._0.me=%7B%7D&_fm.smarti._0.i=false&_csrf_token=e107b86e348b5ff07dd1d1e4b0dff58f&_fm.sm._0.f=xxx&_fm.sm._0.i=%5B%7B%22cartId%22%3A%22%22%2C%22offerId%22%3A%22755527819845%22%2C%22specId%22%3A%2248b8df3db448c6bad0e847c317886360%22%2C%22tbSkuId%22%3A%225207346876796%22%2C%22hasSkuUmp%22%3A%22false%22%2C%22quantity%22%3A1%2C%22tradeMode%22%3A%22multiStep%22%2C%22tradeWay%22%3A%22100%22%2C%22templateCode%22%3A%22assureTrade%22%2C%22flow%22%3A%22general%22%2C%22subflow%22%3A%22%22%2C%22ext%22%3A%22%7B%5C%22sceneCode%5C%22%3A%5C%22%5C%22%7D%22%7D%5D&_fm.sm._0.k=171179300009192219&_fm.sm._0.a=0&_fm.sm._0.q=&_fm.sm._0.in=&_fm.sm._0.fr=&_fm.sm._0.fro=&_fm.sm._0.s=&_fm.sm._0.se=&_fm.sm._0.p=-1&_fm.sm._0.e=&_fm.sm._0.is=false&_fm.sm._0.null=detail&_fm.sm._0.ex=&_fm.sm._0.sc=&_fm.smart._PAGE_LEVEL_.me=%7B%22group%22%3A%22_PAGE_LEVEL_%22%7D&_fm.smart.d4d7e431d5b30a44df6a8b2e50a58237.me=%7B%22group%22%3A%22d4d7e431d5b30a44df6a8b2e50a58237%22%2C%22tplCode%22%3A%22assureTrade%22%2C%22message%22%3A%22%22%2C%22sumCarriage%22%3A%222.40%22%2C%22totalAmount%22%3A%228.73%22%2C%22totalProductAmount%22%3A%226.33%22%2C%22chooseFreeFreight%22%3A0%2C%22mixAmount%22%3A%22%22%2C%22mixNumber%22%3A%221%22%2C%22promotionId%22%3A%22%22%2C%22umpSysAvailble%22%3A%221%22%2C%22toleranceFreight%22%3A%22%24%7Bmodel.toleranceCollection.toleranceFreight%7D%22%2C%22checkCarriage%22%3A1%2C%22filledCarriage%22%3A%220.00%22%2C%22isNeedSellerConfirmFlag%22%3A%220%22%2C%22lvid%22%3A%2224885bad17117929999545039e%22%2C%22fundUsageSelected%22%3A%220%22%2C%22hasTaosampleCard%22%3A%220%22%2C%22anonymousBuyer%22%3Afalse%2C%22payEntry%22%3A%22multiStep%22%2C%22bizType%22%3A%22general%22%2C%22payWay%22%3A%22100%22%2C%22orderCodFee%22%3A0%2C%22crossPromotionIds%22%3A%5B%5D%2C%22crossPromotionIdsMap%22%3A%7B%7D%2C%22crossShopPromotions%22%3A%5B%5D%2C%22terminal%22%3A%22pc_browser_null_0.0.0%22%2C%22cna%22%3A%224Ha%2FHb9%2B8QEBASQJijR52Awl%22%2C%22fromkv%22%3A%22offerdetail%3Apc%3BipvId%3A213e36ab17117929945421320e75bd%22%7D&_fm.smar.755527819845_48b8df3db448c6bad0e847c317886360.m=%7B%22group%22%3A%22d4d7e431d5b30a44df6a8b2e50a58237%22%2C%22cargoKey%22%3A%22755527819845_48b8df3db448c6bad0e847c317886360%22%2C%22quantity%22%3A1%2C%22unitPrice%22%3A%226.33%22%2C%22offerId%22%3A%22755527819845%22%2C%22specId%22%3A%2248b8df3db448c6bad0e847c317886360%22%2C%22tbSkuId%22%3A%225207346876796%22%2C%22hasSkuUmp%22%3A%22false%22%2C%22chooseFreeFreight%22%3A0%2C%22productAmount%22%3A%226.33%22%2C%22discount%22%3A1%2C%22isVirtual%22%3A%220%22%2C%22gift%22%3A%22%22%2C%22cartId%22%3A%22%22%2C%22promotionId%22%3A%22%22%2C%22ext%22%3A%22%7B%5C%22sceneCode%5C%22%3A%5C%22%5C%22%7D%22%2C%22buyerCharge%22%3Afalse%2C%22marketingScene%22%3A%22%22%7D&_fm.sma.d4d7e431d5b30a44df6a8b2e50a58237.g=d4d7e431d5b30a44df6a8b2e50a58237&_fm.sma.d4d7e431d5b30a44df6a8b2e50a58237.f=general&_fm.smartm._0.m=&_fm.smarta._0.ar=350502&_fm.smarta._0.p=350502&_fm.smarta._0.c=350502&_fm.smarta._0.po=362000&_fm.smarta._0.ad=%BD%F0%C1%FA%BD%D6%B5%C0%B9%C5%C1%FA%C2%B7%C3%BD%C8%CB%C7%C52%BA%C5%C8%FD%CE%C4%B9%AB%D4%A2%D2%BB%C2%A5%C6%EB%D4%BD%D6%D0%D7%AA%B2%D6&_fm.smarta._0.t=&_fm.smarta._0.to=&_fm.smarta._0.f=feiyu&_fm.smarta._0.ph=&_fm.smarta._0.m=19959858952&_fm.smarta._0.i=false&_fm.smarta._0.is=true&_fm.smarta._0.a=-1&_fm.smartin.d4d7e431d5b30a44df6a8b2e50a58237.me=%7B%22invoiceFlag%22%3Afalse%2C%22invoiceType%22%3A0%2C%22invoiceMode%22%3A%22%22%2C%22streetAddress%22%3A%22%22%2C%22registerPhone%22%3A%22%22%2C%22bank%22%3A%22%22%2C%22accountId%22%3A%22%22%2C%22companyName%22%3A%22%22%2C%22localInvoiceId%22%3A%22undefined%22%2C%22taxpayerIdentifier%22%3A%22%22%2C%22extParams%22%3A%7B%22email%22%3A%22%22%7D%2C%22group%22%3A%22d4d7e431d5b30a44df6a8b2e50a58237%22%7D&_fm.smartin.d4d7e431d5b30a44df6a8b2e50a58237.i=false&_fm.smarts._0.m=%5B%7B%22group%22%3A%22d4d7e431d5b30a44df6a8b2e50a58237%22%2C%22stepNo%22%3A%221%22%2C%22templateId%22%3A%2230%22%2C%22stepName%22%3A%22%C8%AB%BF%EE%BD%BB%D2%D7%22%2C%22instantPay%22%3A%220%22%2C%22sellerActionName%22%3A%22%22%2C%22buyerPayTimeout%22%3A%220%22%2C%22buyerConfirmTimeout%22%3A%220%22%2C%22needSellerAction%22%3A%220%22%2C%22transferAfterConfirm%22%3A%220%22%2C%22needSellerCallNext%22%3A%220%22%2C%22isStepPayAll%22%3A%220%22%2C%22agreement%22%3A%22%22%2C%22needLogistics%22%3A%221%22%2C%22percent%22%3A%221.0%22%2C%22deliveryPercent%22%3A%221.0%22%2C%22payFee%22%3A%22633%22%2C%22actualPayFee%22%3A%22873%22%2C%22discountFee%22%3A%220%22%2C%22itemDiscountFee%22%3A%220%22%2C%22price%22%3A%220%22%2C%22amount%22%3A%221%22%2C%22postFee%22%3A%220%22%2C%22mergedJsonVar%22%3A%22%22%7D%5D&_fm.r._0.u=140%232w2Dve%2FuzzFMcQo2HiuuFpSanxQgLwMah9FA4xt5yifr2OblcBB8%2FtDVlIZFbEvZcpX14c7HBH%2FAuyTRlaOhIoZWFnLe69cgf%2BoiOnbjo3hqzzn7YQqA3VuzzR8ZiahulFzx2DD3VthqzFrLGXY4U6SxzoObV2EqQG3Y2Ac%2Bx%2BmozFdO2XU%2BobTxzIc7VOg%2FlIXx2Dd6%2F61XrQc12XQzlpg7zPnRVr7uljFo2Aw%2B66G7zFrw2XQ%2B5TjqzWXf3YRLMZ2aMXm"; // Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // HttpContent content = new StringContent(postData, Encoding.GetEncoding("GB2312"), "application/x-www-form-urlencoded"); // var response = client.PostAsync(url, content).Result; // return response; // } // public PrewOrderResponse PrewOrder(List orderProducts, string address, OrderModel orderModel) // { // var flow = orderModel.ToString(); //下单类型 // //获取时间戳 // var timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); // var ipvId = Md5Helper.Md5_32(timestamp.ToString()); // var productParameter = GetProductParameter(orderProducts, orderModel, ipvId); // var _csrf_token = productParameter.Csrf_token; // var lvid = productParameter.Lvid; // var orderUrl = productParameter.OrderUrl; // var adressModel = InputAddress(address, _csrf_token); // if (adressModel == null) // { // return null; // } // AddLog?.Invoke($"获取地址信息成功,姓名:{adressModel.PersonalName},手机号:{adressModel.MobileNO},地址:{adressModel.AddressDetail},邮编:{adressModel.DivisionZip}"); // var addressCode = adressModel.AddressCode; // var addressDetail = adressModel.AddressDetail; // var personalName = adressModel.PersonalName; // var mobileNO = adressModel.MobileNO; // var divisionZip = adressModel.DivisionZip; // //刷新地址 // productParameter = ReflashAdress(productParameter, adressModel, orderModel); // return new PrewOrderResponse // { // AddressModel = adressModel, // orderParameter = productParameter, // OrderModel = orderModel, // ActualPay = productParameter.OrderGroupParameterList.Select(s => s.ActualPay).Sum(), // SumCarriage = productParameter.OrderGroupParameterList.Select(s => s.SumCarriage).Sum(), // TotalProductAmount = productParameter.OrderGroupParameterList.Select(s => s.TotalProductAmount).Sum() // }; // } // } //}