/// <summary> /// 获取单笔交易的详细信息 /// </summary> /// <param name="sessionKey"></param> /// <param name="tid"></param> /// <param name="ErrorMsg"></param> /// <returns></returns> internal tbOrdersInfo GetTradeFullinfo(string sessionKey, string tid, int ShopId, out string ErrorMsg) { //show_ext 这个字段导致接口报错 tbOrdersInfo newtrade = null; try { ErrorMsg = null; ITopClient client = new DefaultTopClient(StaticSystemConfig.soft.ApiURL, StaticSystemConfig.soft.AppKey, StaticSystemConfig.soft.AppSecret, "json"); TradeFullinfoGetRequest req = new TradeFullinfoGetRequest(); req.Fields += "seller_nick, buyer_nick, title, type, created, tid, seller_rate, buyer_rate,"; req.Fields += " status, payment, adjust_fee, post_fee, total_fee, pay_time, end_time, modified, "; req.Fields += "consign_time, buyer_obtain_point_fee, point_fee, real_point_fee, received_payment, commission_fee,"; req.Fields += "seller_memo, alipay_no,alipay_id,buyer_message, pic_path, num_iid, num, price, "; req.Fields += "receiver_name, receiver_state, receiver_city, receiver_district, receiver_address,"; req.Fields += "receiver_zip, receiver_mobile, receiver_phone,seller_flag, seller_alipay_no, seller_mobile, "; req.Fields += "seller_phone, seller_name, seller_email, available_confirm_fee, has_post_fee, timeout_action_time,"; req.Fields += "snapshot_url, cod_fee, cod_status, shipping_type, trade_memo, buyer_email,buyer_area,"; req.Fields += "trade_from,is_lgtype,is_force_wlb,is_brand_sale,buyer_cod_fee,discount_fee,seller_cod_fee,"; req.Fields += "express_agency_fee,invoice_name,service_orders,credit_cardfee,step_trade_status,step_paid_fee,"; req.Fields += "mark_desc,has_yfx,yfx_fee,yfx_id,yfx_type,trade_source,eticket_ext,send_time, is_daixiao,"; req.Fields += "is_part_consign, arrive_interval, arrive_cut_time, consign_interval,zero_purchase,alipay_point,pcc_af,"; req.Fields += "orders,promotion_details,invoice_name,orders.is_www,orders.store_code,service_tags"; if (!string.IsNullOrEmpty(tid)) { req.Tid = long.Parse(tid); } else { ErrorMsg = "订单编号不能为空"; return(null); } TradeFullinfoGetResponse response = client.Execute(req, sessionKey); if (response.IsError) { ErrorMsg = response.SubErrMsg; return(null); } else { Top.Api.Domain.Trade trade = new Top.Api.Domain.Trade(); newtrade = new tbOrdersInfo(); //订单信息转化 newtrade = ChangeLocationType(response.Trade, ShopId); } } catch (Exception ex) { throw ex; } return(newtrade); }
/// <summary> /// 将淘宝的交易信息转化为本地类型 /// </summary> /// <param name="trade"></param> /// <returns></returns> private tbOrdersInfo ChangeLocationType(Top.Api.Domain.Trade trade, int ShopId) { try { tbOrdersInfo newtrade = new tbOrdersInfo(); tbConsigneeInfo Consignee = new tbConsigneeInfo(); tbBuyerInfo Buyer = new tbBuyerInfo(); List <tbOrdersDetail> Details = new List <tbOrdersDetail>(); if (!String.IsNullOrEmpty(trade.PayTime)) { newtrade.PayDate = Convert.ToDateTime(Comm.DataChange(trade.PayTime, TypeChange.DATETIME));//付款时间 } else { newtrade.PayDate = DateTime.Now; } newtrade.CustomerServiceId = 1; newtrade.CashOndelivery = false; newtrade.Invoice = false; newtrade.NickName = trade.BuyerNick.Trim(); //会员名 Buyer.NickName = trade.BuyerNick.Trim(); //会员名 newtrade.Commission = Convert.ToDecimal(Comm.DataChange(trade.CommissionFee, TypeChange.DECIMAL)); newtrade.OrdersOutNumber = trade.Tid.ToString().Trim(); //淘宝订单号 newtrade.Logistics = new Logistic(); newtrade.LogisticsStr = trade.ShippingType;//暂存物流 newtrade.OrdersFreight = Convert.ToInt32(Comm.DataChange(trade.PostFee, TypeChange.DECIMAL)); newtrade.OrdersProductTotal = Convert.ToDecimal(Comm.DataChange(trade.TotalFee, TypeChange.DECIMAL)); //商品总金额 newtrade.OrdersDate = Convert.ToDateTime(Comm.DataChange(trade.Created, TypeChange.DATETIME)); //交易创建时间 Consignee.Name = Comm.DataChange(trade.ReceiverName, TypeChange.STRING).ToString(); //收件人姓名 Buyer.BuyerName = Consignee.Name; Consignee.OrdersNumber = trade.Tid == null ? "" : trade.Tid.ToString(); Consignee.Provice = Comm.DataChange(trade.ReceiverState, TypeChange.STRING).ToString(); //收件人所在省 Consignee.City = Comm.DataChange(trade.ReceiverCity, TypeChange.STRING).ToString(); //收件人所在市 Consignee.District = Comm.DataChange(trade.ReceiverDistrict, TypeChange.STRING).ToString(); //收件人所在区 Consignee.ConsigneeAddress = Comm.DataChange(trade.ReceiverAddress, TypeChange.STRING).ToString(); //收件人地址 Consignee.PostCode = Comm.DataChange(trade.ReceiverZip, TypeChange.STRING).ToString(); //收件人邮编 Consignee.Mobile = Comm.DataChange(trade.ReceiverMobile, TypeChange.STRING).ToString(); //收件人手机 Buyer.Mobile = Consignee.Mobile; Consignee.Phone = Comm.DataChange(trade.ReceiverPhone, TypeChange.STRING).ToString(); //收件人电话 Buyer.Phone = Consignee.Phone; newtrade.Status = new tbOrdersStatus() { OrdersStatusId = 3 }; //订单状态(默认买家已付款,等待卖家发货状态) decimal Payment = Convert.ToDecimal(Comm.DataChange(trade.Payment, TypeChange.DECIMAL)); //订单实收金额 newtrade.OrdersAccounts = Payment; newtrade.OrdersPaid = Payment; newtrade.IsOrdersReFund = false; //是否有退款 newtrade.OrdersDiscount = newtrade.OrdersPaid - newtrade.OrdersProductTotal - newtrade.OrdersFreight; //订单折扣 newtrade.OrdersWeight = 0; newtrade.OrdersNotes = ""; newtrade.OrdersFlag = "0"; newtrade.OrdersInputDate = DateTime.Now; Consignee.InputDate = newtrade.OrdersInputDate; //买家留言&卖家备注&备注旗帜&邮件地址 newtrade.ServiceNotes = trade.SellerMemo; //客服备注 newtrade.ServiceFlag = trade.SellerFlag.ToString(); //客服备注旗帜样式 newtrade.BuyerMsg = string.IsNullOrEmpty(trade.BuyerMessage) ? "" : trade.BuyerMessage; //买家留言 Buyer.BuyerEmail = trade.BuyerEmail; newtrade.CodFee = Convert.ToDecimal(Comm.DataChange(trade.CodFee, TypeChange.DECIMAL)); //货到付款服务费 newtrade.BuyerRemark = ""; newtrade.DeliveryDate = ""; newtrade.RemarkFlag = ""; newtrade.Shop = new tbShopInfo() { ShopId = ShopId }; if (trade.Orders != null) { foreach (Top.Api.Domain.Order order in trade.Orders) { if (Convert.ToInt32(order.Num) <= 0) { continue; } tbOrdersDetail Detail = new tbOrdersDetail(); Detail.OrdersNumber = trade.Tid.ToString(); Detail.ProductEncoding = !String.IsNullOrEmpty(order.OuterSkuId) ? order.OuterSkuId.Trim() : ""; Detail.ProductName = !String.IsNullOrEmpty(order.Title) ? order.Title.Trim() : ""; Detail.ProductSku = !String.IsNullOrEmpty(order.SkuPropertiesName) ? order.SkuPropertiesName.Trim() : ""; Detail.ProductId = Convert.ToInt32(order.NumIid); Detail.ProductProId = 0; Detail.SalesCommissionId = 1; Detail.ProductImg = String.IsNullOrEmpty(order.PicPath) ? "" : order.PicPath.Trim(); //商品图片 Detail.ProductPrice = Convert.ToDecimal(Comm.DataChange(order.Price, TypeChange.DECIMAL)); //商品价格 Detail.ProductNumber = (int)order.Num; //商品数量 Detail.PackageName = String.IsNullOrEmpty(order.ItemMealName) ? "" : order.ItemMealName; //商品套餐值 Detail.OutNumberIId = order.NumIid == null ? "" : order.NumIid.ToString(); //商品外部编号 Detail.SubOrderNumber = order.Oid.ToString() == null ? "" : order.Oid.ToString(); //子订单编号 Detail.InputDate = newtrade.OrdersInputDate; Detail.ProductTotal = Convert.ToDecimal(Comm.DataChange(order.TotalFee, TypeChange.DECIMAL)); //商品总价 Detail.Details = ""; Detail.ProductCost = 0; Detail.OrdersDiscount = Convert.ToDecimal(Comm.DataChange(order.DiscountFee, TypeChange.DECIMAL)); //优惠金额; Detail.OrdersAdjust = Convert.ToDecimal(Comm.DataChange(order.AdjustFee, TypeChange.DECIMAL)); //手动调整金额; Detail.OrdersAccounts = Detail.ProductTotal; //订单被取消 if (order.Status == "TRADE_CLOSED_BY_TAOBAO") { Detail.IsCanceled = true; } //商品退款 if (order.RefundId == 0) { Detail.ReFundNumber = ""; Detail.IsProductReFund = false; Detail.ReFundStatusId = 0; Detail.ReFundStatusName = order.RefundStatus; } else { Detail.ReFundNumber = order.RefundId.ToString(); Detail.IsProductReFund = true; newtrade.IsOrdersReFund = true; Detail.ReFundStatusId = 0; Detail.ReFundStatusName = ""; } Details.Add(Detail); } } newtrade.Consignee = Consignee; newtrade.Details = Details; newtrade.Buyer = Buyer; return(newtrade); } catch (Exception ex) { throw; } }