/// <summary> /// 获取订单状态 /// </summary> /// <param name="Tid"></param> /// <returns></returns> public string GetStatus(long Tid, Models.UserTaoOAuth taoUserOAuth) { try { string result = "拦截失败"; ITopClient client = new DefaultTopClient(url_api, this.AppKey, this.AppSecret); TradeGetRequest request = new TradeGetRequest { Fields = "status", Tid = Tid }; TradeGetResponse response = client.Execute <TradeGetResponse>(request, taoUserOAuth.access_token); if (response.Trade.Status == "TRADE_CLOSED") { result = "拦截成功[退款关单]"; } else if (response.Trade.Status == "TRADE_CLOSED_BY_TAOBAO") { result = "拦截成功[直接关单]"; } else { result = "拦截失败[" + response.Trade.Status + "]"; } return(result); } catch (Exception e) { throw new Exception("TradeGetRequest Failure.", e); } }
public ApiResult CanBeClose(long tid, Models.UserTaoOAuth taoUserOAuth) { bool result = false; try { ITopClient client = new DefaultTopClient(url_api, this.AppKey, this.AppSecret); TradeGetRequest request = new TradeGetRequest { Fields = "status", Tid = tid }; TradeGetResponse response = client.Execute <TradeGetResponse>(request, taoUserOAuth.access_token); if (response.Trade.Status == "TRADE_NO_CREATE_PAY")//没有创建支付宝交易 { result = true; } else if (response.Trade.Status == "WAIT_BUYER_PAY")//等待买家付款 { result = true; } return(new ApiResult(result, response.Trade.Status)); } catch (Exception e) { throw new Exception("TradeGetRequest Failure.", e); } }
/// <summary> /// 获取当前应用的卖家昵称 /// </summary> /// <returns></returns> public string GetUserSeller(Models.UserTaoOAuth taoOAuth) { ITopClient client = new DefaultTopClient(url_api, AppKey, AppSecret); UserSellerGetRequest request = new UserSellerGetRequest { Fields = "nick", }; return(GetTopResponseBody(client.Execute <UserSellerGetResponse>(request, taoOAuth.access_token))); }
/// <summary> /// 获取已开通消息 /// </summary> /// <param name="nick">店铺昵称</param> /// <returns></returns> public ApiResult <TmcUser> TmcUserGet(Models.UserTaoOAuth taoUserOAuth) { ITopClient client = new DefaultTopClient(url_api, AppKey, AppSecret); TmcUserGetRequest request = new TmcUserGetRequest(); request.Nick = taoUserOAuth.taobao_user_nick; request.Fields = "user_nick,topics,user_id,is_valid,created,modified"; var resp = client.Execute <TmcUserGetResponse>(request, taoUserOAuth.access_token); return(resp.AsApiResult(() => resp.TmcUser)); }
/// <summary> /// 设置库存 /// </summary> /// <param name="ItemID"></param> /// <param name="Quantity"></param> public ApiResult UpdateItemQty(long ItemID, long Quantity, Models.UserTaoOAuth taoUserOAuth) { try { ITopClient client = new DefaultTopClient(url_api, this.AppKey, this.AppSecret); ItemQuantityUpdateRequest request = new ItemQuantityUpdateRequest { NumIid = ItemID, Quantity = Quantity }; ItemQuantityUpdateResponse rsp = client.Execute <ItemQuantityUpdateResponse>(request, taoUserOAuth.access_token); return(new ApiResult(!rsp.IsError, rsp.ErrMsg + " " + rsp.SubErrMsg)); } catch (Exception e) { throw new Exception("ItemQuantityUpdateRequest Failure.", e); } }
/// <summary> /// 根据订单号获取商品ID /// </summary> /// <param name="tid"></param> /// <returns></returns> public Trade GetTradeDetailByTid(long tid, Models.UserTaoOAuth taoUserOAuth) { try { ITopClient client = new DefaultTopClient(url_api, this.AppKey, this.AppSecret); TradeGetRequest request = new TradeGetRequest { Fields = "tid,seller_nick,buyer_nick,num_iid,status,num,created,payment,pay_time,price", Tid = tid }; TradeGetResponse tgr = client.Execute <TradeGetResponse>(request, taoUserOAuth.access_token); if (tgr.Trade == null) { SignalRServer.Instance.Clients.User(taoUserOAuth.taobao_user_nick).OnMessage("订单查询失败:" + tgr.Body); } return(tgr.Trade); } catch (Exception e) { throw new Exception("TradeGetRequest Failure.", e); } }
/// <summary> /// 根据订单号获取商品ID /// </summary> /// <param name="tid"></param> /// <returns></returns> public string GetItemID(long tid, Models.UserTaoOAuth taoUserOAuth) { try { ITopClient client = new DefaultTopClient(url_api, this.AppKey, this.AppSecret); TradeGetRequest request = new TradeGetRequest { Fields = "num_iid", Tid = tid }; var resp = client.Execute <TradeGetResponse>(request, taoUserOAuth.access_token); if (resp.IsError) { SignalRServer.Instance.Clients.User(taoUserOAuth.taobao_user_nick).OnMessage("宝贝ID查询失败:" + resp.Body); } return(resp.Trade.NumIid.ToString()); } catch (Exception e) { throw new Exception("TradeGetRequest Failure.", e); } }
/// <summary> /// 调用Api关闭订单 /// </summary> /// <param name="tid">订单号</param> /// <param name="reason">关单理由</param> public ApiResult CloseOrderByApi(long tid, string reason, Models.UserTaoOAuth taoUserOAuth) { try { DefaultTopClient client = new DefaultTopClient(url_api, this.AppKey, this.AppSecret); client.SetDisableTrace(true); TradeCloseRequest request = new TradeCloseRequest { Tid = tid, CloseReason = reason }; TradeCloseResponse tcr = client.Execute <TradeCloseResponse>(request, taoUserOAuth.access_token); if (tcr.IsError) { return(new ApiResult(false, tcr.ErrMsg)); } return(new ApiResult(true, tcr.Trade.Status)); } catch (Exception e) { throw new Exception("TradeCloseRequest Failure.", e); } }
/// <summary> /// 根据订单号获取商品ID /// </summary> /// <param name="tid"></param> /// <returns></returns> public Trade GetTradeByTid(long tid, Models.UserTaoOAuth taoUserOAuth) { try { ITopClient client = new DefaultTopClient(url_api, this.AppKey, this.AppSecret); TradeFullinfoGetRequest request = new TradeFullinfoGetRequest { Fields = "tid,buyer_nick,num_iid,num,created,payment,pay_time,price,receiver_address", Tid = tid }; var resp = client.Execute <TradeFullinfoGetResponse>(request, taoUserOAuth.access_token); if (resp.IsError) { SignalRServer.Instance.Clients.User(taoUserOAuth.taobao_user_nick).OnMessage("订单查询失败:" + resp.Body); } return(resp.Trade); } catch (Exception e) { throw new Exception("TradeFullinfoGetRequest Failure.", e); } }
/// <summary> /// 同步已卖出的交易数据 /// </summary> /// <param name="orders"></param> /// <param name="orderOpr"></param> /// <param name="status"></param> /// <param name="pageno"></param> /// <param name="daysago"></param> /// <returns></returns> public ApiPagedResult <List <TopTrade> > SyncTrade(string status, long pageno, DateTime start, Models.UserTaoOAuth taoUserOAuth) { var orderList = new List <TbOrder>(); ITopClient client = new DefaultTopClient(url_api, this.AppKey, this.AppSecret); TradesSoldGetRequest request = new TradesSoldGetRequest { Fields = "tid,buyer_nick,num_iid,created,pay_time,payment,receiver_address,status,end_time,seller_rate,seller_can_rate" }; request.StartCreated = start; request.EndCreated = DateTime.Now; request.Status = status; request.Type = "guarantee_trade"; request.PageNo = pageno; request.PageSize = 50; request.UseHasNext = true; TradesSoldGetResponse response = client.Execute <TradesSoldGetResponse>(request, taoUserOAuth.access_token); var result = new ApiPagedResult <List <TopTrade> >(!response.IsError, response.ErrMsg + " " + response.SubErrMsg); if (!response.IsError) { result.Data = response.Trades.Select(x => TopTrade.FromTrade(x)).ToList(); result.HasMore = response.HasNext; } return(result); //XmlDocument doc = new XmlDocument(); //response.Trades.First().ser //doc.LoadXml(response.Body); ////string json = JsonConvert.SerializeXmlNode(doc); //XmlNodeList xnltrades = doc.SelectNodes("//trade"); //if (xnltrades != null && xnltrades.Count > 0) //{ // foreach (XmlNode xntrade in xnltrades) // { // string jsontrade = JsonConvert.SerializeXmlNode(xntrade); // var definition = new { trade = new { buyer_nick = "", created = new DateTime(), num_iid = "", tid = 0L, pay_time = (DateTime?)null, payment = 0.00, receiver_address = "", status = "" } }; // //{"trade":{"buyer_nick":"恋上你回眸","created":"2014-09-18 01:46:15","num_iid":"35071709812","tid":"807930976731116"}} // var trade = JsonConvert.DeserializeAnonymousType(jsontrade, definition); // TbOrder order = new TbOrder() // { // Tid = trade.trade.tid, // Name = trade.trade.buyer_nick, // BuyTime = trade.trade.created, // Itemid = trade.trade.num_iid, // Payment = trade.trade.payment, // PayTime = trade.trade.pay_time, // Status = trade.trade.status, // ReceiverAddress = trade.trade.receiver_address, // trade.seller_rate // }; // orderList.Add(order); // } //} //return new ApiPagedResult<List<TbOrder>>(true, "") //{ // HasMore = response.HasNext, // Data = orderList //}; }