Example #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);
     }
 }
Example #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);
                }
            }
Example #3
0
 /// <summary>
 /// 获取单笔交易的部分信息:查询该笔订单是否有退货
 /// </summary>
 /// <param name="tid"></param>
 /// <returns></returns>
 public string GetBuyerTradeByTid(long tid)
 {
     try
     {
         ITopClient      client = TBManager.GetClient();
         TradeGetRequest req    = new TradeGetRequest();
         req.Fields = "orders.buyer_nick,orders.refund_status";
         req.Tid    = tid;
         TradeGetResponse response  = client.Execute(req, Users.SessionKey);
         Trade            trade     = response.Trade;
         string           buyerNick = "";
         if (trade != null)
         {
             if (trade.Orders.Count > 0)
             {
                 foreach (Order o in trade.Orders)
                 {//查询该笔交易,如果有订单退款马上返回该买家
                     if (o.RefundStatus.Equals("SUCCESS"))
                     {
                         buyerNick = o.BuyerNick;
                     }
                     break;
                 }
             }
         }
         return(buyerNick);
     }
     catch (Exception ex)
     {
         CHENGTUAN.Components.ExceptionReporter.WriteLog(ex, CHENGTUAN.Entity.ExceptionPostion.TopApi);
         return("");
     }
 }
Example #4
0
        /// <summary>
        /// 获取单笔交易的部分信息(性能高)
        /// </summary>
        /// <param name="sessionKey"></param>
        /// <param name="tid"></param>
        /// <param name="ErrorMsg"></param>
        /// <returns></returns>
        internal Trade GetTrade(string sessionKey, string tid, out string ErrorMsg)
        {
            ErrorMsg = null;
            List <Trade> ListTrades = new List <Trade>();

            try
            {
                ITopClient      client = new DefaultTopClient(StaticSystemConfig.soft.ApiURL, StaticSystemConfig.soft.AppKey, StaticSystemConfig.soft.AppSecret, "json");
                TradeGetRequest req    = new TradeGetRequest();
                req.Fields = "tid,created,pay_time,end_time,status,snapshot_url,buyer_message,price,buyer_nick ,seller_nick, buyer_nick, title, type, created, tid, seller_rate,seller_can_rate, buyer_rate,can_rate, status, payment, discount_fee, adjust_fee, post_fee, total_fee, pay_time, end_time, modified, consign_time, buyer_obtain_point_fee, point_fee, real_point_fee, received_payment, pic_path, num_iid, num, price, cod_fee, cod_status, shipping_type, receiver_name, receiver_state, receiver_city, receiver_district, receiver_address, receiver_zip, receiver_mobile, receiver_phone,seller_flag,alipay_id,alipay_no,is_lgtype,is_force_wlb,is_brand_sale,buyer_area,has_buyer_message, credit_card_fee, lg_aging_type, lg_aging, step_trade_status,step_paid_fee,mark_desc,has_yfx,yfx_fee,yfx_id,yfx_type,trade_source,send_time,is_daixiao,is_wt,is_part_consign,zero_purchase,orders";
                if (tid == null)
                {
                    ErrorMsg = "交易编号不能为空!";
                    return(null);
                }
                req.Tid = long.Parse(tid);
                TradeGetResponse response = client.Execute(req, sessionKey);
                if (response.IsError)
                {
                    ErrorMsg = response.SubErrMsg;
                    return(null);
                }
                else
                {
                    TopJsonParser         topjson = new TopJsonParser();
                    TradeMemoAddResponse1 resp    = topjson.Parse <TradeMemoAddResponse1>(response.Body);
                    return(resp.Trade);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #5
0
        /// <summary>
        /// 获取订单状态
        /// </summary>
        /// <param name="tid"></param>
        /// <returns></returns>
        public ApiResult <string> GetTradeStatus(long tid)
        {
            ITopClient      client  = GetTopClient();
            TradeGetRequest request = new TradeGetRequest
            {
                Fields = "status",
                Tid    = tid
            };
            TradeGetResponse response = client.Execute <TradeGetResponse>(request, AccessToken);

            return(response.AsApiResult(() => response.Trade.Status));
        }
Example #6
0
 /// <summary>
 /// 获取交易对应的信息
 /// </summary>
 /// <param name="tid"></param>
 /// <param name="sesionKey"></param>
 /// <returns></returns>
 public static Trade GetBuyerTrade(string tid, string sesionKey)
 {
     try
     {
         ITopClient      client = TBManager.GetClient();
         TradeGetRequest req    = new TradeGetRequest();
         req.Fields = @"orders.seller_rate,orders.buyer_rate,orders.oid";
         req.Tid    = Convert.ToInt64(tid == "" ? "0" : tid);
         TradeGetResponse response = client.Execute(req, sesionKey);
         return(response.Trade);
     }
     catch (Exception ex)
     {
         CHENGTUAN.Components.ExceptionReporter.WriteLog(ex, CHENGTUAN.Entity.ExceptionPostion.TopApi);
         return(null);
     }
 }
        public Trade getRemarkMsg(string orderId)
        {
            List <Trade> list = new List <Trade>();
            //ITopClient client = new DefaultTopClient(Url, Appkey, Appsecret);
            //TradeFullinfoGetRequest req = new TradeFullinfoGetRequest();
            //req.Fields = "seller_memo,seller_flag,tid";
            //req.Tid = helpcommon.ParmPerportys.GetLongParms(orderId);
            //TradeFullinfoGetResponse response = client.Execute(req, Sessionkey);
            //Trade td = response.Trade;

            ITopClient      client = new DefaultTopClient(Url, Appkey, Appsecret);
            TradeGetRequest req    = new TradeGetRequest();

            req.Fields = "seller_memo,tid";
            req.Tid    = 1007800652310837L;
            TradeGetResponse response = client.Execute(req, Sessionkey);
            Trade            td       = response.Trade;

            return(td);
        }
Example #8
0
        public void TestTradeMemoUpdate()
        {
            string OrderId = "E20201030104820051104261";
            var    request = new TradeGetRequest();

            request.Tid = OrderId;
            YouZanResponse <TradeGetResponse> response = api.TradesGet(request);

            if (response.Data.DeliveryOrder.Count > 0 && response.Data.DeliveryOrder[0].ExpressState == 1)
            {
                //已发货
            }
            var tradeMemo = response.Data;

            var updateRequest = new TradeMemoUpdateRequest();

            updateRequest.Tid  = OrderId;
            updateRequest.Memo = tradeMemo.FullOrderInfo.RemarkInfo.TradeMemo + "测试更新备注-审核通过";
            var updateResponse = api.TradeMemoUpdate(updateRequest);
            var success        = updateResponse.Response.IsSuccess;
        }
Example #9
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);
     }
 }
Example #10
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);
     }
 }
Example #11
0
        static void GetSellerMemo(ITopClient client, Trade trade)
        {
            if (!String.IsNullOrEmpty(trade.SellerMemo))
                return;

            TradeGetRequest req = new TradeGetRequest();
            req.Fields = "seller_memo";
            req.Tid = trade.Tid;

            TradeGetResponse response = client.Execute(req, Global.SessionKey);
            if (response.Trade != null && !String.IsNullOrEmpty(response.Trade.SellerMemo))
                trade.SellerMemo = response.Trade.SellerMemo;
        }