/// <summary> /// 获取单笔代销采购订单信息 /// </summary> /// <param name="orderid">主订单ID,即客户订单ID</param> /// <param name="authorizationcode">授权码</param> /// <returns>采购订单详情</returns> /// /// <remarks>2103-8-27 陶辉 创建</remarks> private Result <UpGradeOrder> GetAgentOrderDetail(string orderid, string authorizationcode) { //分销采购单请求 var req = new FenxiaoOrdersGetRequest { Status = "WAIT_SELLER_SEND_GOODS", TcOrderId = long.Parse(orderid) }; var response = client.Execute(req, authorizationcode); //是否异常 if (!response.IsError) { var order = new UpGradeOrder(); if (response.PurchaseOrders != null) { Map(response.PurchaseOrders[0], order); } return(new Result <UpGradeOrder>() { Status = true, StatusCode = 1, Data = order }); } else { return(new Result <UpGradeOrder>() { Status = false, StatusCode = -1, Message = GetErrorMsg(response.ErrCode, response.SubErrMsg + response.ErrMsg), Data = null }); } }
/// <summary> /// 批量获取指定时间区间的订单 /// (待升舱的订单) /// </summary> /// <param name="param">参数实体</param> /// <param name="auth">授权参数</param> /// <returns>订单列表</returns> /// <remarks>2016-6-11 杨浩 创建</remarks> public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth) { var dealerInfo = new HytOrderDealerInfo() { DealerSysNo = 0, DealerMallSysNo = 5, HytPayStatus = 20, IsSelfSupport = 1, }; var result = new Result <List <UpGradeOrder> > { Status = true, Message = "", Data = null, StatusCode = 0 }; var orderList = new List <UpGradeOrder>(); var _param = new Dictionary <string, string>(); //_param.Add("fields", "tid,title,receiver_city,outer_tid,orders"); _param.Add("status", "WAIT_SELLER_SEND_GOODS");//等待卖家发货,即:买家已付款 _param.Add("use_has_next", "true"); _param.Add("page_size", "40"); _param.Add("page_no", "1"); _param.Add("start_update", param.StartDate.ToString("yyyy-MM-dd HH:mm:ss")); _param.Add("end_update", param.EndDate.ToString("yyyy-MM-dd HH:mm:ss")); //_param.Add("start_created", param.StartDate.ToString("yyyy-MM-dd HH:mm:ss")); //_param.Add("end_created", param.EndDate.ToString("yyyy-MM-dd HH:mm:ss")); var response = kit.get("kdt.trades.sold.get", _param); while (true) { var trade = JObject.Parse(response); var trades = trade["response"]["trades"]; bool has_next = bool.Parse(trade["response"]["has_next"].ToString()); trade = JObject.Parse(response); foreach (var i in trades) { var order = new UpGradeOrder(); Map(i, order); order.HytOrderDealer = dealerInfo; order.HytOrderDealer.HytPayType = YouZanPayToPayTypeSysNo(i["pay_type"].ToString()); orderList.Add(order); } if (has_next) { _param["page_no"] = (int.Parse(_param["page_no"].ToString()) + 1).ToString(); response = kit.get("kdt.trades.sold.get", _param); } else { break; } } result.Data = orderList; return(result); }
/// <summary> /// 获取单笔订单详情 /// </summary> /// <param name="param">参数实体</param> /// <param name="auth">授权参数</param> /// <returns>单笔订单详情</returns> /// <reamrks>2017-08-18 罗勤瑶 创建</reamrks> public Result <UpGradeOrder> GetOrderDetail(OrderParameters param, AuthorizationParameters auth) { //}; var dealerInfo = new HytOrderDealerInfo() { DealerSysNo = auth.DealerMall.DealerSysNo, // DealerMallSysNo = auth.DealerMall.SysNo, // HytPayStatus = 20, IsSelfSupport = auth.DealerMall.IsSelfSupport, // }; var result = new Result <UpGradeOrder> { Status = true, Message = "", Data = null, StatusCode = 0 }; var order = new UpGradeOrder(); var _param = new Dictionary <string, string>(); param.PageSize = 999; param.PageIndex = 1; //请求的参数类调用 GeGeJiaParameter ggjParameter = new GeGeJiaParameter(); ///格格家没有单个订单的接口 /// //string parm = "{\"params\":{\"startTime\":\"" + param.StartDate.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"endTime\":\"" + param.EndDate.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"page\":" + param.PageIndex + ", \"pageSize\":" + param.PageSize //+ ", \"status\":2},\"partner\":\"" + auth.DealerApp.AppSecret + "\",\"timestamp\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\"}"; return(null); }
/// <summary> /// 批量获取指定时间区间的天猫商城订单 /// </summary> /// <param name="param">参数实体</param> /// <param name="auth">权限参数</param> /// <returns>订单列表</returns> /// <remarks>2103-8-27 陶辉 创建</remarks> private Result <List <UpGradeOrder> > GetMallOrderList(OrderParameters param, AuthorizationParameters auth) { //增量查询今日订单请求 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,orders.total_fee", Status = "WAIT_SELLER_SEND_GOODS", StartModified = param.StartDate, EndModified = param.EndDate, PageSize = 20L, UseHasNext = false }; var response = client.Execute(req, auth.AuthorizationCode); //是否异常 if (!response.IsError) { var list = new List <UpGradeOrder>(); //总页数 var pageCount = ((response.TotalResults + req.PageSize - 1) / req.PageSize).Value; while (pageCount > 0) { //为防止漏单,先查询最后一页 req.PageNo = pageCount; req.UseHasNext = true; response = client.Execute(req, auth.AuthorizationCode); if (response.Trades != null && !response.IsError) { //过滤查询条件 var trades = FilterMallOrder(response.Trades, param); foreach (Trade trade in trades) { var order = new UpGradeOrder(); Map(trade, order); list.Add(order); } pageCount--; } } return(new Result <List <UpGradeOrder> >() { Status = true, StatusCode = 1, Data = list }); } else { return(new Result <List <UpGradeOrder> >() { Status = false, StatusCode = -1, Message = GetErrorMsg(response.ErrCode, response.SubErrMsg + response.ErrMsg), Data = null }); } }
/// <summary> /// 批量获取代销采购订单 /// </summary> /// <param name="param">参数实体</param> /// <param name="auth">权限参数</param> /// <returns>订单列表</returns> /// <remarks>2103-8-27 陶辉 创建</remarks> private Result <List <UpGradeOrder> > GetAgentOrderList(OrderParameters param, AuthorizationParameters auth) { //分销采购单请求 var req = new FenxiaoOrdersGetRequest { Status = "WAIT_SELLER_SEND_GOODS", StartCreated = param.StartDate, EndCreated = param.EndDate, PageSize = 20L }; //交易状态为待发货 FenxiaoOrdersGetResponse response = client.Execute(req, auth.AuthorizationCode); //是否异常 if (!response.IsError) { var list = new List <UpGradeOrder>(); //总页数 long pageCount = ((response.TotalResults + req.PageSize - 1) / req.PageSize).Value; while (pageCount > 0) { //为避免漏单,先查最后一页 req.PageNo = pageCount; if (response.PurchaseOrders != null) { //过滤查询条件 var purchaseOrders = FilterMallOrder(response.PurchaseOrders, param); //筛选分销类型为代销的采购单 foreach (PurchaseOrder curchaseOrder in purchaseOrders.FindAll(o => o.TradeType == "AGENT")) { var order = new UpGradeOrder(); Map(curchaseOrder, order); list.Add(order); } pageCount--; } } return(new Result <List <UpGradeOrder> >() { Status = true, StatusCode = 1, Data = list }); } else { return(new Result <List <UpGradeOrder> >() { Status = false, StatusCode = -1, Message = GetErrorMsg(response.ErrCode, response.SubErrMsg + response.ErrMsg), Data = null }); } }
/// <summary> /// 查询可退换货升舱订单 /// </summary> /// <param name="param">订单查询参数</param> /// <returns>第三方订单实体分页数据</returns> /// <remarks>2014-1-8 黄志勇 代码规范</remarks> public Result <PagedList <UpGradeOrder> > GetCanRmaOrderList(MallOrderParameters param) { Pager <CBDsOrder> dsOrders; var filter = new ParaDsOrderFilter { PageIndex = param.PageIndex <= 0 ? 1 : param.PageIndex, PageSize = param.PageSize, MallProductName = param.ProductName, MallProductId = param.ProductCode, MallOrderId = param.OrderID, BuyerNick = param.BuyerName, BeginDate = param.StartDate, EndDate = param.EndDate, DealerMallSysNo = param.DealerMallSysNo }; dsOrders = Hyt.BLL.MallSeller.DsOrderBo.Instance.QueryForRma(filter); var list = new List <UpGradeOrder>(); foreach (var order in dsOrders.Rows) { var mallOrderInfo = new UpGradeOrder { HytOrderDealer = new HytOrderDealerInfo { HytOrderTime = order.UpgradeTime, LogisticsTime = order.DeliveryTime, DsOrderSysNo = order.SysNo, HytPayStatus = order.PayStatus, DeliveryStatus = order.Status.ToString(), HytPayTime = order.PayTime }, MallOrderBuyer = new MallOrderBuyerInfo { MallOrderId = order.MallOrderId, BuyerNick = order.BuyerNick }, MallOrderPayment = new MallOrderPaymentInfo(), MallOrderReceive = new MallOrderReceiveInfo() }; list.Add(mallOrderInfo); } var result = new Result <PagedList <UpGradeOrder> > { Data = new PagedList <UpGradeOrder> { TotalItemCount = dsOrders.TotalRows, CurrentPageIndex = dsOrders.CurrentPage, TData = list }, Status = true }; return(result); }
/// <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); }
void Map(PurchaseOrder purchaseOrder, UpGradeOrder order) { //第三方买家订单信息 order.MallOrderBuyer = new MallOrderBuyerInfo() { BuyerNick = purchaseOrder.DistributorUsername ?? string.Empty, MallOrderId = purchaseOrder.TcOrderId.ToString(), MallPurchaseId = purchaseOrder.Id.ToString(), BuyerMessage = purchaseOrder.Memo ?? string.Empty, SellerMessage = purchaseOrder.SupplierMemo }; //订单明细列表 order.UpGradeOrderItems = purchaseOrder.SubPurchaseOrders.Select(item => new UpGradeOrderItem() { MallProductCode = item.SkuOuterId ?? item.ItemOuterId ?? string.Empty, MallProductName = item.Title ?? string.Empty, MallProductAttrId = item.SkuId.ToString(), MallProductAttrs = item.SkuProperties ?? string.Empty, OrderId = purchaseOrder.TcOrderId.ToString(), MallPrice = Math.Round(decimal.Parse(item.DistributorPayment ?? "0") / item.Num, 2), MallAmount = decimal.Parse(item.DistributorPayment ?? "0"), Quantity = int.Parse(item.Num.ToString()), DiscountFee = decimal.Parse((item.TcDiscountFee / 100).ToString()), MallOrderItemId = item.FenxiaoId.ToString() }).ToList(); //第三方订单交易信息 order.MallOrderPayment = new MallOrderPaymentInfo() { Payment = decimal.Parse(purchaseOrder.DistributorPayment ?? "0"), AlipayNo = purchaseOrder.AlipayNo ?? string.Empty, PostFee = decimal.Parse(purchaseOrder.PostFee ?? "0"), DiscountFee = decimal.Parse(purchaseOrder.SubPurchaseOrders.Sum(o => o.TcDiscountFee / 100).ToString()), PayTime = DateTime.Parse(purchaseOrder.PayTime ?? "2000-00-00 00:00:00") }; //订单收货信息 order.MallOrderReceive = new MallOrderReceiveInfo() { City = purchaseOrder.Receiver.City ?? string.Empty, Province = purchaseOrder.Receiver.State ?? string.Empty, District = purchaseOrder.Receiver.District ?? string.Empty, ReceiveAddress = purchaseOrder.Receiver.Address ?? string.Empty, ReceiveContact = purchaseOrder.Receiver.Name ?? string.Empty, TelPhone = purchaseOrder.Receiver.Phone ?? string.Empty, Mobile = purchaseOrder.Receiver.MobilePhone ?? string.Empty, PostCode = purchaseOrder.Receiver.Zip ?? string.Empty }; //订单备注标示 order.MallOrderBuyer.SellerFlag = purchaseOrder.SupplierFlag.ToString(); }
/// <summary> /// 获取店铺等待发货的订单 /// </summary> /// <param name="param">条件参数</param> /// <param name="auth">授权参数</param> /// <returns>订单列表</returns> /// <reamrks>2014-04-08 黄波 创建</reamrks> private List <UpGradeOrder> GetAgentWaitSendOrder(OrderParameters param, AuthorizationParameters auth) { //分销采购单请求 var req = new FenxiaoOrdersGetRequest { Status = "WAIT_SELLER_SEND_GOODS", StartCreated = param.StartDate, EndCreated = param.EndDate, PageSize = 20L }; //交易状态为待发货 FenxiaoOrdersGetResponse response = client.Execute(req, auth.AuthorizationCode); //是否异常 if (!response.IsError) { var list = new List <UpGradeOrder>(); //总页数 long pageCount = ((response.TotalResults + req.PageSize - 1) / req.PageSize).Value; while (pageCount > 0) { //为避免漏单,先查最后一页 req.PageNo = pageCount; if (response.PurchaseOrders != null) { //过滤查询条件 var purchaseOrders = FilterMallOrder(response.PurchaseOrders, param); //筛选分销类型为代销的采购单 foreach (PurchaseOrder curchaseOrder in purchaseOrders.FindAll(o => o.TradeType == "AGENT")) { var order = new UpGradeOrder(); Map(curchaseOrder, order); order.MallOrderBuyer.SellerFlag = curchaseOrder.SupplierFlag.ToString(); list.Add(order); } pageCount--; } } return(list); } else { return(null); } }
/// <summary> /// 获取单笔天猫商城订单详情 /// </summary> /// <param name="orderId">订单编号数</param> /// <param name="authorizationcode">授权码</param> /// <returns>单笔订单详情</returns> /// <remarks>2103-8-27 陶辉 创建</remarks> private Result <UpGradeOrder> GetMallOrderDetail(string orderId, string authorizationcode) { //查询订单详情请求 var req = new TradeFullinfoGetRequest { Fields = "seller_flag,seller_nick,buyer_nick,alipay_no,buyer_message,seller_memo,title,tid,status,payment,discount_fee,post_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.total_fee,orders.discount_fee,orders.sku_properties_name,orders.outer_iid,orders.outer_sku_id,orders.oid", Tid = long.Parse(orderId) }; //返回字段 //订单号 var response = client.Execute(req, authorizationcode); //是否异常 if (!response.IsError) { var order = new UpGradeOrder(); Map(response.Trade, order); return(new Result <UpGradeOrder>() { Status = true, StatusCode = 1, Data = order }); } else { return(new Result <UpGradeOrder>() { Status = false, StatusCode = -1, Message = GetErrorMsg(response.ErrCode, response.SubErrMsg + response.ErrMsg), Data = null }); } }
/// <summary> /// 获取拍拍订单详情 /// </summary> /// <param name="param">查询参数</param> /// <param name="auth">授权参数</param> /// <returns>拍拍订单详情</returns> /// <remarks>2013-11-10 陶辉 创建</remarks> public Result <UpGradeOrder> GetOrderDetail(OrderParameters param, AuthorizationParameters auth) { IDictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("format", "json"); dic.Add("pureData", "1"); dic.Add("sellerUin", auth.ShopAccount); dic.Add("dealCode", param.OrderID); dic.Add("listItem", "1"); var client = new OpenApiOauth(config.AppOAuthID, config.SecretOAuthKey, long.Parse(auth.ShopAccount), auth.AuthorizationCode); var response = client.InvokeOpenApi("http://api.paipai.com/deal/getDealDetail.xhtml", dic, null); var result = Hyt.Util.Serialization.JsonUtil.ToObject <DealInfo>(response); if (result.errorCode == "0") { var order = new UpGradeOrder(); Map(result, order); return(new Result <UpGradeOrder>() { Status = true, StatusCode = 1, Data = order }); } else { return(new Result <UpGradeOrder>() { Status = false, StatusCode = -1, Message = result.errorMessage, Data = null }); } }
/// <summary> /// 获取单笔订单详情 /// </summary> /// <param name="param">参数实体</param> /// <param name="auth">授权参数</param> /// <returns>单笔订单详情</returns> /// <reamrks>2017-08-16 黄杰 创建</reamrks> public Result <UpGradeOrder> GetOrderDetail(OrderParameters param, AuthorizationParameters auth) { var result = new Result <UpGradeOrder> { Status = true, Message = "", Data = null, StatusCode = 0 }; var req = new PopOrderGetRequest(); req.orderId = param.OrderID; //需返回的字段列表 req.optionalFields = "orderId,venderId,orderType,payType,orderTotalPrice,orderSellerPrice,orderPayment,freightPrice,sellerDiscount,orderState,orderStateRemark,deliveryType,invoiceInfo,invoiceCode,orderRemark,orderStartTime,orderEndTime,consigneeInfo,itemInfoList,couponDetailList,venderRemark,balanceUsed,pin,returnOrder,paymentConfirmTime,waybill,logisticsId,vatInfo,modified,directParentOrderId,parentOrderId,customs,customsModel,orderSource,storeOrder,idSopShipmenttype,scDT,serviceFee,pauseBizInfo,taxFee,tuiHuoWuYou,storeId"; var response = client.Execute(req, config.AccessToken, DateTime.Now.ToLocalTime()); var order = new UpGradeOrder(); var trade = JObject.Parse(response.orderDetailInfo); Map(trade["orderInfo"], order); order.HytOrderDealer = new HytOrderDealerInfo(); // 支付方式(1货到付款, 2邮局汇款, 3自提, 4在线支付, 5公司转账, 6银行卡转账) order.HytOrderDealer.HytPayType = JingDongToPayTypeSysNo(trade["orderInfo"]["payType"].ToString()); result.Data = order; return(result); }
/// <summary> /// 获取已升舱待发货订单 /// </summary> /// <param name="param"></param> /// <param name="auth"></param> /// <returns></returns> public Result <List <UpGradeOrder> > GetUpGradedWaitSend(OrderParameters param, AuthorizationParameters auth) { var result = new Result <List <UpGradeOrder> >(); try { var list = new List <UpGradeOrder>(); var request = (HttpWebRequest)WebRequest.Create(url + "/Order/getOrder?Key=" + key + "&paymentStatus=20&Status=60"); var response = (HttpWebResponse)request.GetResponse(); var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); var trade = JObject.Parse(responseString); if (!Convert.ToBoolean(trade["Status"].ToString())) { return(result); } for (int i = 0; i < trade["Data"].Count(); i++) { UpGradeOrder data = new UpGradeOrder(); //商城订单相关信息 HytOrderDealerInfo f = new HytOrderDealerInfo(); f.DealerSysNo = 727; f.DealerMallSysNo = 30; f.ShopName = "货栈"; f.HytPayStatus = 20; f.HytPayment = Convert.ToDecimal(trade["Data"][i]["OrderAmount"].ToString()); f.HytOrderId = trade["Data"][i]["OrderCode"].ToString(); f.OrderTransactionSysNo = ""; f.DeliveryStatus = "待配送"; f.HytOrderTime = Convert.ToDateTime(trade["Data"][i]["AddDate"].ToString()); f.IsSelfSupport = 1; f.HytPayType = Hyt.Model.SystemPredefined.PaymentType.分销商预存; data.HytOrderDealer = f; //第三方卖家信息 MallOrderBuyerInfo m = new MallOrderBuyerInfo(); m.MallOrderId = trade["Data"][i]["OrderCode"].ToString(); m.BuyerNick = "货栈"; data.MallOrderBuyer = m; //订单收货信息 MallOrderReceiveInfo s = new MallOrderReceiveInfo(); s.IdCard = trade["Data"][i]["ConsigneeIDCardNo"].ToString(); s.ReceiveContact = trade["Data"][i]["ConsigneeName"].ToString(); s.Mobile = trade["Data"][i]["ConsigneeMobile"].ToString(); s.Province = trade["Data"][i]["Province"].ToString(); s.City = trade["Data"][i]["City"].ToString(); s.District = trade["Data"][i]["District"].ToString(); s.ReceiveAddress = trade["Data"][i]["ConsigneeAddress"].ToString(); data.MallOrderReceive = s; if (data.UpGradeOrderItems == null) { data.UpGradeOrderItems = new List <UpGradeOrderItem>(); } //订单明细列表 for (int ii = 0; ii < trade["Data"][i]["Product"].Count(); ii++) { var r = trade["Data"][i]["Product"][ii]; AddB2CProduct(r["ProductCode"].ToString()); UpGradeOrderItem mx = new UpGradeOrderItem(); mx.OrderId = trade["Data"][i]["OrderCode"].ToString(); mx.MallProductName = r["ProductName"].ToString(); mx.MallProductCode = r["ProductCode"].ToString(); mx.HytProductErpCode = r["ProductCode"].ToString(); mx.HytProductName = r["ProductName"].ToString(); mx.HytPrice = Convert.ToDecimal(r["OriginalUnitPrice"].ToString()); mx.MallPrice = Convert.ToDecimal(r["OriginalUnitPrice"].ToString()); mx.MallAmount = Convert.ToDecimal(r["SalesAmount"].ToString()); mx.Quantity = Convert.ToInt32(r["Count"].ToString()) * GetNumberInt(r["Specifications"].ToString()); mx.DiscountFee = 0; mx.ProductSalesType = 10; data.UpGradeOrderItems.Add(mx); } list.Add(data); } result.Status = true; result.Data = list; } catch (Exception ex) { result.Status = false; result.Message = ex.Message; } return(result); }
/// <summary> /// 批量获取指定时间区间的订单 /// </summary> /// <param name="param"></param> /// <param name="auth"></param> /// <returns></returns> public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth) { Result <List <UpGradeOrder> > result = new Result <List <UpGradeOrder> >(); List <UpGradeOrder> list = new List <UpGradeOrder>(); var urlstr = url + "/Order/getOrder?Key=" + key + "&paymentStatus=20&Status=60"; urlstr += "&beginDate=" + param.StartDate; urlstr += "&endDate=" + param.EndDate; var request = (HttpWebRequest)WebRequest.Create(urlstr); var response = (HttpWebResponse)request.GetResponse(); var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); var trade = JObject.Parse(responseString); if (!Convert.ToBoolean(trade["Status"].ToString())) { result.Message = trade["Message"].ToString(); result.Status = false; return(result); } #region 读取订单 for (int i = 0; i < trade["Data"].Count(); i++) { var data = new UpGradeOrder(); //商城订单相关信息 HytOrderDealerInfo f = new HytOrderDealerInfo(); f.DealerSysNo = 727; f.DealerMallSysNo = 30; f.ShopName = "货栈"; f.HytPayStatus = 20; f.HytPayment = Convert.ToDecimal(trade["Data"][i]["OrderAmount"].ToString()); f.HytOrderId = trade["Data"][i]["OrderCode"].ToString(); f.OrderTransactionSysNo = ""; f.DeliveryStatus = "待配送"; f.HytOrderTime = Convert.ToDateTime(trade["Data"][i]["AddDate"].ToString()); f.IsSelfSupport = 1; data.HytOrderDealer = f; //第三方卖家信息 var m = new MallOrderBuyerInfo(); m.MallOrderId = trade["Data"][i]["OrderCode"].ToString(); m.BuyerNick = "货栈"; data.MallOrderBuyer = m; //订单收货信息 MallOrderReceiveInfo s = new MallOrderReceiveInfo(); s.IdCard = trade["Data"][i]["ConsigneeIDCardNo"].ToString(); s.ReceiveContact = trade["Data"][i]["ConsigneeName"].ToString(); s.Mobile = trade["Data"][i]["ConsigneeMobile"].ToString(); s.Province = trade["Data"][i]["Province"].ToString(); s.City = trade["Data"][i]["City"].ToString(); s.District = trade["Data"][i]["District"].ToString(); s.ReceiveAddress = trade["Data"][i]["ConsigneeAddress"].ToString(); data.MallOrderReceive = s; if (data.UpGradeOrderItems == null) { data.UpGradeOrderItems = new List <UpGradeOrderItem>(); } var paymentInfo = new MallOrderPaymentInfo(); paymentInfo.Payment = f.HytPayment; paymentInfo.PostFee = Convert.ToDecimal(trade["Data"][i]["FreightAmount"].ToString()); if (trade["Data"][i]["fnReceiptVoucher"].Count() > 0) { paymentInfo.Payment = Convert.ToDecimal(trade["Data"][i]["fnReceiptVoucher"]["Amount"].ToString()); paymentInfo.PayTime = Convert.ToDateTime(trade["Data"][i]["fnReceiptVoucher"]["CreatedDate"].ToString()); paymentInfo.AlipayNo = trade["Data"][i]["fnReceiptVoucher"]["VoucherNo"].ToString(); paymentInfo.TotalTaxAmount = Convert.ToDecimal(trade["Data"][i]["TaxFee"].ToString()); } else { result.Status = false; result.Message = "接口获取的订单号【" + f.HytOrderId + "】没有支付信息!"; return(result); } data.MallOrderPayment = paymentInfo; //订单明细列表 for (int ii = 0; ii < trade["Data"][i]["Product"].Count(); ii++) { var r = trade["Data"][i]["Product"][ii]; AddB2CProduct(r["ProductCode"].ToString()); UpGradeOrderItem mx = new UpGradeOrderItem(); mx.OrderId = trade["Data"][i]["OrderCode"].ToString(); mx.MallProductName = r["ProductName"].ToString(); mx.MallProductCode = r["ProductCode"].ToString(); mx.HytProductErpCode = r["ProductCode"].ToString(); mx.HytProductName = r["ProductName"].ToString(); mx.HytPrice = Convert.ToDecimal(r["OriginalUnitPrice"].ToString()); mx.MallPrice = Convert.ToDecimal(r["OriginalUnitPrice"].ToString()); mx.MallAmount = Convert.ToDecimal(r["SalesAmount"].ToString()); mx.Quantity = Convert.ToInt32(r["Count"].ToString()) * GetNumberInt(r["Specifications"].ToString()); mx.DiscountFee = 0; mx.ProductSalesType = 10; data.UpGradeOrderItems.Add(mx); } list.Add(data); } #endregion result.Status = true; result.Data = list; return(result); }
//2018-03-18 罗勤瑶 修改 void Map(JToken trade, UpGradeOrder order) { //第三方买家订单信息 order.MallOrderBuyer = new MallOrderBuyerInfo() { BuyerNick = trade["receiver"]["receiverName"].ToString(), MallOrderId = trade["number"].ToString(), //格格家无买家留言、卖家备注 BuyerMessage = "", SellerMessage = "" }; order.UpGradeOrderItems = new List <UpGradeOrderItem>(); var orders = trade["items"]; for (int i = 0; i < orders.Count(); i++) { var item = orders[i]; var code = item["itemCode"].ToString(); var code2 = ""; //第三方商品编码统一格式 商品编号*数量-商品类型:商品单价,作为拆分条件罗勤尧 var pcs = "1"; //取出商品名字里面的规格数量 var itemName = item["itemName"].ToString(); var count = 1; if (itemName.Contains("*")) { int index = itemName.IndexOf("*"); string result = itemName.Substring(index + 1, 1); int.TryParse(result, out count); if (count == 0) { count = 1; } } else { count = 1; } int x = itemName.IndexOf("【") + 1; int j = itemName.IndexOf("】"); string str = itemName.Substring(i, j - i + 1); string con = str.Substring(1, 1); int.TryParse(con, out count); if (count == 0) { count = 1; } var type = 0; var price = 0m; if (code.Contains(":")) { var c = code.Split(':')[0]; if (c.Contains("*")) { if (c.Split('*').Length > 1 && c.Split('*')[1].Contains("-")) { pcs = c.Split('*')[1].Split('-')[0]; if (c.Split('*')[1].Split('-').Length > 1 && !string.IsNullOrWhiteSpace(c.Split('*')[1].Split('-')[1])) { if (c.Split('*')[1].Split('-')[1] == "1") { type = 1; } else if (c.Split('*')[1].Split('-')[1] == "2") { type = 2; } else if (c.Split('*')[1].Split('-')[1] == "3") { type = 3; } } } else if (c.Split('*').Length > 1 && !c.Split('*')[1].Contains("-")) { pcs = c.Split('*')[1]; } code2 = c.Split('*')[0]; } else { code2 = c; } if (!string.IsNullOrWhiteSpace(code.Split(':')[1])) { price = decimal.Parse(code.Split(':')[1]); } // code2 = code; } else if (code.Contains("*")) { code2 = code.Split('*')[0]; } else { code2 = code; } //系统商品信息 var product = IPdProductDao.Instance.GetProductByErpCode(code2); if (product != null) { var pricesel = 0m; if (count == 1) { pricesel = product.GeGeJiaSupplyPrice; } else if (count == 2) { pricesel = product.GeGeJiaSupplyPriceSpecTwo; } else if (count == 3) { pricesel = product.GeGeJiaSupplyPriceSpecThree; } order.UpGradeOrderItems.Add(new UpGradeOrderItem() { MallProductCode = code2, MallProductName = item["itemName"].ToString(), MallProductAttrId = item["itemCode"].ToString(), MallProductAttrs = item["itemName"].ToString(), OrderId = trade["number"].ToString(), MallPrice = pricesel / count, MallAmount = pricesel * int.Parse(item["itemCount"].ToString()), // Quantity = int.Parse(item["itemCount"].ToString()) * int.Parse(pcs), Quantity = int.Parse(item["itemCount"].ToString()) * count, DiscountFee = decimal.Parse(trade["couponPrice"].ToString()), // MallOrderItemId = item["itemCode"].ToString(), MallOrderItemId = "", ProductType = type, ProductSalesType = 91 }); } else { order.UpGradeOrderItems.Add(new UpGradeOrderItem() { MallProductCode = code2, MallProductName = item["itemName"].ToString(), MallProductAttrId = item["itemCode"].ToString(), MallProductAttrs = item["itemName"].ToString(), OrderId = trade["number"].ToString(), MallPrice = price / count, MallAmount = price * int.Parse(item["itemCount"].ToString()), // Quantity = int.Parse(item["itemCount"].ToString()) * int.Parse(pcs), Quantity = int.Parse(item["itemCount"].ToString()) * count, DiscountFee = decimal.Parse(trade["couponPrice"].ToString()), // MallOrderItemId = item["itemCode"].ToString(), MallOrderItemId = "", ProductType = type, ProductSalesType = 91 }); } } //第三方订单交易信息 order.MallOrderPayment = new MallOrderPaymentInfo() { Payment = decimal.Parse(trade["realPrice"].ToString()), AlipayNo = "", PostFee = decimal.Parse(trade["freight"].ToString()), DiscountFee = decimal.Parse(trade["couponPrice"].ToString()), PayTime = DateTime.Parse(trade["payTime"].ToString() == "" ? "1900-01-01" : trade["payTime"].ToString()) }; #region 当明细金额合计与实收金额不等时,将差额分摊到最后一个商品上 //if ((order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) != order.UpGradeOrderItems.Sum(i => i.MallAmount)) //{ // var _amt = 0m; // var _count = 0; // foreach (var item in order.UpGradeOrderItems) // { // _count++; // if (_count == order.UpGradeOrderItems.Count) // { // item.MallAmount = (order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) - _amt; // break; // } // _amt += item.MallAmount; // } //} #endregion //订单收货信息 order.MallOrderReceive = new MallOrderReceiveInfo() { City = trade["receiver"]["cityName"].ToString(), Province = trade["receiver"]["provinceName"].ToString(), District = trade["receiver"]["districtName"].ToString(), ReceiveAddress = trade["receiver"]["detailAddress"].ToString(), ReceiveContact = trade["receiver"]["receiverName"].ToString(), Mobile = trade["receiver"]["receiverMobile"].ToString(), PostCode = trade["receiver"]["districtCode"].ToString(), IdCard = trade["receiver"]["receiverIdCard"].ToString(), }; //订单备注标示 //order.MallOrderBuyer.SellerFlag = trade["seller_flag"].ToString(); }
/// <summary> /// 获取海带单笔订单详情 /// </summary> /// <param name="OrderID">海带订单id</param> /// <param name="auth">授权参数</param> /// <returns>单笔订单详情</returns> /// <remarks>2016-6-11 杨浩 创建</remarks> /// <remarks>2017-6-15 罗勤尧 修改</remarks> public Result <UpGradeOrder> GetOrderDetail(string orderID, AuthorizationParameters auth) { var reslut = new Result <UpGradeOrder>() { Status = true }; var _result = OrderDetail(orderID, auth); if (!_result.Status) { reslut.Message = _result.Message; reslut.Status = false; return(reslut); } var orders = _result.Data; if (orders == null) { reslut.Message = "获取异常,请联系客服"; reslut.Status = false; return(reslut); } UpGradeOrder ord = new UpGradeOrder(); ord.HytOrderDealer = new HytOrderDealerInfo() { }; ord.MallOrderBuyer = new MallOrderBuyerInfo() { BuyerNick = "海带", MallOrderId = orders.orderId.ToString(), BuyerMessage = "", SellerMessage = "" }; ord.MallOrderPayment = new MallOrderPaymentInfo() { Payment = 0, AlipayNo = string.Empty, PostFee = orders.shipMoney, DiscountFee = 0, PayTime = DateTime.Now //Orders.data.paySuccessTimeStr }; ord.MallOrderReceive = new MallOrderReceiveInfo() { City = orders.city, Province = orders.province, District = orders.region, ReceiveAddress = orders.shipAddr, ReceiveContact = orders.shipName, TelPhone = string.Empty, Mobile = orders.shipMobile, PostCode = string.Empty, IdCard = orders.idNumber }; ord.UpGradeOrderItems = orders.orderItemList.Select(item => new UpGradeOrderItem { MallProductCode = item.psn, MallProductName = item.name, MallProductAttrId = string.Empty, MallProductAttrs = string.Empty, OrderId = orders.orderId.ToString(), MallPrice = item.supplyPrice, MallAmount = item.supplyPrice, Quantity = item.num, DiscountFee = 0, MallOrderItemId = item.itemId.ToString() }).ToList(); reslut.Data = ord; reslut.StatusCode = 1; return(reslut); }
/// <summary> /// 获取单笔订单详情 /// </summary> /// <param name="param">参数实体</param> /// <param name="auth">授权参数</param> /// <returns>单笔订单详情</returns> /// <reamrks>2017-08-16 黄杰 创建</reamrks> public Result <UpGradeOrder> GetOrderDetail(OrderParameters param, AuthorizationParameters auth) { var result = new Result <UpGradeOrder> { Status = true, Message = "", Data = null, StatusCode = 0 }; var req = new PopOrderGetRequest(); //req.orderId = param.OrderID; ////需返回的字段列表 //req.optionalFields = "orderId,venderId,orderType,payType,orderTotalPrice,orderSellerPrice,orderPayment,freightPrice,sellerDiscount,orderState,orderStateRemark,deliveryType,invoiceInfo,invoiceCode,orderRemark,orderStartTime,orderEndTime,consigneeInfo,itemInfoList,couponDetailList,venderRemark,balanceUsed,pin,returnOrder,paymentConfirmTime,waybill,logisticsId,vatInfo,modified,directParentOrderId,parentOrderId,customs,customsModel,orderSource,storeOrder,idSopShipmenttype,scDT,serviceFee,pauseBizInfo,taxFee,tuiHuoWuYou,storeId"; //XmlDocumentExtender xms = new XmlDocumentExtender(); //xms.LoadXml(param.ProductName = "推单请求报文.xml"); //var response = client.Execute(req, config.AccessToken, DateTime.Now.ToLocalTime()); //var order = new UpGradeOrder() { }; //var trade = JObject.Parse(response.orderDetailInfo); //Map(trade["orderInfo"], order); //order.HytOrderDealer = new HytOrderDealerInfo(); //// 支付方式(1货到付款, 2邮局汇款, 3自提, 4在线支付, 5公司转账, 6银行卡转账) //order.HytOrderDealer.HytPayType = JingDongToPayTypeSysNo(trade["orderInfo"]["payType"].ToString()); string xmlStr = System.IO.File.ReadAllText("推单请求报文.xml"); Hyt.Util.Xml.XmlDocumentExtender xms = new Hyt.Util.Xml.XmlDocumentExtender(); xms.LoadXml(param.ProductName = "推单请求报文.xml"); var order = new UpGradeOrder() { }; //商城订单明细 order.UpGradeOrderItems = new System.Collections.Generic.List <UpGradeOrderItem>(); var orders = xms["HipacPush"]["Body"]["OrderItemList"].ChildNodes; for (int i = 0; i < orders.Count; i++) { var item = orders[i]; var code = item["itemSupplyNo"].InnerText; order.UpGradeOrderItems.Add(new UpGradeOrderItem() { MallProductName = item["itemName"].InnerText, MallProductCode = item["itemSupplyNo"].InnerText, MallPrice = decimal.Parse(item["itemPrice"].InnerText), MallAmount = decimal.Parse(item["itemTotal"].InnerText), Quantity = int.Parse(item["itemQuantity"].InnerText), }); } // var aScource = order.UpGradeOrderItems; //订单收货信息 order.MallOrderReceive = new MallOrderReceiveInfo() { City = xms["HipacPush"]["Body"]["Customer"]["custCity"].InnerText, Province = xms["HipacPush"]["Body"]["Customer"]["custProvice"].InnerText, District = xms["HipacPush"]["Body"]["Customer"]["custArea"].InnerText, ReceiveAddress = xms["HipacPush"]["Body"]["Customer"]["custAddress"].InnerText, ReceiveContact = xms["HipacPush"]["Body"]["Customer"]["custName"].InnerText, Mobile = xms["HipacPush"]["Body"]["Customer"]["custPhone"].InnerText, IdCard = xms["HipacPush"]["Body"]["Customer"]["custIdNum"].InnerText, }; // var bScource = order.MallOrderReceive; //订单信息 // string dd= xms["HipacPush"]["Body"]["Order"]["payTime"].InnerText; var payInfo = xms["HipacPush"]["Body"]["PayInfo"]; var _order = xms["HipacPush"]["Body"]["Order"]; //支付信息 order.HytOrderDealer = new HytOrderDealerInfo() { //第三方订单编号 HytPayType = Convert.ToInt32(payInfo["payType"].InnerText), HytPayTime = DateTime.Now // DateTime.Parse(payInfo["payTime"].InnerText == "0001-01-01 00:00:00" ? "1900-01-01" : payInfo["payTime"].InnerText) }; order.MallOrderPayment = new MallOrderPaymentInfo() { AlipayNo = payInfo["payNo"].InnerText, PayTime = DateTime.Now, // DateTime.Parse(payInfo["payTime"].InnerText.Trim() == "00010101 000000" ? "1900-01-01" : payInfo["payTime"].InnerText), Payment = decimal.Parse(_order["totalPayAmount"].InnerText), PostFee = decimal.Parse(_order["logisticsAmount"].InnerText), }; //订单信息 result.Data = order; return(result); }
/// <summary> /// 获取拍拍订单列表 /// </summary> /// <param name="param">查询参数</param> /// <param name="auth">授权参数</param> /// <returns>拍拍订单列表</returns> /// <remarks>2013-11-10 陶辉 创建</remarks> public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth) { #region 查询条件 IDictionary <string, string> dic = new Dictionary <string, string>(); dic.Add("format", "json"); dic.Add("pureData", "1"); dic.Add("sellerUin", auth.ShopAccount); dic.Add("timeType", "PAY"); dic.Add("timeBegin", param.StartDate.ToString()); dic.Add("timeEnd", param.EndDate.ToString()); dic.Add("dealState", "DS_WAIT_SELLER_DELIVERY"); if (param.IsUseFlag) { dic.Add("dealNoteType", config.DealNoteType); } if (!string.IsNullOrEmpty(param.ProductCode)) { dic.Add("itemCode", param.ProductCode); } if (!string.IsNullOrEmpty(param.ProductName)) { dic.Add("itemNameKey", param.ProductName); } if (!string.IsNullOrEmpty(param.OrderID)) { dic.Add("dealCode", param.OrderID); } #endregion var client = new OpenApiOauth(config.AppOAuthID, config.SecretOAuthKey, long.Parse(auth.ShopAccount), auth.AuthorizationCode); var response = client.InvokeOpenApi("http://api.paipai.com/deal/sellerSearchDealList.xhtml", dic, null); var result = Hyt.Util.Serialization.JsonUtil.ToObject <PaipaiResult>(response); if (result.errorCode == "0") { var list = new List <UpGradeOrder>(); //总页数 var pageCount = result.pageTotal; while (pageCount > 0) { if (dic.ContainsKey("pageIndex")) { dic["pageIndex"] = pageCount.ToString(); } else { dic.Add("pageIndex", pageCount.ToString()); } dic.Remove("sign"); response = client.InvokeOpenApi("http://api.paipai.com/deal/sellerSearchDealList.xhtml", dic, null); result = Hyt.Util.Serialization.JsonUtil.ToObject <PaipaiResult>(response); if (result.errorCode == "0") { foreach (DealInfo deal in result.dealList) { var order = new UpGradeOrder(); Map(deal, order); order.MallOrderBuyer.SellerFlag = deal.dealNoteType; list.Add(order); } } pageCount--; } list = FilterMallOrder(list, param); return(new Result <List <UpGradeOrder> >() { Status = true, StatusCode = 1, Data = list }); } else { return(new Result <List <UpGradeOrder> >() { Status = false, StatusCode = -1, Message = result.errorMessage, Data = null }); } }
/// <summary> /// 批量获取指定时间区间的订单 /// (待升舱的订单) /// </summary> /// <param name="param">参数实体</param> /// <param name="auth">授权参数</param> /// <returns>订单列表</returns> /// <reamrks>2017-08-16 黄杰 创建</reamrks> public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth) { var dealerInfo = new HytOrderDealerInfo() { DealerSysNo = 2323, DealerMallSysNo = 17, HytPayStatus = 20, IsSelfSupport = 1, }; var result = new Result <List <UpGradeOrder> > { Status = true, Message = "", Data = null, StatusCode = 0 }; var orderList = new List <UpGradeOrder>(); var _param = new Dictionary <string, string>(); //创建PopOrderSearchRequest对象 var req = new PopOrderSearchRequest(); //多订单状态 req.orderState = "WAIT_SELLER_STOCK_OUT"; req.orderState = "TRADE_CANCELED"; //需返回的字段列表 req.optionalFields = "orderId,venderId,orderType,payType,orderTotalPrice,orderSellerPrice,orderPayment,freightPrice,sellerDiscount,orderState,orderStateRemark,deliveryType,invoiceInfo,invoiceCode,orderRemark,orderStartTime,orderEndTime,consigneeInfo,itemInfoList,couponDetailList,venderRemark,balanceUsed,pin,returnOrder,paymentConfirmTime,waybill,logisticsId,vatInfo,modified,directParentOrderId,parentOrderId,customs,customsModel,orderSource,storeOrder,idSopShipmenttype,scDT,serviceFee,pauseBizInfo,taxFee,tuiHuoWuYou,storeId"; //查询的页数 req.page = param.PageIndex.ToString(); //每页的条数(最大page_size 100条) req.pageSize = param.PageSize.ToString(); var response = client.Execute(req, config.AccessToken, DateTime.Now.ToLocalTime()); param.PageIndex = 1; if (response.searchorderinfoResult == null) { return(result); } while (true) { var trade = JObject.Parse(response.searchorderinfoResult); int total = int.Parse(trade["orderTotal"].ToString()); int totalPage = total / param.PageSize; if (total % param.PageSize != 0) { totalPage++; } var trades = trade["orderInfoList"]; bool has_next = param.PageIndex < totalPage; //trade = JObject.Parse(response.ToString()); foreach (var i in trades) { var order = new UpGradeOrder(); Map(i, order); order.HytOrderDealer = dealerInfo; // 支付方式(1货到付款, 2邮局汇款, 3自提, 4在线支付, 5公司转账, 6银行卡转账) order.HytOrderDealer.HytPayType = JingDongToPayTypeSysNo(i["payType"].ToString()); orderList.Add(order); } if (has_next) { param.PageIndex++; req.page = param.PageIndex.ToString(); response = client.Execute(req, auth.AuthorizationCode, DateTime.Now.ToLocalTime()); } else { break; } } result.Data = orderList; return(result); }
void Map(Trade trade, UpGradeOrder order) { //第三方买家订单信息 order.MallOrderBuyer = new MallOrderBuyerInfo() { BuyerNick = trade.BuyerNick, MallOrderId = trade.Tid.ToString(), BuyerMessage = trade.BuyerMessage ?? string.Empty, SellerMessage = trade.SellerMemo ?? string.Empty }; //订单明细列表 order.UpGradeOrderItems = trade.Orders.Select(item => new UpGradeOrderItem() { MallProductCode = item.OuterSkuId ?? item.OuterIid ?? item.NumIid.ToString() ?? string.Empty, MallProductName = item.Title, MallProductAttrId = item.SkuId ?? string.Empty, MallProductAttrs = item.SkuPropertiesName ?? string.Empty, OrderId = trade.Tid.ToString(), MallPrice = decimal.Parse(trade.Payment ?? "0") == 0 ? 0 : Math.Round((decimal.Parse(trade.Payment ?? "0") //实际支付金额 - decimal.Parse(trade.PostFee ?? "0")) //运费 / (decimal.Parse(trade.Payment ?? "0") - decimal.Parse(trade.PostFee ?? "0") - decimal.Parse(trade.AdjustFee ?? "0") //调整金额 + decimal.Parse(trade.DiscountFee ?? "0") //折扣金额 ) //折扣金额 * decimal.Parse(item.TotalFee ?? "0") //应付金额 / int.Parse(item.Num.ToString()) //数量 , 2), MallAmount = decimal.Parse(trade.Payment ?? "0") == 0 ? 0 : Math.Round((decimal.Parse(trade.Payment ?? "0") //实际支付金额 - decimal.Parse(trade.PostFee ?? "0")) //运费 / (decimal.Parse(trade.Payment ?? "0") - decimal.Parse(trade.PostFee ?? "0") - decimal.Parse(trade.AdjustFee ?? "0") //调整金额 + decimal.Parse(trade.DiscountFee ?? "0") //折扣金额 ) //折扣金额 * decimal.Parse(item.TotalFee ?? "0") //应付金额 , 2), Quantity = int.Parse(item.Num.ToString()), DiscountFee = decimal.Parse(item.DiscountFee), MallOrderItemId = item.Oid.ToString() }).ToList(); //第三方订单交易信息 order.MallOrderPayment = new MallOrderPaymentInfo() { Payment = decimal.Parse(trade.Payment ?? "0"), AlipayNo = trade.AlipayNo ?? string.Empty, PostFee = decimal.Parse(trade.PostFee ?? "0"), DiscountFee = decimal.Parse(trade.DiscountFee ?? "0"), PayTime = DateTime.Parse(trade.PayTime ?? "1900-01-01") }; #region 当明细金额合计与实收金额不等时,将差额分摊到最后一个商品上 if ((order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) != order.UpGradeOrderItems.Sum(i => i.MallAmount)) { var _amt = 0m; var _count = 0; foreach (var item in order.UpGradeOrderItems) { _count++; if (_count == order.UpGradeOrderItems.Count) { item.MallAmount = (order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) - _amt; break; } _amt += item.MallAmount; } } #endregion //订单收货信息 order.MallOrderReceive = new MallOrderReceiveInfo() { City = trade.ReceiverCity ?? string.Empty, Province = trade.ReceiverState ?? string.Empty, District = trade.ReceiverDistrict ?? string.Empty, ReceiveAddress = trade.ReceiverAddress ?? string.Empty, ReceiveContact = trade.ReceiverName ?? string.Empty, TelPhone = trade.ReceiverPhone ?? string.Empty, Mobile = trade.ReceiverMobile ?? string.Empty, PostCode = trade.ReceiverZip ?? string.Empty }; //订单备注标示 order.MallOrderBuyer.SellerFlag = trade.SellerFlag.ToString(); }
/// <summary> /// 海带批量获取指定时间区间的订单并接单 /// (待升舱的订单)(未发货的订单) /// </summary> /// <param name="param">参数实体</param> /// <param name="auth">授权参数</param> /// <returns>订单列表</returns> /// <remarks>2016-6-11 杨浩 创建</remarks> public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth) { var dealerInfo = new HytOrderDealerInfo() { DealerSysNo = auth.DealerMall.DealerSysNo, //408, DealerMallSysNo = auth.DealerMall.SysNo, //22, HytPayStatus = 20, IsSelfSupport = auth.DealerMall.IsSelfSupport, //1, }; var client = GetClient(auth.DealerApp.AppSecret, auth.DealerApp.AppKey, auth.DealerApp.Extend.Trim()); var result = new Result <List <UpGradeOrder> > { Status = true, Message = "", Data = null, StatusCode = 0 }; #region 时间控制 string weekstr = DateTime.Now.DayOfWeek.ToString(); bool isTest = true; if ((weekstr == "Sunday" || weekstr == "Saturday" || (DateTime.Now.Hour > 16 && DateTime.Now.Minute > 30) || (DateTime.Now.Hour < 9)) && !isTest) { return(new Result <List <UpGradeOrder> >() { Status = false, StatusCode = 9999, Message = "不是接单时间", Data = null }); } #endregion #region 参数 var pa = new HaiDaiOrderParameter(); pa.payStartTime = param.StartDate.ToString("yyyy-MM-dd"); pa.payEndTime = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"); //type=3 待接收订单 0:待发货 pa.type = 3; pa.PageSize = 9999999; pa.PageNum = 1; var dicOrder = SetParameters(auth.AuthorizationCode); dicOrder.Add("type", pa.type.ToString()); dicOrder.Add("abnormalStatus", "0"); if (!(pa.PageNum == 0)) { dicOrder.Add("pageNum", pa.PageNum.ToString()); } if (!(pa.PageSize == 0)) { dicOrder.Add("pageSize", pa.PageSize.ToString()); } //时间范围暂时注释 if (!string.IsNullOrEmpty(pa.payStartTime)) { dicOrder.Add("payStartTime", pa.payStartTime); } if (!string.IsNullOrEmpty(pa.payEndTime)) { dicOrder.Add("payEndTime", pa.payEndTime); } #endregion //正式服务器接口 string url = config.ApiUrlTest + "/api/depot/order!getOrderList.do"; //第三方订单id集合 var orders = new List <int>(); var ordlist = client.InvokeOpenApi(url, dicOrder, null); var list = new List <UpGradeOrder>(); #region 待接收订单 if (ordlist.result == 1) { foreach (resultList deal in ordlist.data.result) { orders.Add(deal.orderId); var order = new UpGradeOrder(); var orderdetailResult = OrderDetail(deal.orderId.ToString(), auth); if (!orderdetailResult.Status) { result.Status = false; result.Message = orderdetailResult.Message; return(result); } Map(deal, order, orderdetailResult.Data); order.HytOrderDealer = dealerInfo; list.Add(order); } } else { result.Status = false; result.Message = ordlist.message; return(result); } #endregion #region 待发货订单 dicOrder["type"] = "0"; //dicOrder["type"] = "1"; dicOrder.Remove("timestamp"); dicOrder.Remove("topSign"); ordlist = client.InvokeOpenApi(url, dicOrder, null); if (ordlist.result == 1) { foreach (resultList deal in ordlist.data.result) { orders.Add(deal.orderId); var order = new UpGradeOrder(); var orderdetailResult = OrderDetail(deal.orderId.ToString(), auth); if (!orderdetailResult.Status) { result.Status = false; result.Message = orderdetailResult.Message; return(result); } Map(deal, order, orderdetailResult.Data); order.HytOrderDealer = dealerInfo; order.HytOrderDealer.HytPayType = Hyt.Model.SystemPredefined.PaymentType.分销商预存; list.Add(order); } } else { result.Status = false; result.Message = ordlist.message; return(result); } #endregion //if (isTest) //{ // return new Result<List<UpGradeOrder>>() // { // Status = true, // StatusCode = 9999, // Data = new List<UpGradeOrder>() // }; //} //接单 var res = GetMallOrderDetail(orders, client, auth); return(new Result <List <UpGradeOrder> >() { Status = true, StatusCode = 1, Data = list }); }
void Map(resultList deal, UpGradeOrder order, DataDetail detail) { order.HytOrderDealer = new HytOrderDealerInfo(); //第三方买家订单信息 order.MallOrderBuyer = new MallOrderBuyerInfo() { BuyerNick = deal.shipName, MallOrderId = deal.sn.ToString(),// deal.orderId.ToString(), SN = deal.sn.ToString(), BuyerMessage = string.Empty, SellerMessage = string.Empty }; if (detail.orderItemList != null) { //var item = deal.orderItemList.Select(item => item.name == haidai.data.orderItemList.Select(i=> i.name==item.name).First().Equals); order.UpGradeOrderItems = new List <UpGradeOrderItem>(); //订单明细列表 foreach (var item in detail.orderItemList) { var orderItem = new UpGradeOrderItem(); string productCode = item.psn; if (item.psn.Contains('-')) { productCode = item.psn.Split('-')[0]; } orderItem.MallProductCode = productCode; orderItem.HytProductErpCode = productCode; orderItem.MallProductName = item.name; orderItem.MallProductAttrId = string.Empty; orderItem.MallProductAttrs = string.Empty; orderItem.OrderId = deal.orderId.ToString(); orderItem.MallPrice = item.supplyPrice / item.totalNum; orderItem.HytPrice = orderItem.MallPrice; //单价 orderItem.MallAmount = item.supplyPrice * item.num; //供货价*数量 orderItem.Quantity = item.totalNum; // item.num*int.Parse(item.specName.ToCharArray()[0].ToString()), orderItem.DiscountFee = 0; orderItem.MallOrderItemId = item.itemId.ToString(); orderItem.SN = deal.sn; var _item = order.UpGradeOrderItems.Where(x => x.MallProductCode == productCode).FirstOrDefault(); if (_item != null) { orderItem.Quantity = orderItem.Quantity + _item.Quantity; orderItem.MallAmount = _item.MallAmount + orderItem.MallAmount; order.UpGradeOrderItems.Remove(_item); } order.UpGradeOrderItems.Add(orderItem); } //order.UpGradeOrderItems = deal.orderItemList.Select(item => new UpGradeOrderItem //{ // MallProductCode = haidai.orderItemList.Where(i => i.name == item.name).First().psn.Split('-').Length > 1 ? haidai.orderItemList.Where(i => i.name == item.name).First().psn.Split('-')[0] : haidai.orderItemList.Where(i => i.name == item.name).First().psn, // HytProductErpCode = haidai.orderItemList.Where(i => i.name == item.name).First().psn.Split('-').Length > 1 ? haidai.orderItemList.Where(i => i.name == item.name).First().psn.Split('-')[0] : haidai.orderItemList.Where(i => i.name == item.name).First().psn, // MallProductName = item.name, // MallProductAttrId = string.Empty, // MallProductAttrs = string.Empty, // OrderId = deal.orderId.ToString(), // MallPrice = item.supplyPrice , // MallAmount = item.supplyPrice, // Quantity =item.totalNum,// item.num*int.Parse(item.specName.ToCharArray()[0].ToString()), // DiscountFee = 0, // MallOrderItemId = item.itemId.ToString(), // SN = deal.sn, //}).ToList(); } //第三方订单交易信息 order.MallOrderPayment = new MallOrderPaymentInfo() { TotalTaxAmount = deal.tax, Payment = deal.goodsCost, AlipayNo = string.Empty, PostFee = decimal.Parse(deal.shipMoney ?? "0"), DiscountFee = 0, PayTime = DateTime.Parse(deal.paySuccessTime) }; #region 当明细金额合计与实收金额不等时,将差额分摊到最后一个商品上 //if ((order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) != order.UpGradeOrderItems.Sum(i => i.MallAmount)) //{ // var _amt = 0m; // var _count = 0; // foreach (var item in order.UpGradeOrderItems) // { // _count++; // if (_count == order.UpGradeOrderItems.Count) // { // item.MallAmount = (order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) - _amt; // break; // } // _amt += item.MallAmount; // } //} #endregion //订单收货信息 order.MallOrderReceive = new MallOrderReceiveInfo() { City = detail.city, Province = detail.province, District = detail.region, ReceiveAddress = detail.shipAddr, ReceiveContact = detail.shipName, TelPhone = string.Empty, Mobile = detail.shipMobile, PostCode = string.Empty, IdCard = detail.idNumber }; }
void Map(DealInfo deal, UpGradeOrder order) { //第三方买家订单信息 order.MallOrderBuyer = new MallOrderBuyerInfo() { BuyerNick = deal.buyerName, MallOrderId = deal.dealCode, BuyerMessage = deal.buyerRemark ?? string.Empty, SellerMessage = deal.dealNote ?? string.Empty + "。" + deal.comboInfo ?? string.Empty }; if (deal.itemList != null) { //订单明细列表 order.UpGradeOrderItems = deal.itemList.Select(item => new UpGradeOrderItem { MallProductCode = !string.IsNullOrEmpty(item.stockLocalCode) ? item.stockLocalCode : item.itemLocalCode, MallProductName = item.itemName, MallProductAttrId = item.skuId ?? string.Empty, MallProductAttrs = item.stockAttr ?? string.Empty, OrderId = deal.dealCode, MallPrice = deal.dealPayFeeTotal == 0 ? 0 : Math.Round(( (deal.dealPayFeeTotal + decimal.Parse(string.IsNullOrEmpty(item.wanggouQuanAmt) ? "0" : item.wanggouQuanAmt)) / (deal.dealPayFeeTotal - deal.couponFee) * (item.itemDealPrice - (item.itemAdjustPrice + item.itemDiscountFee) / item.itemDealCount) ) / 100, 2), MallAmount = deal.dealPayFeeTotal == 0 ? 0 : Math.Round(( (deal.dealPayFeeTotal + decimal.Parse(string.IsNullOrEmpty(item.wanggouQuanAmt) ? "0" : item.wanggouQuanAmt)) / (deal.dealPayFeeTotal - deal.couponFee) * (item.itemDealPrice - (item.itemAdjustPrice + item.itemDiscountFee) / item.itemDealCount) ) / 100, 2) * item.itemDealCount, Quantity = item.itemDealCount, DiscountFee = item.itemDiscountFee / 100, MallOrderItemId = item.dealSubCode }).ToList(); } //第三方订单交易信息 order.MallOrderPayment = new MallOrderPaymentInfo() { Payment = deal.totalCash / 100, AlipayNo = deal.tenpayCode ?? string.Empty, PostFee = decimal.Parse(deal.freight ?? "0") / 100, DiscountFee = deal.couponFee / 100, PayTime = deal.payTime }; #region 当明细金额合计与实收金额不等时,将差额分摊到最后一个商品上 if ((order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) != order.UpGradeOrderItems.Sum(i => i.MallAmount)) { var _amt = 0m; var _count = 0; foreach (var item in order.UpGradeOrderItems) { _count++; if (_count == order.UpGradeOrderItems.Count) { item.MallAmount = (order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) - _amt; break; } _amt += item.MallAmount; } } #endregion //订单收货信息 order.MallOrderReceive = new MallOrderReceiveInfo() { City = string.Empty, Province = string.Empty, District = string.Empty, ReceiveAddress = deal.receiverAddress ?? string.Empty, ReceiveContact = deal.receiverName ?? string.Empty, TelPhone = deal.receiverPhone ?? string.Empty, Mobile = deal.receiverMobile ?? string.Empty, PostCode = deal.receiverPostcode ?? string.Empty }; }
/// <summary> /// 获取一号店指定时间区间的订单 /// </summary> /// <param name="param">查询参数</param> /// <param name="auth">授权参数</param> /// <returns>一号店订单列表</returns> /// <remarks>2017-08-23 黄杰 创建</remarks> public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth) { var dealerInfo = new HytOrderDealerInfo() { DealerSysNo = 1565, DealerMallSysNo = 10, HytPayStatus = 20, IsSelfSupport = 1, }; var result = new Result <List <UpGradeOrder> > { Status = true, Message = "", Data = null, StatusCode = 0 }; var orderList = new List <UpGradeOrder>(); var _param = new Dictionary <string, string>(); var req = new OrdersGetRequest() { /**订单状态(逗号分隔): * ORDER_WAIT_PAY:已下单(货款未全收)、 * ORDER_PAYED:已下单(货款已收)、 * ORDER_WAIT_SEND:可以发货(已送仓库)、 * ORDER_ON_SENDING:已出库(货在途)、 * ORDER_RECEIVED:货物用户已收到、 * ORDER_FINISH:订单完成、 * ORDER_CANCEL:订单取消 */ OrderStatusList = "ORDER_WAIT_SEND", //可以发货(已送仓库) DateType = 2, //日期类型(1:订单生成日期,2:订单付款日期,3:订单发货日期,4:订单收货日期,5:订单更新日期) StartTime = param.StartDate.ToString("yyyy-MM-dd HH:mm:ss"), //查询开始时间 格式2011-12-12 20:10:10 EndTime = param.EndDate.ToString("yyyy-MM-dd HH:mm:ss"), //查询结束时间(时间差为15天) CurPage = 1, //当前页数 PageRows = 80 //每页显示记录数,默认50,最大100 }; var response = client.Execute(req, config.SessionKey); //循环获得订单编号,并根据订单编号获取订单详情 while (true) { var trades = JObject.Parse(response.ToString()); int totals = int.Parse(trades["response"]["totalCount"].ToString()); int totalPages = totals / param.PageSize; if (totals % param.PageSize != 0) { totalPages++; } var tradess = trades["response"]["orderList"]["order"]; bool has_nexts = param.PageIndex < totalPages; //trade = JObject.Parse(response.ToString()); foreach (var i in tradess) { //根据获取的订单号取得订单详情 var reqs = new OrdersDetailGetRequest() { OrderCodeList = i["orderId"].ToString() }; var responseData = client.Execute(reqs, config.SessionKey); #region 把订单详情和MAP绑定 while (true) { var trade = JObject.Parse(responseData.ToString()); int total = int.Parse(trade["response"]["totalCount"].ToString()); int totalPage = total / param.PageSize; if (total % param.PageSize != 0) { totalPage++; } var trades1 = trade["response"]["orderInfoList"]["orderInfo"]; bool has_next = param.PageIndex < totalPage; //trade = JObject.Parse(response.ToString()); foreach (var j in trades1) { var order = new UpGradeOrder(); Map(j, order); order.HytOrderDealer = dealerInfo; //// 支付方式(一号店无支付方式选项) //order.HytOrderDealer.HytPayType = YihaodianToPayTypeSysNo(i["payType"].ToString()); orderList.Add(order); } if (has_next) { param.PageIndex++; req.CurPage = param.PageIndex; response = client.Execute(req, config.SessionKey); } else { break; } } #endregion } if (has_nexts) { param.PageIndex++; req.CurPage = param.PageIndex; response = client.Execute(req, config.SessionKey); } else { break; } } result.Data = orderList; return(result); }
void Map(JToken trade, UpGradeOrder order) { //第三方买家订单信息 order.MallOrderBuyer = new MallOrderBuyerInfo() { BuyerNick = trade["pin"].ToString(), MallOrderId = trade["orderId"].ToString(), BuyerMessage = trade["orderRemark"].ToString(), SellerMessage = trade["venderRemark"].ToString() }; order.UpGradeOrderItems = new List <UpGradeOrderItem>(); var orders = trade["itemInfoList"]; for (int i = 0; i < orders.Count(); i++) { var item = orders[i]; var code = item["outerSkuId"].ToString(); order.UpGradeOrderItems.Add(new UpGradeOrderItem() { MallProductCode = code, MallProductName = item["skuName"].ToString(), MallProductAttrId = item["skuId"].ToString(), MallProductAttrs = item["skuName"].ToString(), OrderId = trade["orderId"].ToString(), MallPrice = decimal.Parse(item["jdPrice"].ToString()), MallAmount = decimal.Parse(item["jdPrice"].ToString()), Quantity = int.Parse(item["itemTotal"].ToString()), DiscountFee = 0,// decimal.Parse(item["discount_fee"].ToString()), MallOrderItemId = item["skuId"].ToString() }); } decimal discountFee = 0; if (trade["coupondetail"] != null) { foreach (var item in trade["coupondetail"]) { discountFee += decimal.Parse(item["couponPrice"].ToString()); } } //第三方订单交易信息 order.MallOrderPayment = new MallOrderPaymentInfo() { Payment = decimal.Parse(trade["orderPayment"].ToString()), AlipayNo = "", PostFee = decimal.Parse(trade["freightPrice"].ToString()), DiscountFee = discountFee, PayTime = DateTime.Parse(trade["paymentConfirmTime"].ToString() == "0001-01-01 00:00:00" ? "1900-01-01" : trade["paymentConfirmTime"].ToString()) }; #region 当明细金额合计与实收金额不等时,将差额分摊到最后一个商品上 if ((order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) != order.UpGradeOrderItems.Sum(i => (i.MallAmount * i.Quantity))) { var _amt = 0m; var _count = 0; foreach (var item in order.UpGradeOrderItems) { _count++; if (_count == order.UpGradeOrderItems.Count) { item.MallAmount = (order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) - _amt; break; } _amt += item.MallAmount; } } #endregion //订单收货信息 order.MallOrderReceive = new MallOrderReceiveInfo() { City = trade["consigneeInfo"]["city"].ToString(), Province = trade["consigneeInfo"]["province"].ToString(), District = trade["consigneeInfo"]["county"].ToString(), ReceiveAddress = trade["consigneeInfo"]["fullAddress"].ToString(), ReceiveContact = trade["consigneeInfo"]["fullname"].ToString(), TelPhone = trade["consigneeInfo"]["telephone"].ToString(), Mobile = trade["consigneeInfo"]["mobile"].ToString(), PostCode = "", }; //订单备注标示 //order.MallOrderBuyer.SellerFlag = trade["seller_flag"].ToString(); }
void Map(JToken trade, UpGradeOrder order) { //第三方买家订单信息 order.MallOrderBuyer = new MallOrderBuyerInfo() { BuyerNick = trade["consignee"]["name"].ToString(), MallOrderId = trade["orderId"].ToString(), BuyerMessage = "", SellerMessage = trade["opinionDesc"].ToString() }; order.UpGradeOrderItems = new List <UpGradeOrderItem>(); var orders = trade["orderDetails"]; for (int i = 0; i < orders.Count(); i++) { var item = orders[i]; var code = item["mainItemId"].ToString(); order.UpGradeOrderItems.Add(new UpGradeOrderItem() { MallProductCode = code, MallProductName = item["itemName"].ToString(), MallProductAttrId = item["itemId"].ToString(), MallProductAttrs = item["itemName"].ToString(), OrderId = trade["orderId"].ToString(), MallPrice = decimal.Parse(item["price"].ToString()), MallAmount = decimal.Parse(item["price"].ToString()), Quantity = int.Parse(item["count"].ToString()), DiscountFee = decimal.Parse((trade["partDiscountPrice"].ToString()) + (trade["couponValue"].ToString())), MallOrderItemId = item["mainItemId"].ToString() }); } //第三方订单交易信息 order.MallOrderPayment = new MallOrderPaymentInfo() { Payment = decimal.Parse(trade["orderTotalPrice"].ToString()), AlipayNo = "", PostFee = decimal.Parse(trade["freightPrice"].ToString()), DiscountFee = decimal.Parse((trade["partDiscountPrice"].ToString()) + (trade["couponValue"].ToString())), PayTime = DateTime.Parse(trade["payTime"].ToString() == "" ? "1900-01-01" : trade["payTime"].ToString()) }; #region 当明细金额合计与实收金额不等时,将差额分摊到最后一个商品上 if ((order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) != order.UpGradeOrderItems.Sum(i => (i.MallAmount * i.Quantity))) { var _amt = 0m; var _count = 0; foreach (var item in order.UpGradeOrderItems) { _count++; if (_count == order.UpGradeOrderItems.Count) { item.MallAmount = (order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) - _amt; break; } _amt += item.MallAmount; } } #endregion //订单收货信息 order.MallOrderReceive = new MallOrderReceiveInfo() { City = trade["consignee"]["city"].ToString(), Province = trade["consignee"]["province"].ToString(), District = trade["consignee"]["county"].ToString(), ReceiveAddress = trade["consignee"]["address"].ToString(), ReceiveContact = trade["idName"].ToString(), TelPhone = "", //trade["consignee"]["telephone"].ToString(), Mobile = trade["consignee"]["mobilephone"].ToString(), PostCode = "" //trade["consignee"]["post"].ToString(), }; //订单备注标示 //order.MallOrderBuyer.SellerFlag = trade["seller_flag"].ToString(); }
/// <summary> /// 获取已升舱待发货订单 /// </summary> /// <param name="param">条件参数</param> /// <param name="auth">授权参数</param> /// <returns>订单列表</returns> /// <reamrks>2017-08-16 黄杰 创建</reamrks> public Result <List <UpGradeOrder> > GetUpGradedWaitSend(OrderParameters param, AuthorizationParameters auth) { var result = new Result <List <UpGradeOrder> > { Status = true, Message = "", Data = null, StatusCode = 0 }; //// 支付方式(1货到付款, 2邮局汇款, 3自提, 4在线支付, 5公司转账, 6银行卡转账) //order.HytOrderDealer.HytPayType = JingDongToPayTypeSysNo(trade["orderInfo"]["payType"].ToString()); var xms = new Hyt.Util.Xml.XmlDocumentExtender(); xms.LoadXml(param.Xml); var order = new UpGradeOrder(); //商城订单明细 order.UpGradeOrderItems = new System.Collections.Generic.List <UpGradeOrderItem>(); var orders = xms.SelectNodes("/HipacPush/Body/OrderItemList/OrderItem"); for (int i = 0; i < orders.Count; i++) { var item = orders[i]; var code = item["itemSupplyNo"].InnerText; int specNum = int.Parse(item["specNum"].InnerText); //规格数 decimal tariffRate = decimal.Parse(item["tariffRate"].InnerText); //关税 decimal exciseRate = decimal.Parse(item["exciseRate"].InnerText); //消费税 decimal addTaxRate = decimal.Parse(item["addTaxRate"].InnerText); //增值税 decimal itemTotalTax = decimal.Parse(item["itemTotalTax"].InnerText); //总税款 decimal itemTotal = decimal.Parse(item["itemTotal"].InnerText); //商品总价 int itemQuantity = int.Parse(item["itemQuantity"].InnerText); order.UpGradeOrderItems.Add(new UpGradeOrderItem() { MallProductName = item["itemName"].InnerText, MallProductCode = code, MallPrice = decimal.Parse(item["itemPrice"].InnerText), MallAmount = itemTotal, Quantity = int.Parse(item["itemQuantity"].InnerText), HytPrice = itemTotal / itemQuantity, }); } var receiveInfo = xms.SelectSingleNode("/HipacPush/Body/Customer"); //订单收货信息 order.MallOrderReceive = new MallOrderReceiveInfo() { City = receiveInfo["custCity"].InnerText, Province = receiveInfo["custProvice"].InnerText, District = receiveInfo["custArea"].InnerText, ReceiveAddress = receiveInfo["custAddress"].InnerText, ReceiveContact = receiveInfo["custName"].InnerText, Mobile = receiveInfo["custPhone"].InnerText, IdCard = receiveInfo["custIdNum"].InnerText, }; var payInfo = xms["HipacPush"]["Body"]["PayInfo"]; var _order = xms["HipacPush"]["Body"]["Order"]; order.MallOrderBuyer = new MallOrderBuyerInfo() { MallOrderId = _order["orderNum"].InnerText, }; order.HytOrderDealer = new HytOrderDealerInfo() { //第三方订单编号 HytPayType = Hyt.Model.SystemPredefined.PaymentType.分销商预存,//Convert.ToInt32(payInfo["payType"].InnerText),//支付类型(微信支付,支付宝,盛付通) HytPayTime = DateTime.Parse(payInfo["payTime"].InnerText), HytPayment = decimal.Parse(_order["totalPayAmount"].InnerText), DealerSysNo = 0, DealerMallSysNo = 0, }; order.MallOrderPayment = new MallOrderPaymentInfo() { AlipayNo = payInfo["payNo"].InnerText, PayTime = DateTime.Parse(payInfo["payTime"].InnerText), Payment = decimal.Parse(_order["totalPayAmount"].InnerText), PostFee = decimal.Parse(_order["logisticsAmount"].InnerText), TotalTaxAmount = decimal.Parse(_order["totalTaxAmount"].InnerText), }; //string sign = MD5Encrypt(config.AppKey + param.OrderID + config.AppKey).ToUpper(); result.Data = new List <UpGradeOrder>(); //订单信息 result.Data.Add(order); return(result); }
/// <summary> /// 批量获取指定时间区间的订单 /// (待升舱的订单) /// </summary> /// <param name="param">参数实体</param> /// <param name="auth">授权参数</param> /// <returns>订单列表</returns> /// <reamrks>2017-08-18 黄杰 创建</reamrks> /// /// <reamrks>2018-03-18 罗勤瑶 修改</reamrks> public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth) { //var dealerInfo = new HytOrderDealerInfo() //{ // DealerSysNo = 129, // DealerMallSysNo = 24, // HytPayStatus = 20, // IsSelfSupport = 1, //}; var dealerInfo = new HytOrderDealerInfo() { DealerSysNo = auth.DealerMall.DealerSysNo, // DealerMallSysNo = auth.DealerMall.SysNo, // HytPayStatus = 20, IsSelfSupport = auth.DealerMall.IsSelfSupport, // }; var result = new Result <List <UpGradeOrder> > { Status = true, Message = "", Data = null, StatusCode = 0 }; var orderList = new List <UpGradeOrder>(); var _param = new Dictionary <string, string>(); param.PageSize = 999; param.PageIndex = 1; //请求的参数类调用 GeGeJiaParameter ggjParameter = new GeGeJiaParameter(); //startTime付款起始时间、endTime付款结束时间。starTime必须小于endTime,并且起始时间跟结束时间差不得超过30天 //page页码,不传默认展示第一页 //pageSize每页数量,不传默认一页50条 //status订单状态;1:未付款,2:待发货,3:已发货,4:交易成功,5:用户取消(待退款团购),6:超时取消(已退款团购),7:团购进行中(团购) //partner商家身份标识 //timestamp时间戳 string parm = "{\"params\":{\"startTime\":\"" + param.StartDate.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"endTime\":\"" + param.EndDate.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"page\":" + param.PageIndex + ", \"pageSize\":" + param.PageSize + ", \"status\":2},\"partner\":\"" + auth.DealerApp.AppSecret + "\",\"timestamp\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\"}"; #region 时间控制 string weekstr = DateTime.Now.DayOfWeek.ToString(); bool isTest = true; if ((weekstr == "Sunday" || weekstr == "Saturday" || (DateTime.Now.Hour > 16 && DateTime.Now.Minute > 30) || (DateTime.Now.Hour < 9)) && !isTest) { return(new Result <List <UpGradeOrder> >() { Status = false, StatusCode = 9999, Message = "不是接单时间", Data = null }); } #endregion //MD5加密签名 string sign = MD5Encrypt(auth.DealerApp.AppKey + parm + auth.DealerApp.AppKey).ToUpper(); var response = PostJson("http://openapi.gegejia.com:8902/api/order/findOrders", parm, sign); param.PageIndex = 1; while (true) { var trade = JObject.Parse(response); if (trade["success"].ToString() == "false") { return(new Result <List <UpGradeOrder> >() { Status = false, StatusCode = 9999, Message = trade["errMsg"].ToString(), Data = null }); } int total = int.Parse(trade["totalCount"].ToString()); int totalPage = total / param.PageSize; if (total % param.PageSize != 0) { totalPage++; } var trades = trade["orders"]; if (trades == null) { return(new Result <List <UpGradeOrder> >() { Status = false, StatusCode = 9999, Message = "没有订单", Data = null }); } bool has_next = param.PageIndex < totalPage; //trade = JObject.Parse(response.ToString()); foreach (var i in trades) { //未冻结订单才能接受 if (i["freezeStatus"].ToString() == "0" || i["freezeStatus"].ToString() == "2") { var order = new UpGradeOrder(); Map(i, order); order.HytOrderDealer = dealerInfo; // 支付方式(1货到付款, 2邮局汇款, 3自提, 4在线支付, 5公司转账, 6银行卡转账) order.HytOrderDealer.HytPayType = GeGeJiaToPayTypeSysNo(i["payChannel"].ToString()); orderList.Add(order); } } if (has_next) { param.PageIndex++; ggjParameter.paramss.page = param.PageIndex; parm = "{\"params\":{\"startTime\":\"" + param.StartDate.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"endTime\":\"" + param.EndDate.ToString("yyyy-MM-dd HH:mm:ss") + "\",\"page\":" + param.PageIndex + ", \"pageSize\":" + param.PageSize + ", \"status\":2},\"partner\":\"" + auth.DealerApp.AppSecret + "\",\"timestamp\":\"" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\"}"; response = PostJson("http://openapi.gegejia.com:8902/api/order/findOrders", parm, sign); } else { break; } } result.Data = orderList; return(result); }
void Map(JToken trade, UpGradeOrder order) { //第三方买家订单信息 order.MallOrderBuyer = new MallOrderBuyerInfo() { BuyerNick = trade["buyer_nick"].ToString(), MallOrderId = trade["tid"].ToString(), BuyerMessage = trade["buyer_message"].ToString(), SellerMessage = trade["trade_memo"].ToString() }; order.UpGradeOrderItems = new List <UpGradeOrderItem>(); var orders = trade["orders"]; for (int i = 0; i < orders.Count(); i++) { var item = orders[i]; var code = item["outer_sku_id"].ToString().Trim('\t').Trim() == "" ? item["outer_item_id"].ToString().Trim('\t').Trim() : item["outer_sku_id"].ToString().Trim('\t').Trim(); code = code.Replace(" ", ""); order.UpGradeOrderItems.Add(new UpGradeOrderItem() { MallProductCode = code, MallProductName = item["title"].ToString(), MallProductAttrId = item["sku_id"].ToString(), MallProductAttrs = item["sku_properties_name"].ToString(), OrderId = trade["tid"].ToString(), MallPrice = decimal.Parse(item["price"].ToString()), MallAmount = decimal.Parse(item["payment"].ToString()), Quantity = int.Parse(item["num"].ToString()), DiscountFee = decimal.Parse(item["discount_fee"].ToString()), MallOrderItemId = item["oid"].ToString() }); } //第三方订单交易信息 order.MallOrderPayment = new MallOrderPaymentInfo() { Payment = decimal.Parse(trade["payment"].ToString()), AlipayNo = trade["outer_tid"].ToString(), PostFee = decimal.Parse(trade["post_fee"].ToString()), DiscountFee = decimal.Parse(trade["discount_fee"].ToString()), PayTime = DateTime.Parse(trade["pay_time"].ToString() == "" ? "1900-01-01" : trade["pay_time"].ToString()) }; #region 当明细金额合计与实收金额不等时,将差额分摊到最后一个商品上 if ((order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) != order.UpGradeOrderItems.Sum(i => i.MallAmount)) { var _amt = 0m; var _count = 0; foreach (var item in order.UpGradeOrderItems) { _count++; if (_count == order.UpGradeOrderItems.Count) { item.MallAmount = (order.MallOrderPayment.Payment - order.MallOrderPayment.PostFee) - _amt; break; } _amt += item.MallAmount; } } #endregion //订单收货信息 order.MallOrderReceive = new MallOrderReceiveInfo() { City = trade["receiver_city"].ToString(), Province = trade["receiver_state"].ToString(), District = trade["receiver_district"].ToString(), ReceiveAddress = trade["receiver_address"].ToString(), ReceiveContact = trade["receiver_name"].ToString(), TelPhone = "", Mobile = trade["receiver_mobile"].ToString(), PostCode = trade["receiver_zip"].ToString() }; string buyer_messages = orders[0]["buyer_messages"].ToString(); if (buyer_messages != "" && (buyer_messages.ToLower().Contains("\"title\": \"身份证\"") || buyer_messages.ToLower().Contains("\"title\": \"身份证号码\""))) { order.MallOrderReceive.IdCard = orders[0]["buyer_messages"][0]["content"].ToString(); } //订单备注标示 order.MallOrderBuyer.SellerFlag = trade["seller_flag"].ToString(); }
/// <summary> /// 批量获取指定时间区间的订单 /// (待升舱的订单) /// </summary> /// <param name="param">参数实体</param> /// <param name="auth">授权参数</param> /// <returns>订单列表</returns> /// <reamrks>2017-09-06 黄杰 创建</reamrks> public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth) { var dealerInfo = new HytOrderDealerInfo() { DealerSysNo = 129, DealerMallSysNo = 24, HytPayStatus = 20, IsSelfSupport = 1, }; var result = new Result <List <UpGradeOrder> > { Status = true, Message = "", Data = null, StatusCode = 0 }; var orderList = new List <UpGradeOrder>(); var _param = new Dictionary <string, string>(); //签名参数 var signParameter = config.AppSecret + "$methodgome.order.orders.get$token" + config.AccessToken + "$v1.0.0endDate" + param.EndDate.ToString("yyyy-MM-dd HH:mm:ss") + "pageNo" + param.PageIndex + "pageSize" + param.PageSize + "startDate" + param.StartDate.ToString("yyyy-MM-dd HH:mm:ss") + "statusPR" + config.AppSecret; var sign = SHA1(signParameter, Encoding.UTF8).ToUpper(); string req = "$token=" + config.AccessToken + "&$method=gome.order.orders.get&$v=1.0.0&$sign=" + sign + "&startDate=" + param.StartDate.ToString("yyyy-MM-dd HH:mm:ss") + "&endDate=" + param.EndDate.ToString("yyyy-MM-dd HH:mm:ss") + "&status=PR&pageNo=" + param.PageIndex + "&pageSize=" + param.PageSize + ""; var response = Hyt.Util.WebUtil.Get(config.ApiUrl + "?" + req); param.PageIndex = 1; while (true) { var trade = JObject.Parse(response); int total = int.Parse(trade["gome_order_orders_get_response"]["result"]["totalResult"].ToString()); int totalPage = total / param.PageSize; if (total % param.PageSize != 0) { totalPage++; } var trades = trade["gome_order_orders_get_response"]["result"]["orders"]; bool has_next = param.PageIndex < totalPage; //trade = JObject.Parse(response.ToString()); foreach (var i in trades) { var order = new UpGradeOrder(); Map(i, order); order.HytOrderDealer = dealerInfo; // 支付方式(1货到付款, 2邮局汇款, 3自提, 4在线支付, 5公司转账, 6银行卡转账) order.HytOrderDealer.HytPayType = GuoMeiToPayTypeSysNo(i["payType"].ToString()); orderList.Add(order); } if (has_next) { param.PageIndex++; response = Hyt.Util.WebUtil.Get(config.ApiUrl + "?" + req); } else { break; } } result.Data = orderList; return(result); }