public static string ConfirmOrder(IHttpClientFactory httpFactory, MeiTOrderInfo orderInfo) { var confirmOrderModel = new SOrderConfirm { order_id = orderInfo.OrderId }; confirmOrderModel.sig = SignHelper.Sign <SOrderConfirm>(confirmOrderModel, MeiTAction.orderConfirm); var client = httpFactory.CreateClient(); FormUrlEncodedContent content = new FormUrlEncodedContent(SignHelper.ToDictionary(confirmOrderModel)); try { var response = client.PostAsync(MeiTAction.foodList, content).Result.Content.ReadAsStringAsync().Result; var confrimReturn = JsonConvert.DeserializeObject <RBaseResponse>(response); return(confrimReturn.data); } catch (Exception e) { return(null); } }
public IActionResult OrderConfirmTest(OrderPayed model) { if (model == null || model.order_id == 0) { return(Content("{\"data\":\"model not find\"}")); } model.detail = WebUtility.UrlDecode(model.detail); //构建日志参数 var meiTOrderLog = new MeiTOrderLog { OrderId = model.order_id, OrderContext = "confrim_" + WebUtility.UrlDecode(JsonConvert.SerializeObject(model)), OrderPoiReceiveDetail = model.poi_receive_detail, OrderExtras = model.extras, CreateTime = DateTime.Now }; _meiTOrderLogService.Add(meiTOrderLog); var orderInfoExist = _meiTOrderInfoService.GetMeiTOrderInfo(model.order_id); //防止美团的重复推送 if (orderInfoExist == null) { //将订单存储在数据库 var orderInfo = new MeiTOrderInfo { ShopId = model.app_poi_code, ShopName = WebUtility.UrlDecode(model.wm_poi_name), OrderId = model.order_id, Consignee = WebUtility.UrlDecode(model.recipient_name), Phone = model.recipient_phone, Address = WebUtility.UrlDecode(model.recipient_address), DeliverFee = model.shipping_fee, Income = model.total, OriginalPrice = model.original_price, DaySeq = model.day_seq.ToString(), PackageBagMoney = model.package_bag_money, DinnersNumber = model.dinners_number, TotalPrice = model.original_price - model.shipping_fee, CreateTime = DateTime.Now }; //获取商家实收 var shopReceive = JsonConvert.DeserializeObject <PoiReceivedDetail>(model.poi_receive_detail); orderInfo.WmPoiReceive = Math.Round((decimal)shopReceive.wmPoiReceiveCent / 100, 2); if (orderInfo.DinnersNumber > 10 || orderInfo.DinnersNumber == 0) { orderInfo.DinnersNumber = 1; } if (model.delivery_time != 0) { orderInfo.DeliverTime = CommonHelper.GenericTimeStamp(model.delivery_time); } orderInfo.Description = WebUtility.UrlDecode(model.caution); orderInfo.Status = 2; orderInfo.CreatedAt = CommonHelper.GenericTimeStamp(model.ctime); _meiTOrderInfoService.Add(orderInfo); var products = JsonConvert.DeserializeObject <List <OrderProduct> >(model.detail); if (products != null && products.Count > 0) { foreach (var orderProduct in products) { var mtProduct = new MeiTOrderProduct { OrderId = model.order_id, ProductId = orderProduct.app_food_code, Price = orderProduct.price, Quantity = orderProduct.quantity, Total = orderProduct.price * orderProduct.quantity, Attributes = orderProduct.unit, NewSpecs = orderProduct.spec, ProductName = orderProduct.food_name, //ShopPrice = orderProduct.price, BoxNum = orderProduct.box_num, BoxPrice = orderProduct.box_price, CartId = orderProduct.cart_id, FoodProperty = orderProduct.food_property }; _meiTOrderProductService.Add(mtProduct); } } } return(Content("{\"data\":\"ok\"}")); }