/// <summary> /// 订单增量下载 /// </summary> /// <param name="strSessionKey"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="pageNo"></param> /// <param name="pageSize"></param> /// <param name="buyer_nick"></param> /// <param name="type"></param> /// <param name="hasNext"></param> /// <returns></returns> public static List <Trade> GetBuyerTradeIncrement(string strSessionKey, string startTime, string endTime, string pageNo, string pageSize, string buyer_nick, string type, ref Boolean hasNext) { try { ITopClient client = TBManager.GetClient(); TradesSoldIncrementGetRequest req = new TradesSoldIncrementGetRequest(); req.Fields = @"tid,type,buyer_nick,receiver_name,receiver_state,receiver_city,receiver_district,receiver_address, receiver_mobile,receiver_phone,receiver_zip,buyer_area,post_fee,created,seller_nick,payment,status,shipping_type,pay_time,modified, orders.outer_iid,orders.discount_fee,orders.payment,orders.refund_status,orders.status,orders.pic_path,orders.sku_properties_name,orders.adjust_fee, orders.outer_sku_id,orders.cid,orders.refund_id,orders.item_meal_name,orders.num,orders.title,orders.price,orders.oid,orders.total_fee,orders.num_iid,orders.sku_id,orders.seller_type"; req.StartModified = Convert.ToDateTime(startTime); req.EndModified = Convert.ToDateTime(endTime); req.PageSize = Convert.ToInt64(pageSize); req.PageNo = Convert.ToInt64(pageNo); if (!string.IsNullOrEmpty(buyer_nick)) { req.BuyerNick = buyer_nick; } if (!string.IsNullOrEmpty(type)) { req.Type = type; } TradesSoldIncrementGetResponse rsp = client.Execute(req, strSessionKey); hasNext = rsp.HasNext; return(rsp.Trades); } catch (Exception ex) { ExceptionReporter.WriteLog(ex, ExceptionPostion.TopApi); return(null); } }
/// <summary> /// 获取店铺等待发货的订单 /// </summary> /// <param name="param">条件参数</param> /// <param name="auth">授权参数</param> /// <returns>订单列表</returns> /// <reamrks>2014-04-08 黄波 创建</reamrks> private List <UpGradeOrder> GetShopWaitSendOrder(OrderParameters param, AuthorizationParameters auth) { var result = new List <UpGradeOrder>(); //增量查询今日订单请求 var req = new TradesSoldIncrementGetRequest { Fields = "seller_flag,seller_nick,buyer_nick,alipay_no,has_buyer_message,title,tid,status,payment,discount_fee,post_fee,adjust_fee,pay_time,receiver_name,receiver_state,receiver_city,receiver_district,receiver_address,receiver_zip,receiver_mobile,receiver_phone,orders.title,orders.price,orders.num,orders.iid,orders.num_iid,orders.sku_id,orders.payment,orders.discount_fee,orders.sku_properties_name,orders.outer_iid,orders.outer_sku_id,orders.oid,orders.refund_status", Status = "WAIT_SELLER_SEND_GOODS", StartModified = param.StartDate, EndModified = param.EndDate, PageSize = 20L, UseHasNext = true }; var nextPage = true; var pageNo = 1L; var response = new TradesSoldIncrementGetResponse(); while (nextPage) { try { req.PageNo = pageNo; response = client.Execute(req, auth.AuthorizationCode); if (!response.IsError) { if (response.HasNext) { pageNo++; } else { nextPage = false; } foreach (Trade trade in response.Trades) { var order = new UpGradeOrder(); Map(trade, order); order.MallOrderBuyer.SellerFlag = trade.SellerFlag.ToString(); result.Add(order); } } else { nextPage = false; } } catch { nextPage = false; } } return(result); }
/// <summary> /// 同步增量交易数据 /// </summary> /// <param name="info"></param> /// <returns></returns> public List <Trade> QueryTradeSoldIncrement(ShipInfo info, DataSyncRecord syncRecord) { ITopClient client = new DefaultTopClient(url, info.AppKey, info.AppSecret); var pageIndex = 1L; TradesSoldIncrementGetResponse rsp = null; var list = new List <Trade>(); do { try { TradesSoldIncrementGetRequest req = new TradesSoldIncrementGetRequest { Fields = "tid,type,status,payment,orders,rx_audit_status", StartModified = syncRecord.LastSynDate, EndModified = DateTime.Now, Status = "TRADE_NO_CREATE_PAY", Type = "fixed", BuyerNick = "zhangsan", ExtType = "service", Tag = "time_card", PageNo = 1L, RateStatus = "RATE_UNBUYER", PageSize = 40L, UseHasNext = true }; rsp = client.Execute(req, info.SessionKey); pageIndex++; if (!rsp.IsError) { list.AddRange(rsp.Trades); } syncRecord.LastSynDate = req.EndModified.Value; } catch (Exception e) { break; } } while (rsp.HasNext); return(list); }
/// <summary> /// 获取增量订单 /// </summary> /// <returns></returns> public List <Trade> getSoldIncrement(string datetime1, string datetime2, int index, int pagesize, out bool hasNext) { List <Trade> list = new List <Trade>(); ITopClient client = new DefaultTopClient(Url, Appkey, Appsecret); TradesSoldIncrementGetRequest req = new TradesSoldIncrementGetRequest(); req.Fields = "seller_nick, buyer_nick, type, created, tid, status, payment, pay_time, end_time, modified, consign_time,orders"; req.StartModified = DateTime.Parse(datetime1); req.EndModified = DateTime.Parse(datetime2); req.PageNo = index; req.PageSize = pagesize; if (Sessionkey == "61018063b06cee193a796d291600c416f5e73b4d565b01f1954282799") { req.Type = "tmall_i18n,step"; } req.UseHasNext = true; TradesSoldIncrementGetResponse response = client.Execute(req, Sessionkey); list.AddRange(response.Trades); hasNext = response.HasNext; return(list); }
/// <summary> /// /// </summary> /// <param name="sDate"></param> /// <param name="eDate"></param> /// <param name="status"></param> /// <param name="page"></param> /// <param name="totalTrades"></param> /// <param name="hasNextPage"></param> /// <returns></returns> private List <BSale> IncrementSyncTrades(DateTime?sDate, DateTime?eDate, string status, long page, out long totalTrades, out bool hasNextPage) { totalTrades = 0; hasNextPage = false; TradesSoldIncrementGetRequest req = new TradesSoldIncrementGetRequest(); req.Fields = "total_fee,buyer_nick,created,tid,status, payment, discount_fee, adjust_fee, post_fee,price,adjust_fee,receiver_city,receiver_district,receiver_name,receiver_state,receiver_mobile,receiver_phone,received_payment"; req.Fields += ",orders.title,orders.pic_path,orders.price,orders.num,orders.iid,orders.num_iid,orders.sku_id,orders.refund_status,orders.status,orders.oid,orders.total_fee,orders.payment,orders.discount_fee,orders.adjust_fee,orders.sku_properties_name,orders.item_meal_name,orders.buyer_rate,orders.seller_rate,orders.outer_iid,orders.outer_sku_id,orders.refund_id,orders.seller_type"; if (sDate != null) { req.StartModified = sDate; } if (eDate != null) { req.EndModified = eDate; } if (!string.IsNullOrEmpty(status)) { req.Status = status; } //req.BuyerNick = "zhangsan"; //req.Type = "game_equipment"; //req.ExtType = "service"; //req.RateStatus = "RATE_UNBUYER"; //req.Tag = "time_card"; req.PageNo = page; req.PageSize = 50; req.UseHasNext = true; TradesSoldIncrementGetResponse response = client.Execute(req, this.Access_Token.Access_Token1); List <BSale> sales = new List <BSale>(); if (response.IsError) { throw new KMJXCTaobaoException(response.ErrCode, response.SubErrMsg); } if (response.Trades != null) { hasNextPage = response.HasNext; totalTrades = response.TotalResults; foreach (TB.Trade trade in response.Trades) { bool containRefound = false; BSale sale = new BSale(); sale.Status = trade.Status; sale.SaleDateTime = DateTimeUtil.ConvertDateTimeToInt(Convert.ToDateTime(trade.Created)); sale.Sale_ID = trade.Tid.ToString(); sale.Orders = new List <BOrder>(); sale.Synced = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now); if (!string.IsNullOrEmpty(trade.PostFee)) { sale.Post_Fee = double.Parse(trade.PostFee); } if (!string.IsNullOrEmpty(trade.Payment)) { sale.Amount = double.Parse(trade.Payment); } sale.Buyer = new BCustomer() { Type = new BMallType() { ID = this.Mall_Type_ID }, Mall_ID = trade.BuyerNick, Name = trade.ReceiverName, Address = trade.ReceiverAddress, Phone = trade.ReceiverMobile, Province = new Common_District { name = trade.ReceiverState }, City = new Common_District() { name = trade.ReceiverCity } }; if (trade.Orders != null) { foreach (TB.Order o in trade.Orders) { //if (string.IsNullOrEmpty(o.OuterIid)) //{ // continue; //} BOrder order = new BOrder(); if (!string.IsNullOrEmpty(o.Title)) { order.Title = o.Title; } if (!string.IsNullOrEmpty(o.Payment)) { order.Amount = double.Parse(o.Payment); } if (!string.IsNullOrEmpty(o.Price)) { order.Price = double.Parse(o.Price); } order.Quantity = int.Parse(o.Num.ToString()); order.Status = o.Status; order.Status1 = 0; if (!string.IsNullOrEmpty(o.RefundStatus) && o.RefundStatus == "SUCCESS") { containRefound = true; //order.Status1 = 1; order.Refound = true; //sale.Amount = sale.Amount - order.Amount; } order.StockStatus = 0; order.Discount = string.IsNullOrEmpty(o.DiscountFee) ? double.Parse(o.DiscountFee) : 0; if (!string.IsNullOrEmpty(o.OuterIid)) { int pid = 0; int.TryParse(o.OuterIid, out pid); order.Parent_Product_ID = pid; if (!string.IsNullOrEmpty(o.OuterSkuId)) { int pcid = 0; int.TryParse(o.OuterSkuId, out pcid); order.Product_ID = pcid; } else { order.Product_ID = order.Parent_Product_ID; } } order.Order_ID = o.Oid.ToString(); order.Mall_PID = o.NumIid.ToString(); order.Mall_SkuID = ""; if (o.SkuId != null) { order.Mall_SkuID = o.SkuId; } order.ImageUrl = ""; if (!string.IsNullOrEmpty(o.PicPath)) { order.ImageUrl = o.PicPath; } sale.Orders.Add(order); } } sale.HasRefound = containRefound; sales.Add(sale); } } return(sales); }
/// <summary> /// 查询卖家已卖出的增量交易数据(根据修改时间) /// </summary> /// <param name="sessionKey"></param> /// <param name="TradesSold"></param> /// <param name="ErrorMsg"></param> /// <returns></returns> internal List <Trade> GetTradesSoldIncrement(string sessionKey, TradesSoldGet TradesSold, out string ErrorMsg) { ErrorMsg = null; List <Trade> ListTrades = new List <Trade>(); DateTime starttime = new DateTime(); DateTime endtime = new DateTime(); try { ITopClient client = new DefaultTopClient(StaticSystemConfig.soft.ApiURL, StaticSystemConfig.soft.AppKey, StaticSystemConfig.soft.AppSecret, "json"); TradesSoldIncrementGetRequest req = new TradesSoldIncrementGetRequest(); req.Fields = "tid,created,pay_time,end_time,status,snapshot_url,buyer_message,price,buyer_nick,seller_memo,seller_flag,orders"; if (TradesSold.StartCreated != null) { string startt = TradesSold.StartModified.Value.ToString("yyyy-MM-dd HH:mm:ss"); starttime = DateTime.Parse(startt); req.StartModified = starttime; } if (TradesSold.EndCreated != null) { string startt = TradesSold.EndModified.Value.ToString("yyyy-MM-dd HH:mm:ss"); endtime = DateTime.Parse(startt); req.EndModified = endtime; } //这里修正结束时间与开始时间间隔超一天,自动修改时间为开始时间的后一天 if (starttime != new DateTime() && endtime != new DateTime()) { if (endtime.Subtract(starttime).Days > 1) { req.EndModified = starttime.AddDays(1); } } if (TradesSold.Status != null) { req.Status = TradesSold.Status; } if (TradesSold.Type != null) { req.Type = TradesSold.Type; } if (TradesSold.ExtType != null) { req.ExtType = TradesSold.ExtType; } if (TradesSold.Tag != null) { req.Tag = TradesSold.Tag; } if (TradesSold.PageNo != null) { req.PageNo = TradesSold.PageNo; } if (TradesSold.PageSize != null) { req.PageSize = TradesSold.PageSize; } if (TradesSold.UseHasNext != null) { req.UseHasNext = TradesSold.UseHasNext; } TradesSoldIncrementGetResponse response = client.Execute(req, sessionKey); if (response.IsError) { ErrorMsg = response.SubErrMsg; } else { TopJsonParser topjson = new TopJsonParser(); TradesSoldGetResponse1 resp = topjson.Parse <TradesSoldGetResponse1>(response.Body); ListTrades = resp.Trades; } } catch (Exception ex) { throw; } return(ListTrades); }