Example #1
0
        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);
            }
        }
Example #2
0
        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\"}"));
        }