/// <summary> /// 获取高佣活动和营销计划的淘口令,Item1 淘口令,Item2 短链 /// </summary> /// <param name="goodsUrl"></param> /// <param name="goodsId"></param> /// <param name="pid">Pid</param> /// <returns></returns> public static Tuple <string, string> GetGaoYongToken(string goodsUrl, string goodsId, string pid, string tbToken, CookieCollection cookies, out bool isLogin) { Tuple <string, string> resultTuple = null; isLogin = true; try { //PID mm_aaaa_bbbb_cccc //aaaa:memberid //bbbb:siteid //ccc:adzoneid string dictKey = string.Format("{0}_{1}", pid, goodsId); //判断同商品相同的推广位,是否已经申请过淘口令 if (tokenDict.ContainsKey(dictKey)) { string _token = string.Empty; tokenDict.TryGetValue(dictKey, out resultTuple); return(resultTuple); } //淘宝未登录,请登录淘宝 if (cookies == null) { isLogin = false; resultTuple = new Tuple <string, string>("", ""); return(resultTuple); } var pids = pid.Replace("mm_", "").Split('_'); if (pids.Length != 3) { return(resultTuple); } string adzoneid = pids[2]; string siteid = pids[1]; string searchUrl = string.Format("http://pub.alimama.com/items/search.json?q={0}&_t={1}&auctionTag=&perPageSize=40&shopTag=&t={1}&_tb_token_={2}&pvid=", HttpUtility.UrlEncode(goodsUrl), getClientMsgId(), tbToken); CookieContainer cookiesContainer = new CookieContainer(); cookiesContainer.Add(cookies); string content = HttpRequestService.HttpGet(searchUrl, cookiesContainer); decimal tkRate = 0; decimal eventRate = 0; bool tkMktStatus = false; bool resultOk = false; if (!string.IsNullOrEmpty(content)) { try { TaobaoSearchResultModel searchResult = JsonConvert.DeserializeObject <TaobaoSearchResultModel>(content); if (searchResult != null && searchResult.ok && searchResult.data.pageList != null) { //通用计划 tkRate = searchResult.data.pageList[0].tkRate; if (!string.IsNullOrEmpty(searchResult.data.pageList[0].eventRate)) { eventRate = Convert.ToDecimal(searchResult.data.pageList[0].eventRate); } if (!string.IsNullOrEmpty(searchResult.data.pageList[0].tkMktStatus)) { tkMktStatus = Convert.ToInt32(searchResult.data.pageList[0].tkMktStatus) == 1; } resultOk = true; } } catch (Exception) { } } if (resultOk) { //判断是否是营销计划 if (tkMktStatus && tkRate > eventRate) { //开始申请营销计划佣金 string url = string.Format("http://pub.alimama.com/common/code/getAuctionCode.json?auctionid={0}&adzoneid={1}&siteid={2}&scenes=1&t={3}&_tb_token_={4}&pvid=", goodsId, adzoneid, siteid, getClientMsgId(), tbToken); resultTuple = GetGaoyong(url, cookies); if (resultTuple != null) { tokenDict[dictKey] = resultTuple; return(resultTuple); } } else //判断是否有高佣金 { //获取更多定向计划数据 string url = string.Format("http://pub.alimama.com/pubauc/getCommonCampaignByItemId.json?itemId={0}&t={1}&_tb_token_={2}&pvid=", goodsId, getClientMsgId(), tbToken); cookiesContainer = null; cookiesContainer = new CookieContainer(); cookiesContainer.Add(cookies); content = HttpRequestService.HttpGet(url, cookiesContainer); if (content.Contains("html")) { isLogin = false; resultTuple = new Tuple <string, string>("", ""); return(resultTuple); } else { try { TaobaoCommonCampaignItemsModel items = JsonConvert.DeserializeObject <TaobaoCommonCampaignItemsModel>(content); if (items != null && items.ok && items.data != null && items.data.Count > 0) { //过滤人工审核的佣金计划 var data = items.data.FindAll(r => r.manualAudit == 0); var listData = data.OrderByDescending(r => r.commissionRate).ToList(); TaobaoCommonItem item = listData[0]; //如果定向佣金大于通用和高佣活动的佣金 if (tkRate < item.commissionRate && eventRate < item.commissionRate && !tkMktStatus) { tkRate = 0; eventRate = 0; } } } catch (Exception) { } //如果高佣活动佣金大于通用佣金 if (eventRate > tkRate) { //开始申请高佣活动 url = string.Format("http://pub.alimama.com/common/code/getAuctionCode.json?auctionid={0}&adzoneid={1}&siteid={2}&scenes=3&channel=tk_qqhd&t={3}&_tb_token_={4}&pvid=", goodsId, adzoneid, siteid, getClientMsgId(), tbToken); resultTuple = GetGaoyong(url, cookies); if (resultTuple != null) { tokenDict[dictKey] = resultTuple; return(resultTuple); } } } } } } catch (Exception ex) { log.Error(string.Format("GetGaoYongToken:message:{0},StackTrace:{1}", ex.Message, ex.StackTrace)); return(resultTuple); } return(resultTuple); }
/// <summary> /// 申请高佣 /// </summary> /// <param name="goodsDetailUrl">商品详情地址</param> public void ApplyPlan(string goodsId, string goodsName) { if (lw == null) { logRuningList.Add(new LogRuningModel() { goodsid = goodsId, goodsName = goodsName, title = goodsId, content = goodsName, logTime = DateTime.Now, logType = LogTypeOpts.申请高佣, isError = true, remark = "您还没登录阿里妈妈,请登录后重试!" }); return; } ThreadHandle(() => { LogRuningModel logData = new LogRuningModel() { goodsid = goodsId, goodsName = goodsName, title = goodsId, content = goodsName, logTime = DateTime.Now, logType = LogTypeOpts.申请高佣, }; try { MyUserInfo.cookies = lw.GetCurrentCookies(); //获取更多定向计划数据 string url = string.Format("http://pub.alimama.com/pubauc/getCommonCampaignByItemId.json?itemId={0}&t={1}&_tb_token_={2}&pvid=", goodsId, getClientMsgId(), MyUserInfo.GetTbToken()); CookieContainer cookiesContainer = new CookieContainer(); cookiesContainer.Add(MyUserInfo.cookies); string content = BaseRequestService.HttpGet(url, cookiesContainer); TaobaoCommonCampaignItemsModel items = JsonConvert.DeserializeObject <TaobaoCommonCampaignItemsModel>(content); if (items != null && items.ok && items.data != null && items.data.Count > 0) { var data = items.data.FindAll(i => { return(i.manualAudit == 0); }); var listData = data.OrderByDescending(r => r.commissionRate).ToList(); TaobaoCommonItem item = listData[0]; if (item != null) { if (!item.Exist) { string applyUrl = "http://pub.alimama.com/pubauc/applyForCommonCampaign.json"; Dictionary <string, string> formFields = new Dictionary <string, string>(); formFields["campId"] = item.CampaignID; formFields["keeperid"] = item.ShopKeeperID; formFields["applyreason"] = "您好,淘客人多,请于通过!"; formFields["_tb_token_"] = MyUserInfo.GetTbToken(); formFields["t"] = getClientMsgId().ToString(); formFields["pvid"] = ""; string res = BaseRequestService.HttpPost(applyUrl, formFields, cookiesContainer); log.Info(res); TaobaoCommonCampaignItemsModel _items = JsonConvert.DeserializeObject <TaobaoCommonCampaignItemsModel>(res); if (_items != null) { if (_items.ok) { logData.isError = false; logData.remark = "[" + goodsId + "]" + "自动申请佣金成功,佣金:" + item.commissionRate + " %"; } else { logData.isError = true; logData.remark = "[" + goodsId + "]" + _items.info.message; } } } else { logData.isError = false; logData.remark = "[" + goodsId + "]" + "已经申请过了"; } } else { logData.isError = false; logData.remark = "[" + goodsId + "]" + "没找到定向佣金"; } } else { logData.isError = false; logData.remark = "[" + goodsId + "]" + "没找到定向佣金"; } } catch (Exception ex) { log.Error(ex); logData.isError = true; logData.remark = "[" + goodsId + "]" + "一瞬间,风起人涌,交通拥堵,请稍后重试!"; } logRuningList.Add(logData); }); }