using System; using System.Collections.Generic; using System.Threading; using System.Windows.Forms; using AllBase; using Work.CollectClass; using System.IO; namespace Work.Api { public class UploadPinduoduoDeleteSku { public ShopChatBase Shop; public string Name; public TaobaoProductBase Us; public ProductCollectBase pb = null; public string SkuString; public string SkuStringApi; public long NewUpId = 0; public decimal MinPrice = 0, MaxPrice = 0; public Dictionary Data = new Dictionary(); public bool CanUpload = true; public int Cat1 = 0; public long pid = 0; public string title = ""; public string skus = ""; public UploadPinduoduoDeleteSku(string name, ShopChatBase shop, TaobaoProductBase us, string sku, string skuApi) { Name = name; Shop = shop; Us = us.Clone(); SkuString = sku; SkuStringApi = skuApi; } public UploadPinduoduoDeleteSku() { } public bool GetNew() { Us.FromId = Us.GoodsId; GetProductDetail ge = new GetProductDetail(Shop, Name); var r = ge.Get(Us.GoodsId); if (r == null) return false; string apiImageString = ""; for (int i = 0; i < r.carousel_gallery_list.Count && i < 1; i++) { apiImageString += ",\"" + r.carousel_gallery_list[i] + "\""; } if (Data.ContainsKey("carousel_gallery") && !string.IsNullOrEmpty(Data["carousel_gallery"]) && Data["carousel_gallery"].Contains(",") && !string.IsNullOrEmpty(apiImageString)) { string[] l = Data["carousel_gallery"].Replace("\"", "").Replace("[", "").Replace("]", "").Split(','); for (int i = 0; i < l.Length && i < 9; i++) { apiImageString += ",\"" + l[i] + "\""; } Data["carousel_gallery"] = "[" + apiImageString.Substring(1) + "]"; } Data["thumb_url"] = r.thumb_url; Data["image_url"] = r.image_url; Data["cat_id"] = r.cat_id.ToString(); string mustCode = ""; string properties = UploadPinduoduoProperties.GetNew(r.cat_id, 0, ref pb, ref Shop, out mustCode); if (!Data.ContainsKey("goods_properties")) Data.Add("goods_properties", ""); if (!string.IsNullOrEmpty(mustCode)) Data["goods_properties"] = "[" + mustCode.Substring(1) + "]"; else Data["goods_properties"] = ""; PinduoduoApiGetProduct api = new PinduoduoApiGetProduct(Shop); api.Data = Data; if (Shop.SignErrorTimes.ContainsKey(DateTime.Now.ToString("yyyy-MM-dd")) && Shop.SignErrorTimes[DateTime.Now.ToString("yyyy-MM-dd")] > 3) return false; string html = api.UpdataNew(); if (html.Contains("惩罚") || html.Contains("新协议") || html.Contains("协议已更新") || html.Contains("高风险店铺") || html.Contains("配送地区") || html.Contains("店铺资质") && !html.Contains("出于监管要求") || html.Contains("通过审核")) { string msg = BaseRegex.GetStringJson(ref html, "error_msg") + BaseRegex.GetStringJson(ref html, "sub_msg"); MessageBox.Show("店铺:" + Shop.ShopName + " 错误:\r\n" + msg); CanUpload = false; return false; } if (!string.IsNullOrEmpty(BaseRegex.GetStringJson(ref html, "error_msg"))) return false; long goods_commit_id = BaseRegex.GetLongJson(ref html, "goods_commit_id"); api = new PinduoduoApiGetProduct(Shop); long upid = 0; html = api.GetRelation(r.goods_id.ToString()); // 有获取到对应的上家id if (html.Contains("out_goods_id") && html.Contains("out_goods_platform")) upid = BaseRegex.GetLongJson(ref html, "out_goods_id"); else upid = Randomx.GetId(100000, 9999999) * (long)Randomx.GetId(10, 99999); html = api.Relation(Us.GoodsId, upid, (int)(MinPrice * 0.96m), (int)(MaxPrice * 0.96m), 0, 0); Thread.Sleep(500); int goods_status = 1; for (int i = 0; goods_commit_id > 0 && i < 600 && goods_status == 1; i++) { html = new PinduoduoApiGetProduct(Shop).GetCommitDetail(goods_commit_id); goods_status = BaseRegex.GetIntJson(ref html, "goods_status"); if (goods_status == 1) Thread.Sleep(1 * 1000); } if (goods_commit_id > 0) new PinduoduoApiGetProduct(Shop).DeleteCommitDetail(goods_commit_id); if (goods_status != 2 && goods_status != 4) return false; return true; //模拟接口 if (Shop.UpCount++ > 150) { LogSave.Add(Name, "店铺" + Shop.ShopName + ",上传数据已经达到上限"); return false; } long pinId; string error_msg; string addContent = ""; string url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/create_by_sn"; string refere = "https://mms.pinduoduo.com/Pdd.html"; string data = "{\"goods_id\":" + Us.GoodsId + "}"; html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data, Shop.Cookies); pinId = BaseRegex.GetLongJson(ref html, "goods_commit_id"); if (pinId == 0) { Thread.Sleep(30 * 1000); html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data, Shop.Cookies); pinId = BaseRegex.GetLongJson(ref html, "goods_commit_id"); } if (!string.IsNullOrEmpty(html) && html.Contains("达到上限")) { error_msg = BaseRegex.GetStringJson(ref html, "error_msg") + BaseRegex.GetStringJson(ref html, "sub_msg"); Shop.CanUpload = false; Shop.Message = error_msg; UploadPinduoduoMain.ShopTemp.Add(Shop); Error("提交异常:" + r.goods_name, error_msg); return false; } if (pinId == 0) { Error("创建异常:" + r.goods_name + " 无法获取编辑ID ", "无法获取编辑ID"); return false; } if (",2,6586,6785,6883,6758,6536,6630,6398,".Contains("," + Cat1 + ","))//食品 { addContent += ",\"shelf_life\":300,\"start_production_date\":" + BaseClass.GetTime(DateTime.Now.AddDays(-5)) + ",\"end_production_date\":" + BaseClass.GetTime(DateTime.Now); } else { addContent += ",\"shelf_life\":\"\",\"start_production_date\":\"\",\"end_production_date\":\"\""; } string propertiesx = UploadPinduoduoProperties.GetNew(pb.cat_id, Cat1, ref pb, ref Shop, out mustCode); if (!string.IsNullOrEmpty(propertiesx)) { propertiesx = "[" + propertiesx.Substring(1) + "]"; } //string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000"; //string str = ""; //for (int i = 0; i < 16; i++) //{ // str += new Random(Guid.NewGuid().GetHashCode()).Next(9); //} //string strToken = str + "-" + strTime; //string strNumber = ""; //string temp2 = strTime + "," + strToken + "," + strNumber; //string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, strToken, strNumber); //string codex = ExecuteScript(fun2, strContent); string codex = ""; //using (IJsEngine jsEngine = new V8JsEngine()) //{ // jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms); // codex = jsEngine.CallFunction("aaa", "").ToString(); //} string dataUp = "{\"cat_id\":" + r.cat_id + ",\"crawlerInfo\":\"" + codex + "\",\"goods_type\":\"1\",\"country\":\"\",\"country_id\":\"\"," + "\"warehouse\":\"\",\"customs\":\"\",\"is_customs\":0,\"is_pre_sale\":0,\"pre_sale_time\":\"\"," + "\"is_refundable\":1,\"shipment_limit_second\":172800,\"event_type\":\"0\",\"is_folt\":\"1\"," + "\"goods_name\":\"" + pb.name + "\",\"tiny_name\":\"" + Data["tiny_name"] + "\",\"market_price\":" + Data["market_price"] + ",\"share_desc\":\"" + Data["goods_desc"] + ":\",\"goods_desc\":\"" + Data["goods_desc"] + "\"," + "\"image_url\":\"\",\"thumb_url\":\"" + Data["thumb_url"] + "\",\"hd_thumb_url\":\"" + Data["hd_thumb_url"] + "\"," + "\"gallery\":[" + Data["gallery"] + "],\"cost_template_id\":\"" + Shop.ExpressId.ToString() + "\",\"weight\":\"1.00\",\"warm_tips\":\"\"," + "\"skus\":" + skus + ",\"out_goods_sn\":\"" + Data["out_goods_id"] + "\",\"groups\":{\"customer_num\":" + UploadPinduoduoMain.GroupCount + "," + "\"buy_limit\":" + UploadPinduoduoMain.BuyLimit + ",\"order_limit\":" + UploadPinduoduoMain.OrderLimit + "},\"production_license\":\"\",\"production_standard_number\":\"\"" + addContent + ",\"goods_commit_id\":\"" + pinId + "\"}"; if (!string.IsNullOrEmpty(propertiesx)) { dataUp += ",\"goods_properties\":" + propertiesx + ""; } url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/update"; html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, dataUp, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); if (string.IsNullOrEmpty(error_msg)) error_msg = BaseRegex.GetStringJson(ref html, "errorMsg"); error_msg += BaseRegex.GetStringJson(ref html, "sub_msg"); if (string.IsNullOrEmpty(html) || !html.Contains("{\"success\":")) { Thread.Sleep(20 * 1000); if (!string.IsNullOrEmpty(error_msg) && error_msg.Contains("规格错误")) { Error("保存异常:" + r.goods_name + " " + error_msg, error_msg); return false; } if (!string.IsNullOrEmpty(error_msg) && error_msg.Contains("过于频繁")) { LogSave.Add(Name, "太快了,休眠1分钟"); Thread.Sleep(100 * 1000); } html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, dataUp, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); if (string.IsNullOrEmpty(error_msg)) error_msg = BaseRegex.GetStringJson(ref html, "errorMsg"); } if (string.IsNullOrEmpty(html) || !html.Contains("{\"success\":true")) { Thread.Sleep(20 * 1000); if (!string.IsNullOrEmpty(error_msg) && error_msg.Contains("过于频繁")) Thread.Sleep(100 * 1000); html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, dataUp, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); if (string.IsNullOrEmpty(error_msg)) error_msg = BaseRegex.GetStringJson(ref html, "errorMsg"); error_msg += BaseRegex.GetStringJson(ref html, "sub_msg"); } if (string.IsNullOrEmpty(html) || !html.Contains("{\"success\":true")) { Error("保存异常:" + r.goods_name + " " + error_msg, error_msg); return false; } url = "https://mms.pinduoduo.com/glide/v2/mms/query/goods/is_commit_available/" + pinId; html = GetPostTaobaoHtml.UploadTaobao(url, refere, true, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); if (string.IsNullOrEmpty(error_msg)) error_msg = BaseRegex.GetStringJson(ref html, "errorMsg"); if (string.IsNullOrEmpty(html) || !html.Contains("{\"success\":true")) { if (!string.IsNullOrEmpty(error_msg) && error_msg.Contains("过于频繁")) Thread.Sleep(100 * 1000); Thread.Sleep(10 * 1000); html = GetPostTaobaoHtml.UploadTaobao(url, refere, true, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); if (string.IsNullOrEmpty(error_msg)) error_msg = BaseRegex.GetStringJson(ref html, "errorMsg"); } if (string.IsNullOrEmpty(html) || !html.Contains("{\"success\":true")) { Error("保存异常,校验失败:" + r.goods_name, error_msg); return false; } url = "https://mms.pinduoduo.com/glide/v2/mms/query/commit/detail/" + pinId; html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, "", Shop.Cookies); url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/submit"; //using (IJsEngine jsEngine = new V8JsEngine()) //{ // jsEngine.Execute(GetProductOnlineClass.JsCodeGetSms); // codex = jsEngine.CallFunction("aaa", "").ToString(); //} data = "{\"goods_commit_id\":\"" + pinId + "\",\"crawlerInfo\":\"" + codex + "\"}"; html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); if (string.IsNullOrEmpty(error_msg)) error_msg = BaseRegex.GetStringJson(ref html, "errorMsg"); if (string.IsNullOrEmpty(html) || !html.Contains("{\"success\":true")) { if (!string.IsNullOrEmpty(error_msg) && error_msg.ToLower().Contains("sku")) { Error("提交异常:" + r.goods_name, error_msg); return false; } if (!string.IsNullOrEmpty(error_msg) && error_msg.Contains("敏感词")) { Error("提交异常:" + r.goods_name, error_msg); return false; } //if (!string.IsNullOrEmpty(error_msg) && error_msg.Contains("账号安全")) //{ // FullToday = true; // Shop.CanUpload = false; // Error("提交异常:" + t.Titlte, error_msg); // return; //} if (!string.IsNullOrEmpty(error_msg) && error_msg.Contains("数量上限")) { Shop.CanUpload = false; Error("提交异常:" + r.goods_name, error_msg); return false; } if (!string.IsNullOrEmpty(error_msg) && (error_msg.Contains("二级惩罚") || error_msg.Contains("店铺资质") || error_msg.Contains("通过审核"))) { Shop.CanUpload = false; Error("提交异常:" + r.goods_name, error_msg); return false; } Thread.Sleep(10 * 1000); html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); if (string.IsNullOrEmpty(error_msg)) error_msg = BaseRegex.GetStringJson(ref html, "errorMsg"); } if (string.IsNullOrEmpty(html) || !html.Contains("{\"success\":true")) { Error("提交异常:" + r.goods_name, error_msg); return false; } if (UploadPinduoduoMain.SingleThreadCount > 1) Thread.Sleep(10 * 1000); else Thread.Sleep(5 * 1000); return true; } /// /// 设置错误信息 /// /// /// public void Error(string messageShow, string message) { LogSave.Add(Name, messageShow); } public bool Get() { Us.FromId = Us.GoodsId; GetProductDetail ge = new GetProductDetail(Shop, Name); var r = ge.Get(Us.GoodsId); if (r == null) return false; //if (!",6586,6785,6883,6758,6536,6630,6398,2,,6785,1715,6883,13176,13177,13178,".Contains(Cat1.ToString())) // Data["cat_id"] = "10780"; //else Data["cat_id"] = PinduoduoCatList.GetNewCat3(int.Parse(Data["cat_id"])).ToString(); //Data["cat_id"] = "10795";//9706 string imageString = "", apiImageString = "", apiContentString = ""; for (int i = 0; i < r.carousel_gallery_list.Count; i++) { apiImageString += ",\"" + r.carousel_gallery_list[i] + "\""; } if (!string.IsNullOrEmpty(Data["carousel_gallery"]) && Data["carousel_gallery"].Contains(",") && !string.IsNullOrEmpty(apiImageString)) { Data["carousel_gallery"] = Data["carousel_gallery"].Substring(0, Data["carousel_gallery"].IndexOf(",")) + apiImageString.Substring(0, apiImageString.LastIndexOf(",")) + "]"; } Data["image_url"] = r.image_url; //string skuString = "{\"is_onsale\":1,\"limit_quantity\":" + r.sku[0].limit_quantity + // ",\"quantity_delta\":" + r.sku[0].quantity + ",\"thumb_url\":\"\"," + // "\"multi_price\":" + r.sku[0].multi_price + ",\"price\":" + // r.sku[0].price + ",\"out_sku_sn\":0,\"id\":0,\"spec\":\"\",\"weight\":1000}"; //string skuApiString = "{\"is_onsale\":1,\"limit_quantity\":" + UploadPinduoduoMain.LimitBuy + // ",\"price\":\"" + r.sku[0].price + "\",\"weight\":1000,\"multi_price\":\"" + r.sku[0].multi_price // + "\",\"thumb_url\":\"\",\"out_sku_sn\":\"\",\"quantity\":" + UploadPinduoduoMain.LimitBuy + ",\"spec_id_list\":\"[]\"}"; string skuApiStringNew = ""; int maxPrice = 0, minPrice = Int32.MaxValue; for (int i = 0; i < r.sku_list.Count; i++) { if (maxPrice < r.sku_list[i].multi_price) maxPrice = r.sku_list[i].multi_price; if (minPrice > r.sku_list[i].multi_price) minPrice = r.sku_list[i].multi_price; string spec = ""; for (int j = 0; j < r.sku_list[i].spec.Count; j++) spec += "," + r.sku_list[i].spec[j].spec_id; if (!string.IsNullOrEmpty(spec)) spec = spec.Substring(1); skuApiStringNew += ",{\"is_onsale\":" + r.sku_list[i].is_onsale + ",\"limit_quantity\":" + r.sku_list[i].limit_quantity + ",\"price\":\"" + r.sku_list[i].price + "\",\"weight\":1000,\"multi_price\":\"" + r.sku_list[i].multi_price + "\",\"thumb_url\":\"" + r.sku_list[i].thumb_url + "\",\"out_sku_sn\":\"" + r.sku_list[i].out_sku_sn + "\",\"quantity\":1,\"spec_id_list\":\"[" + spec + "]\"}"; } string catId = Data["cat_id"]; int market_price = r.market_price; string addContent = ",\"fabric\":" + r.fabricx + ",\"fabric_content\":" + r.fabric_contentx; Data["market_price"] = market_price.ToString(); //================移除附加属性处理=========================== if (Data.ContainsKey("shelf_life")) Data.Remove("shelf_life"); if (Data.ContainsKey("start_production_date")) Data.Remove("start_production_date"); if (Data.ContainsKey("end_production_date")) Data.Remove("end_production_date"); if (Data.ContainsKey("goods_properties")) Data.Remove("goods_properties"); if (Data.ContainsKey("fabric")) Data.Remove("fabric"); if (Data.ContainsKey("fabric_content")) Data.Remove("fabric_content"); int Cat1 = 0; if (PinduoduoCatList.CatIds.ContainsKey(int.Parse(catId))) Cat1 = PinduoduoCatList.CatIds[int.Parse(catId)].cat1; if (Data.ContainsKey("goods_properties")) Data.Remove("goods_properties"); string mustCode = ""; string goodsProperties = UploadPinduoduoProperties.GetNew(int.Parse(catId), Cat1, ref pb, ref Shop, out mustCode); if (!string.IsNullOrEmpty(mustCode)) Data.Add("goods_properties", "[" + mustCode.Substring(1) + "]"); //电器 //if (!Data.ContainsKey("goods_properties") && ",14913,15540,14913,9647,9610,9559,9558,9551,6247,6167,6034,6028,6024,6006,5989,5982,5965,5963,5961,5959,5757,5671,5670,3030,657,".Contains("," + catId + ",")) //{ // Data.Add("goods_properties", "[{\"template_pid\":33050,\"template_module_id\":7185,\"pid\":5,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33051,\"template_module_id\":7185,\"pid\":93,\"vid\":24044,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33053,\"template_module_id\":7185,\"pid\":67,\"value\":\"\",\"value_unit\":\"\"}," + // "{\"template_pid\":33052,\"template_module_id\":7185,\"pid\":59,\"vid\":0,\"value\":\"" + Randomx.GetId(2000, 2017) + "0" + Randomx.GetId(10000, 99999) + "" + Randomx.GetId(100000, 999999) + "\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",983,".Contains("," + catId + ","))//卷纸 //{ // Data.Add("paper_net_weight", "100"); // Data.Add("paper_length", "100"); // Data.Add("paper_width", "100"); // Data.Add("paper_plies_num", "1"); //} //if (!Data.ContainsKey("goods_properties") && ",3046,".Contains("," + catId + ","))//充电器 //{ // Data.Add("goods_properties", "[{\"template_pid\":33643,\"template_module_id\":7305,\"pid\":5,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33644,\"template_module_id\":7305,\"pid\":40,\"vid\":17130,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33646,\"template_module_id\":7305,\"pid\":63,\"value\":\"\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",3109,".Contains("," + catId + ","))//充电器2 //{ // Data.Add("goods_properties", "[{\"template_pid\":33110,\"template_module_id\":7198,\"pid\":5,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33111,\"template_module_id\":7198,\"pid\":2,\"vid\":0,\"value_unit\":\"mAh\"},{\"template_pid\":33112,\"template_module_id\":7198,\"pid\":89,\"vid\":0,\"value_unit\":\"mm\"},{\"template_pid\":33113,\"template_module_id\":7198,\"pid\":90,\"vid\":0,\"value_unit\":\"mm\"},{\"template_pid\":33114,\"template_module_id\":7198,\"pid\":91,\"vid\":0,\"value_unit\":\"mm\"},{\"template_pid\":33115,\"template_module_id\":7198,\"pid\":88,\"vid\":0,\"value_unit\":\"g\"},{\"template_pid\":33116,\"template_module_id\":7198,\"pid\":40,\"vid\":17130,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33117,\"template_module_id\":7198,\"pid\":16,\"value\":\"\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",6167,14913,".Contains("," + catId + ","))//充电器2 //{ // Data.Add("goods_properties", "[{\"template_pid\":33134,\"template_module_id\":7201,\"pid\":5,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33139,\"template_module_id\":7201,\"pid\":93,\"vid\":24044,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33145,\"template_module_id\":7201,\"pid\":67,\"vid\":0,\"value\":\"100\",\"value_unit\":\"W\"},{\"template_pid\":33135,\"template_module_id\":7201,\"pid\":40,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33136,\"template_module_id\":7201,\"pid\":142,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33137,\"template_module_id\":7201,\"pid\":49,\"value\":\"\",\"value_unit\":\"\"}," + // "{\"template_pid\":33140,\"template_module_id\":7201,\"pid\":59,\"vid\":0,\"value\":\"" + Randomx.GetId(2000, 2017) + "0" + Randomx.GetId(10000, 99999) + "" + Randomx.GetId(100000, 999999) + "\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",6169,9527,".Contains("," + catId + ","))//个人护理 //{ // Data.Add("goods_properties", "[{\"template_pid\":33120,\"template_module_id\":7199,\"pid\":5,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33122,\"template_module_id\":7199,\"pid\":7,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33123,\"template_module_id\":7199,\"pid\":40,\"vid\":57490,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33124,\"template_module_id\":7199,\"pid\":207,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33126,\"template_module_id\":7199,\"pid\":67,\"vid\":\"100\",\"value\":\"\",\"value_unit\":\"W\"}," + // "{\"template_pid\":33125,\"template_module_id\":7199,\"pid\":59,\"vid\":0,\"value\":\"" + Randomx.GetId(2000, 2017) + "0" + Randomx.GetId(10000, 99999) + "" + Randomx.GetId(100000, 999999) + "\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",6248,".Contains("," + catId + ","))//电源方式 //{ // Data.Add("goods_properties", "[{\"template_pid\":30365,\"template_module_id\":6680,\"pid\":5,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":30366,\"template_module_id\":6680,\"pid\":67,\"vid\":0,\"value_unit\":\"W\"},{\"template_pid\":30367,\"template_module_id\":6680,\"pid\":40,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":30368,\"template_module_id\":6680,\"pid\":33,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":30369,\"template_module_id\":6680,\"pid\":133,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":30370,\"template_module_id\":6680,\"pid\":16,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":30371,\"template_module_id\":6680,\"pid\":96,\"vid\":28237,\"value\":\"\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",14932,".Contains("," + catId + ","))//纸尿片 //{ // Data.Add("goods_properties", "[{\"template_pid\":33590,\"template_module_id\":7294,\"pid\":5,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33591,\"template_module_id\":7294,\"pid\":9,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33592,\"template_module_id\":7294,\"pid\":55,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33594,\"template_module_id\":7294,\"pid\":316,\"vid\":0,\"value\":\"其他\",\"value_unit\":\"\"},{\"template_pid\":33595,\"template_module_id\":7294,\"pid\":317,\"vid\":0,\"value\":\"未知\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",14932,".Contains("," + catId + ","))//纸尿片 //{ // Data.Add("goods_properties", "[{\"template_pid\":33590,\"template_module_id\":7294,\"pid\":5,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33591,\"template_module_id\":7294,\"pid\":9,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33592,\"template_module_id\":7294,\"pid\":55,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":33594,\"template_module_id\":7294,\"pid\":316,\"vid\":0,\"value\":\"其他\",\"value_unit\":\"\"},{\"template_pid\":33595,\"template_module_id\":7294,\"pid\":317,\"vid\":0,\"value\":\"未知\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",15540,".Contains("," + catId + ","))//热水袋 //{ // Data.Add("goods_properties", "[{\"template_pid\":17018,\"template_module_id\":4030,\"pid\":5,\"value\":\"\",\"value_unit\":\"\"},{\"template_pid\":16996,\"template_module_id\":4030,\"pid\":40,\"vid\":57495,\"value\":\"\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",6586,6785,6883,6758,6536,6630,6398,,".Contains("," + Cat1 + ",")) //食品 //{ // Data.Add("shelf_life", "300"); // Data.Add("start_production_date", BaseClass.GetTime(DateTime.Today).ToString()); // Data.Add("end_production_date", BaseClass.GetTime(DateTime.Today).ToString()); // Data.Add("goods_properties", "[{\"template_pid\":5876,\"template_module_id\":1385,\"pid\":57,\"vid\":0,\"value\":\"" + // DateTime.Today.ToString("yyyy-MM-dd") + // "\",\"value_unit\":\"\"},{\"template_pid\":5877,\"template_module_id\":1385,\"pid\":58,\"vid\":0,\"value\":\"300\",\"value_unit\":\"天\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",13176,".Contains("," + Cat1 + ","))//处方药 //{ // Data.Add("goods_properties", "[{\"template_pid\":9284,\"template_module_id\":2359,\"pid\":92,\"vid\":0,\"value\":\"Z" + Randomx.GetId(10000000, 99999999) + Randomx.GetId(1, 9) + "\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",13178,".Contains("," + Cat1 + ","))//非处方药 //{ // Data.Add("goods_properties", "[{\"template_pid\":21473,\"template_module_id\":4913,\"pid\":234,\"vid\":0,\"value\":\"ZC201" + Randomx.GetId(1000, 9999) + Randomx.GetId(1, 9) + "\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",2,6586,6785,6883,6758,6536,6630,6398,,63,64,65,92,95,99,101,3853,3862,3867,3872,3876,3900,898,897,3993,1079,".Contains("," + Cat1 + ",")) //食品 //{ // Data.Add("shelf_life", "300"); // Data.Add("start_production_date", BaseClass.GetTime(DateTime.Today).ToString()); // Data.Add("end_production_date", BaseClass.GetTime(DateTime.Today).ToString()); // Data.Add("goods_properties", "[{\"template_pid\":5876,\"template_module_id\":1385,\"pid\":57,\"vid\":0,\"value\":\"" + // DateTime.Today.ToString("yyyy-MM-dd") + // "\",\"value_unit\":\"\"},{\"template_pid\":5877,\"template_module_id\":1385,\"pid\":58,\"vid\":0,\"value\":\"300\",\"value_unit\":\"天\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",13176,".Contains("," + Cat1 + ",") && !",13184,13183,".Contains(Cat2.ToString())) //{ // Data.Add("goods_properties", "[{\"template_pid\":9284,\"template_module_id\":2359,\"pid\":92,\"vid\":0,\"value\":\"Z" + Randomx.GetId(10000000, 99999999) + Randomx.GetId(1, 9) + "\",\"value_unit\":\"\"}]"); //} //if (!Data.ContainsKey("goods_properties") && ",8439,".Contains("," + Cat1 + ",")) //{ // Data.Add("goods_properties", "[{\"template_pid\":35576,\"template_module_id\":7709,\"pid\":5,\"value\":\"\",\"value_unit\":\"\"}]"); //} //===================================其他类目========================================== //Data["cat_id"] = GetReplaceCat(Shop.MainCatId, oldId).ToString(); Data["sku_list"] = "[" + skuApiStringNew.Substring(1) + "]"; Data["customer_num"] = "2"; Data["goods_desc"] = r.goods_name; string newName = Data["goods_name"]; Data["goods_name"] = BaseClass.SubCharLength(r.goods_name.Replace("✅", "").Replace("◆", ""), 60); PinduoduoApiGetProduct api = new PinduoduoApiGetProduct(Shop); api.Data = Data; if (Shop.SignErrorTimes.ContainsKey(DateTime.Now.ToString("yyyy-MM-dd")) && Shop.SignErrorTimes[DateTime.Now.ToString("yyyy-MM-dd")] > 3) return false; string html = api.Updata(); if (html.Contains("惩罚") || html.Contains("新协议") || html.Contains("协议已更新") || html.Contains("高风险店铺") || html.Contains("配送地区") || html.Contains("店铺资质") && !html.Contains("出于监管要求") || html.Contains("通过审核")) { string msg = BaseRegex.GetStringJson(ref html, "error_msg") + BaseRegex.GetStringJson(ref html, "sub_msg"); MessageBox.Show("店铺:" + Shop.ShopName + " 错误:\r\n" + msg); CanUpload = false; return false; } if (!string.IsNullOrEmpty(BaseRegex.GetStringJson(ref html, "error_msg"))) return false; long goods_commit_id = BaseRegex.GetLongJson(ref html, "goods_commit_id"); api = new PinduoduoApiGetProduct(Shop); long upid = 0; html = api.GetRelation(r.goods_id.ToString()); // 有获取到对应的上家id if (html.Contains("out_goods_id") && html.Contains("out_goods_platform")) { upid = BaseRegex.GetLongJson(ref html, "out_goods_id"); html = api.Relation(r.goods_id, upid, (int)(MinPrice * 0.94m), (int)(MaxPrice * 0.94m), 0, 0); } else { upid = Randomx.GetId(100000, 9999999) * (long)Randomx.GetId(10, 99999); html = api.Relation(Us.GoodsId, upid, (int)(MinPrice * 0.96m), (int)(MaxPrice * 0.96m), 0, 0); } Thread.Sleep(500); int goods_status = 1; for (int i = 0; goods_commit_id > 0 && i < 600 && goods_status == 1; i++) { html = new PinduoduoApiGetProduct(Shop).GetCommitDetail(goods_commit_id); goods_status = BaseRegex.GetIntJson(ref html, "goods_status"); if (goods_status == 1) Thread.Sleep(1 * 1000); } if (goods_commit_id > 0) new PinduoduoApiGetProduct(Shop).DeleteCommitDetail(goods_commit_id); string url, data, refere; if (goods_status != 2 && goods_status != 4) return false; return true; //return true; //Data["sku_list"] = "[" + skuApiStringNew.Substring(1) + "]"; //Data["goods_name"] = newName; //api = new PinduoduoApiGetProduct(Shop); //api.Data = Data; //html = api.Updata(); //Thread.Sleep(10 * 1000); //goods_commit_id = BaseRegex.GetLongJson(ref html, "goods_commit_id"); //goods_status = 1; //for (int i = 0; goods_commit_id > 0 && i < 5 && goods_status == 1; i++) //{ // html = new PinduoduoApiGetProduct(Shop).GetCommitDetail(goods_commit_id); // goods_status = BaseRegex.GetIntJson(ref html, "goods_status"); // if (goods_status != 2) // Thread.Sleep(10 * 1000); //} //if (goods_status != 2) // return false; //return true; //r.goods_name = BaseClass.SubCharLength(r.goods_name, 60); //api = new PinduoduoApiGetProduct(Shop); //api.Data.Add("goods_id", Us.GoodsId.ToString()); //api.Data.Add("goods_name", r.goods_name); //api.Data.Add("goods_type", "1"); //api.Data.Add("goods_desc", r.goods_desc); //api.Data.Add("cat_id", r.cat_id.ToString()); //api.Data.Add("tiny_name", ""); //api.Data.Add("country_id", "0"); //api.Data.Add("market_price", market_price.ToString()); //api.Data.Add("is_pre_sale", "false"); //api.Data.Add("shipment_limit_second", "172800"); //api.Data.Add("cost_template_id", r.cost_template_id.ToString()); //api.Data.Add("customer_num", UploadPinduoduoMain.GroupCount.ToString());//团购人数 //api.Data.Add("buy_limit", UploadPinduoduoMain.LimitBuy.ToString()); //api.Data.Add("order_limit", UploadPinduoduoMain.LimitBuy.ToString()); //api.Data.Add("is_refundable", "true"); //api.Data.Add("second_hand", "false"); //api.Data.Add("is_folt", "true"); //if (!string.IsNullOrEmpty(addContent)) //{ // int fabric = BaseRegex.GetIntJson(ref addContent, "fabric"); // int fabric_content = BaseRegex.GetIntJson(ref addContent, "fabric_content"); // api.Data.Add("fabric", fabric.ToString()); // api.Data.Add("fabric_content", fabric_content.ToString()); //} //api.Data.Add("sku_list", "[" + skuApiString + "]"); //api.Data.Add("out_goods_id", ""); //api.Data.Add("hd_thumb_url", r.hd_thumb_url); //api.Data.Add("thumb_url", r.thumb_url); //api.Data.Add("image_url", r.image_url); //api.Data.Add("carousel_gallery", "[" + apiImageString.Substring(1) + "]"); //api.Data.Add("detail_gallery", "[" + apiContentString.Substring(1) + "]"); //if (",2,6586,6785,6883,6758,6536,6630,6398,".Contains("," + Us.Cat1 + ","))//食品 //{ // api.Data.Add("shelf_life", "300"); // api.Data.Add("start_production_date", BaseClass.GetTime(DateTime.Now.AddDays(-5)).ToString()); // api.Data.Add("end_production_date", BaseClass.GetTime(DateTime.Now).ToString()); //} //html = api.Updata(); //return; //var ju = new JumpUpProductNew(Shop); //ju.OutGoodId = r.commit_extension.out_goods_sn; //ju.GetUrl(Us.GoodsId.ToString()); //int from = 7; //api = new PinduoduoApiGetProduct(Shop); //html = api.Relation(Us.GoodsId, ju.UpId.ProductIdFrom, (int)(r.sku[0].price * 93), (int)(r.sku[0].price * 93), 0, from); //Thread.Sleep(10 * 1000); //api = new PinduoduoApiGetProduct(Shop); //api.Data.Add("goods_id", Us.GoodsId.ToString()); //api.Data.Add("goods_name", r.goods_name); //api.Data.Add("goods_type", "1"); //api.Data.Add("goods_desc", r.goods_desc); //api.Data.Add("cat_id", r.cat_id.ToString()); //api.Data.Add("tiny_name", ""); //api.Data.Add("country_id", "0"); //api.Data.Add("market_price", market_price.ToString()); //api.Data.Add("is_pre_sale", "false"); //api.Data.Add("shipment_limit_second", "172800"); //api.Data.Add("cost_template_id", r.cost_template_id.ToString()); //api.Data.Add("customer_num", UploadPinduoduoMain.GroupCount.ToString());//团购人数 //api.Data.Add("buy_limit", UploadPinduoduoMain.LimitBuy.ToString()); //api.Data.Add("order_limit", UploadPinduoduoMain.LimitBuy.ToString()); //api.Data.Add("is_refundable", "true"); //api.Data.Add("second_hand", "false"); //api.Data.Add("is_folt", "true"); //if (!string.IsNullOrEmpty(addContent)) //{ // int fabric = BaseRegex.GetIntJson(ref addContent, "fabric"); // int fabric_content = BaseRegex.GetIntJson(ref addContent, "fabric_content"); // api.Data.Add("fabric", fabric.ToString()); // api.Data.Add("fabric_content", fabric_content.ToString()); //} //api.Data.Add("sku_list", "[" + SkuStringApi + "]"); //api.Data.Add("out_goods_id", ""); //api.Data.Add("hd_thumb_url", r.hd_thumb_url); //api.Data.Add("thumb_url", r.thumb_url); //api.Data.Add("image_url", r.image_url); //api.Data.Add("carousel_gallery", "[" + apiImageString.Substring(1) + "]"); //api.Data.Add("detail_gallery", "[" + apiContentString.Substring(1) + "]"); //if (",2,6586,6785,6883,6758,6536,6630,6398,".Contains("," + Us.Cat1 + ","))//食品 //{ // api.Data.Add("shelf_life", "300"); // api.Data.Add("start_production_date", BaseClass.GetTime(DateTime.Now.AddDays(-5)).ToString()); // api.Data.Add("end_production_date", BaseClass.GetTime(DateTime.Now).ToString()); //} //from = 0; //html = api.Updata(); //api = new PinduoduoApiGetProduct(Shop); //html = api.Relation(Us.GoodsId, NewUpId, (int)(MinPrice * 95), (int)(MaxPrice * 95), 0, from); //Thread.Sleep(10 * 1000); //if (!string.IsNullOrEmpty(html) && html.Contains("\"is_success\":true")) //{ // return; //} //return; //Thread.Sleep(10 * 1000); useSecond: ////二次编辑 string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000"; string str = ""; for (int i = 0; i < 16; i++) { str += new Random(Guid.NewGuid().GetHashCode()).Next(9); } string strToken = str + "-" + strTime; string strNumber = ""; string temp2 = strTime + "," + strToken + "," + strNumber; string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, strToken, strNumber); string codex = ""; url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/create_by_sn"; refere = "https://mms.pinduoduo.com/Pdd.html"; data = "{\"goods_id\":" + Us.GoodsId + "}"; html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data, Shop.Cookies); long pinId = BaseRegex.GetLongJson(ref html, "goods_commit_id"); if (pinId == 0) { Thread.Sleep(30 * 1000); html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data, Shop.Cookies); pinId = BaseRegex.GetLongJson(ref html, "goods_commit_id"); } if (pinId == 0) return false; string dataUp = "{\"cat_id\":" + r.cat_id + ",\"crawlerInfo\":\"" + codex + "\",\"goods_type\":\"1\",\"country\":\"\",\"country_id\":\"\"," + "\"warehouse\":\"\",\"customs\":\"\",\"is_customs\":0,\"is_pre_sale\":0,\"pre_sale_time\":\"\"," + "\"is_refundable\":1,\"shipment_limit_second\":172800,\"event_type\":\"0\",\"is_folt\":\"1\"," + "\"goods_name\":\"" + r.goods_name + "\",\"tiny_name\":\"\",\"market_price\":" + market_price + ",\"share_desc\":\":\",\"goods_desc\":\"" + r.goods_desc + "\"," + "\"image_url\":\"\",\"thumb_url\":\"" + r.thumb_url + "\",\"hd_thumb_url\":\"" + r.hd_thumb_url + "\"," + "\"gallery\":[" + imageString.Substring(1) + "],\"cost_template_id\":\"" + r.cost_template_id + "\",\"weight\":\"1.00\",\"warm_tips\":\"\"," + "\"skus\":[" + SkuString + "],\"out_goods_sn\":\"" + "\",\"groups\":{\"customer_num\":" + UploadPinduoduoMain.GroupCount + "," + "\"buy_limit\":" + UploadPinduoduoMain.LimitBuy + ",\"order_limit\":" + UploadPinduoduoMain.LimitBuy + "},\"production_license\":\"\",\"production_standard_number\":\"\"" + addContent + ",\"goods_commit_id\":\"" + pinId + "\"}"; url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/update"; html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, dataUp, Shop.Cookies); string error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); if (!string.IsNullOrEmpty(error_msg)) return false; url = "https://mms.pinduoduo.com/glide/v2/mms/query/goods/is_commit_available/" + pinId; html = GetPostTaobaoHtml.UploadTaobao(url, refere, true, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/submit"; data = "{\"goods_commit_id\":\"" + pinId + "\"}"; html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); return true; //Thread.Sleep(10 * 1000); //PinduoduoProductCollect pp = new PinduoduoProductCollect(Name, Us); //pp.Get(); //if (!TaobaoMobileCollect.ProductTemp.ContainsKey(Us.FromId) || TaobaoMobileCollect.ProductTemp[Us.FromId].Images.Count==0) // return; //var product = TaobaoMobileCollect.ProductTemp[Us.FromId]; //string tempImage = product.Images[0]; //byte[] img; //var ok = GetPostTaobaoHtml.DownLoadImage(tempImage, out img); //if(!ok) // return; //var ib = new ImageBuild(img); //img = ib.BuildNewSize(400, 400, 500); //var up = new UploadPinduoduoSet(Shop, Name, null); //string img400 =up.UploadImg(tempImage + "400*400", ref img); //UploadPinduoduoSet.AddImage(tempImage + "400*400", img400, 400, 400); //img = ib.BuildNewSize(200, 200, 500); //var img200 = up.UploadImg(tempImage + "200*200", ref img); //UploadPinduoduoSet.AddImage(tempImage + "200*200", img200, 200, 200); //int catId = product.cat_id; //string imageString = ""; //for (int i = 0; i < product.Images.Count; i++) //{ // if (product.Images[i].Length > 2 && product.Images[i].Substring(0, 2) == "//") // product.Images[i] = "http:" + product.Images[i]; // imageString += ",{\"url\":\"" + product.Images[i] + "\",\"width\":640,\"height\":640,\"type\":\"1\"}"; //} //var m = BaseRegex.GetMatchRegex(ref product.content, @"]*?src=[""'](.*?)[""']"); //for (int i = 0; i < m.Count; i++) //{ // string imgUrl = m[i].Groups[1].Value; // if (!imgUrl.Contains("http:") && !imgUrl.Contains("https:")) // imgUrl = "http:" + imgUrl; // string exe = Path.GetExtension(imgUrl).ToLower(); // if (exe != ".jpeg" && exe != ".jpg" && exe != ".png") // continue; // imageString += ",{\"url\":\"" + imgUrl + "\",\"width\":" + 750+ ",\"height\":" + 750 + ",\"type\":\"2\"}"; //} //int multi_price = up.BuildNewPrice(product.price, 1, 0); //string skuString = ",{\"is_onsale\":1,\"limit_quantity\":" + UploadPinduoduoMain.LimitBuy + // ",\"quantity_delta\":" + UploadPinduoduoMain.LimitBuy + ",\"thumb_url\":\"\"," + // "\"multi_price\":" + multi_price + ",\"price\":" + // (multi_price + UploadPinduoduoMain.SinglePrice * 100) + ",\"out_sku_sn\":0,\"id\":0,\"spec\":\"\",\"weight\":1000}"; //int market_price = (int)(multi_price + UploadPinduoduoMain.SinglePrice * 100) * 2; //string addContent = ",\"fabric\":" + r.fabric + ",\"fabric_content\":" + r.fabric_content; //if (",2,6586,6785,6883,6758,6536,6630,6398,".Contains("," + product.cat1 + ","))//食品 //{ // addContent += ",\"shelf_life\":300,\"start_production_date\":" + BaseClass.GetTime(DateTime.Now.AddDays(-5)) + ",\"end_production_date\":" + BaseClass.GetTime(DateTime.Now); //} //else //{ // addContent += ",\"shelf_life\":\"\",\"start_production_date\":\"\",\"end_production_date\":\"\""; //} //string url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/create_by_sn"; //string data = "{\"goods_id\":" + product.id + "}"; //string html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data, Shop.Cookies); //long pinId = BaseRegex.GetLongJson(ref html, "goods_commit_id"); //if (pinId == 0) //{ // Thread.Sleep(30 * 1000); // html = GetPostTaobaoHtml.GetJsonPost(url, refere, true, data, Shop.Cookies); // pinId = BaseRegex.GetLongJson(ref html, "goods_commit_id"); //} //if(pinId==0) // return; //string dataUp = "{\"cat_id\":" + catId + ",\"goods_type\":\"1\",\"country\":\"\",\"country_id\":\"\"," + // "\"warehouse\":\"\",\"customs\":\"\",\"is_customs\":0,\"is_pre_sale\":0,\"pre_sale_time\":\"\"," + // "\"is_refundable\":1,\"shipment_limit_second\":172800,\"event_type\":\"0\",\"is_folt\":\"1\"," + // "\"goods_name\":\"" + product.name + "\",\"tiny_name\":\"\",\"market_price\":" + market_price + // ",\"share_desc\":\"" + product.content_pinduoduo + ":\",\"goods_desc\":\"" + product.content_pinduoduo + "\"," + // "\"image_url\":\"\",\"thumb_url\":\"" + img200 + "\",\"hd_thumb_url\":\"" + img400 + "\"," + // "\"gallery\":[" + imageString.Substring(1) + "],\"cost_template_id\":\"" + Shop.ExpressId + "\",\"weight\":\"1.00\",\"warm_tips\":\"\"," + // "\"skus\":[" + skuString.Substring(1) + "],\"out_goods_sn\":\"" + "\",\"groups\":{\"customer_num\":" + UploadPinduoduoMain.GroupCount + "," + // "\"buy_limit\":" + UploadPinduoduoMain.LimitBuy + ",\"order_limit\":" + UploadPinduoduoMain.LimitBuy // + "},\"production_license\":\"\",\"production_standard_number\":\"\"" + addContent + ",\"goods_commit_id\":\"" + pinId + "\"}"; //url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/update"; //html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, dataUp, Shop.Cookies); //string error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); //if(!string.IsNullOrEmpty(error_msg)) // return; ////url = "https://mms.pinduoduo.com/glide/v2/mms/query/goods/is_commit_available/" + pinId; ////html = GetPostTaobaoHtml.UploadTaobao(url, refere, true, Shop.Cookies); ////error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); //url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/submit"; //data = "{\"goods_commit_id\":\"" + pinId + "\"}"; //html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, Shop.Cookies); //error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); //Thread.Sleep(20*1000); } public bool UserUpdate(long pinId) { if (pinId == 0) return false; GetProductDetail ge = new GetProductDetail(Shop, Name); var r = ge.Get(Us.GoodsId); if (r == null) return false; string imageString = ""; for (int i = 0; i < r.detail_gallery_list.Count; i++) { imageString += ",{\"url\":\"" + r.detail_gallery_list[i] + "\", \"type\":2 }"; } for (int i = 0; i < r.carousel_gallery_list.Count; i++) { imageString += ",{\"url\":\"" + r.carousel_gallery_list[i] + "\", \"type\":1 }"; } r.cat_id = PinduoduoCatList.GetNewCat3(r.cat_id); string strTime = BaseClass.GetTime(DateTime.Now).ToString() + "000"; string str = ""; for (int i = 0; i < 16; i++) { str += new Random(Guid.NewGuid().GetHashCode()).Next(9); } string strToken = str + "-" + strTime; string strNumber = ""; string fun2 = string.Format(@"getEncode('{0}','{1}','{2}')", strTime, strToken, strNumber); string codex = ""; r.goods_name = BaseClass.SubCharLength(r.goods_name, 60); string dataUp = "{\"cat_id\":" + r.cat_id + ",\"crawlerInfo\":\"" + codex + "\",\"goods_type\":\"1\",\"country\":\"\",\"country_id\":\"\"," + "\"warehouse\":\"\",\"customs\":\"\",\"is_customs\":0,\"is_pre_sale\":0,\"pre_sale_time\":\"\"," + "\"is_refundable\":1,\"shipment_limit_second\":172800,\"event_type\":\"0\",\"is_folt\":\"1\"," + "\"goods_name\":\"" + r.goods_name + "\",\"tiny_name\":\"\",\"market_price\":" + r.market_price + ",\"goods_desc\":\"" + r.goods_desc + "\"," + "\"image_url\":\"" + r.image_url + "\",\"thumb_url\":\"" + r.thumb_url + "\",\"hd_thumb_url\":\"" + r.hd_thumb_url + "\"," + "\"gallery\":[" + imageString.Substring(1) + "],\"cost_template_id\":\"" + r.cost_template_id + "\",\"weight\":\"1.00\",\"warm_tips\":\"\"," + "\"skus\":[" + SkuString + "],\"out_goods_sn\":\"" + "\",\"groups\":{\"customer_num\":" + UploadPinduoduoMain.GroupCount + "," + "\"buy_limit\":" + UploadPinduoduoMain.LimitBuy + ",\"order_limit\":" + UploadPinduoduoMain.LimitBuy + "},\"production_license\":\"\",\"production_standard_number\":\"\",\"goods_commit_id\":\"" + pinId + "\"}"; string refere = "https://mms.pinduoduo.com/"; string url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/update"; string html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, dataUp, Shop.Cookies); string error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); if (!string.IsNullOrEmpty(error_msg)) return false; url = "https://mms.pinduoduo.com/glide/v2/mms/query/goods/is_commit_available/" + pinId; html = GetPostTaobaoHtml.UploadTaobao(url, refere, true, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/submit"; string data = "{\"goods_commit_id\":\"" + pinId + "\",\"crawlerInfo\":\"" + codex + "\"}"; html = GetPostTaobaoHtml.UploadTaobaoPost(url, refere, true, data, Shop.Cookies); error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); if (!string.IsNullOrEmpty(error_msg)) return false; int goods_status = 1; for (int i = 0; i < 10 && goods_status == 1; i++) { html = new PinduoduoApiGetProduct(Shop).GetCommitDetail(pinId); goods_status = BaseRegex.GetIntJson(ref html, "goods_status"); if (goods_status != 2) Thread.Sleep(10 * 1000); } if (goods_status != 2) { url = "https://mms.pinduoduo.com/glide/v2/mms/edit/commit/" + pinId + "/delete"; refere = "https://mms.pinduoduo.com/"; html = GetPostTaobaoHtml.JsonPinduoduoUpload(url, refere, true, "{}", Shop.Cookies); return false; } return true; } public bool GetArrangeForm() { GetProductDetail ge = new GetProductDetail(Shop, "店铺整理"); var r = ge.Get(pid); if (r == null) return false; string skuApiStringNew = ""; for (int i = 0; i < r.sku_list.Count; i++) { string spec = ""; for (int j = 0; j < r.sku_list[i].spec.Count; j++) spec += "," + r.sku_list[i].spec[j].spec_id; if (!string.IsNullOrEmpty(spec)) spec = spec.Substring(1); skuApiStringNew += ",{\"is_onsale\":" + r.sku_list[i].is_onsale + ",\"limit_quantity\":" + r.sku_list[i].limit_quantity + ",\"price\":\"" + r.sku_list[i].price + "\",\"weight\":1000,\"multi_price\":\"" + r.sku_list[i].multi_price + "\",\"thumb_url\":\"" + r.sku_list[i].thumb_url + "\",\"out_sku_sn\":\"" + r.sku_list[i].out_sku_sn + "\",\"quantity\":1,\"spec_id_list\":\"[" + spec + "]\"}"; } string addContent = ",\"fabric\":" + r.fabricx + ",\"fabric_content\":" + r.fabric_contentx; PinduoduoApiGetProduct api = new PinduoduoApiGetProduct(Shop); api.Data.Add("goods_name", BaseClass.SubCharLength(title.Replace("✅", "").Replace("◆", ""), 60)); api.Data.Add("goods_type", "1"); api.Data.Add("goods_desc", r.goods_desc); api.Data.Add("cat_id", r.cat_id.ToString()); api.Data.Add("tiny_name", ""); api.Data.Add("country_id", "0"); api.Data.Add("market_price", r.market_price.ToString()); api.Data.Add("is_pre_sale", "false"); api.Data.Add("shipment_limit_second", "172800"); api.Data.Add("cost_template_id", r.cost_template_id.ToString()); api.Data.Add("customer_num", UploadPinduoduoMain.GroupCount.ToString());//团购人数 if (!UploadPinduoduoMain.limitCount) { api.Data.Add("buy_limit", UploadPinduoduoMain.LimitBuy.ToString()); api.Data.Add("order_limit", UploadPinduoduoMain.LimitBuy.ToString()); } api.Data.Add("is_refundable", "true"); api.Data.Add("second_hand", "false"); api.Data.Add("is_folt", "true"); if (!string.IsNullOrEmpty(addContent)) { int fabric = BaseRegex.GetIntJson(ref addContent, "fabric"); int fabric_content = BaseRegex.GetIntJson(ref addContent, "fabric_content"); api.Data.Add("fabric", fabric.ToString()); api.Data.Add("fabric_content", fabric_content.ToString()); } api.Data.Add("sku_list", "[" + skuApiStringNew.Substring(1) + "]"); api.Data.Add("out_goods_id", r.outer_goods_id); api.Data.Add("hd_thumb_url", r.hd_thumb_url); api.Data.Add("thumb_url", r.thumb_url); api.Data.Add("image_url", r.image_url); api.Data["goods_desc"] = r.goods_desc; //构造carousel_gallery 轮播图 string carousel_gallery = string.Empty; if (r.carousel_gallery_list != null & r.carousel_gallery_list.Count > 0) { for (int i = 0; i < r.carousel_gallery_list.Count; i++) { carousel_gallery += ",\"" + r.carousel_gallery_list[i] + "\""; } } if (!string.IsNullOrEmpty(carousel_gallery)) carousel_gallery = carousel_gallery.Substring(1); api.Data.Add("carousel_gallery", "[" + carousel_gallery + "]"); //构造detail_gallery商品详情图片 string detail_gallery = ""; for (int j = 0; j < r.detail_gallery_list.Count; j++) { if (r.detail_gallery_list.Count > 5 && j == 0 || r.detail_gallery_list.Count > 8 && j == r.detail_gallery_list.Count - 1)//不要第一张图和最后一张 { continue; } string urlImg = r.detail_gallery_list[j]; if (!urlImg.Contains("http:")) urlImg = "http:" + urlImg; string exe = Path.GetExtension(urlImg).ToLower(); if (exe != ".jpeg" && exe != ".jpg" && exe != ".png") continue; detail_gallery += ",\"" + urlImg + "\""; } if (!string.IsNullOrEmpty(detail_gallery)) { detail_gallery = detail_gallery.Substring(1); } api.Data.Add("detail_gallery", "[" + detail_gallery + "]"); if (",2,6586,6785,6883,6758,6536,6630,6398,".Contains("," + r.cat_id + ","))//食品 { api.Data.Add("shelf_life", "300"); api.Data.Add("start_production_date", BaseClass.GetTime(DateTime.Now.AddDays(-5)).ToString()); api.Data.Add("end_production_date", BaseClass.GetTime(DateTime.Now).ToString()); } if (Shop.SignErrorTimes.ContainsKey(DateTime.Now.ToString("yyyy-MM-dd")) && Shop.SignErrorTimes[DateTime.Now.ToString("yyyy-MM-dd")] > 3) return false; string html = api.Add(); if (!string.IsNullOrEmpty(html) && html.Contains("\"error_msg\"")) { string error_msg = BaseRegex.GetStringJson(ref html, "error_msg"); LogSave.Add("店铺整理", "复制商品失败,原因:" + error_msg); return false; } string goodsid = BaseRegex.GetStringJson(ref html, "goods_id"); LogSave.Add("店铺整理", "复制商品成功,生成商品ID:" + goodsid); return true; } } }