Exemplo n.º 1
0
 /// <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);
     }
 }
Exemplo n.º 2
0
            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);
                }
            }
Exemplo n.º 3
0
            /// <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)));
            }
Exemplo n.º 4
0
            /// <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));
            }
Exemplo n.º 5
0
 /// <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);
     }
 }
Exemplo n.º 6
0
 /// <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);
     }
 }
Exemplo n.º 7
0
 /// <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);
     }
 }
Exemplo n.º 8
0
 /// <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);
     }
 }
Exemplo n.º 9
0
            /// <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);
                }
            }
Exemplo n.º 10
0
            /// <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
                //};
            }