Exemplo n.º 1
0
        /// <summary>
        /// 下订单
        /// </summary>
        /// <param name="priceOrderWay"></param>
        /// <param name="zOrder"></param>
        /// <returns></returns>
        public ServiceResult CreateNormalOrder(int priceOrderWay, XZorder zOrder)
        {
            var result = new ServiceResult();

            var ctripApiClient = GetApiClient(priceOrderWay);
            var response       = ctripApiClient.SubmitOrderV(zOrder);

            if (response.code == "0")
            {
                result.SetData(response.result.orderId);
                return(result.SetSucess("下单到携程成功"));
            }
            else
            {
                return(result.SetError(response.errMsg));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 下单
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ServiceResult CreateOrder(long id)
        {
            var result = new ServiceResult();

            var cOrder = SqlSugarContext.TravelskyInstance.Queryable <dingdan_info>().Where(u => (u.PriceOrderWay == 66 || u.PriceOrderWay == 16 || u.PriceOrderWay == 86) && u.fax == id.ToString()).First();

            if (cOrder != null && !string.IsNullOrEmpty(cOrder.ElongOrderID))
            {
                return(result.SetError("已下单到携程,请勿重新下单"));
            }

            if (cOrder.pingtai == "ay" || cOrder.pingtai == "rnx")
            {
                orderRepository = new ShengLvOrderRepository();
            }
            else
            {
                orderRepository = new ThirdOrderRepository();
            }

            var            order       = orderRepository.GetOrderByTaoBaoOrderId(id);
            SqlSugarClient sugarClient = null;

            string faildOrderKey = string.Empty;

            if (order.shopType == 7 || order.shopType == 9)
            {
                sugarClient = SqlSugarContext.ResellbaseInstance;
            }
            else
            {
                sugarClient = SqlSugarContext.BigTreeInstance;
            }

            if ((!string.IsNullOrEmpty(cOrder.beizhu) && cOrder.beizhu.Contains("订单申请取消")) || order.Refuse == 2 || order.remark.Contains("淘宝申请退款") || order.remark.Contains("淘宝执行订单取消"))
            {
                return(result.SetError("分销已取消,取消下单"));
            }

            var zOrder = new XZorder
            {
                comeDate       = order.checkInDate,
                contactName    = order.contactName,
                contactPhone   = "18022416577",
                guestNames     = order.guestName.Split(',').ToList(),
                guestNum       = order.guestName.Split(',').Count(),
                hotelCode      = order.hotelID,
                lateArriveTime = order.lastArriveTime,
                leaveDate      = order.checkOutDate,
                orderNo        = order.sourceOrderID,
                //price = Convert.ToDecimal(order.totalPrice),//指导价
                salePrice        = Convert.ToDecimal(order.alipayPay),  //卖价
                totalPrice       = Convert.ToDecimal(order.totalPrice), //底价
                ratePlanCategory = "501",
                ratePlanCode     = order.ratePlanID,
                roomNum          = order.roomNum,
                specialRequest   = order.comment,
            };

            var createResult = new ServiceResult();

            if (cOrder.PriceOrderWay == 86)
            {
                createResult = CreatePromotionOrder(zOrder);
            }
            else
            {
                createResult = CreateNormalOrder((int)cOrder.PriceOrderWay, zOrder);
            }


            if (cOrder != null)
            {
                cOrder.caozuo = string.Format("{0}system 操作下单到携程 [{1}]\n", cOrder.caozuo, DateTime.Now.ToString());
            }

            if (createResult.IsSucess)
            {
                string ctripOrderId = createResult.Data.ToString();
                cOrder.ElongOrderID = ctripOrderId;
                string message = string.Format("下单成功,订单号:({0})", ctripOrderId);
                cOrder.state = 3;

                if (string.IsNullOrEmpty(cOrder.beizhu))
                {
                    cOrder.beizhu = string.Format("【系统】:{0} [{1}]<br/>", message, DateTime.Now.ToString());
                }
                else
                {
                    cOrder.beizhu = string.Format("{2}【系统】:{0} [{1}]<br/>", message, DateTime.Now.ToString(), cOrder.beizhu);
                }

                var rows = SqlSugarContext.TravelskyInstance.Updateable(cOrder).ExecuteCommand();
                if (rows > 0)
                {
                    var payResult = PayOrder(id);  //下单后支付
                }

                order.remark = string.Format("{0}【携程】:{1} [{2}]<br/>", order.remark, message, DateTime.Now.ToString());
                rows         = sugarClient.Updateable(order).UpdateColumns(u => u.remark).ExecuteCommand();

                return(result.SetSucess(message));
            }
            else
            {
                cOrder.state  = 1;
                cOrder.beizhu = string.Format("{0}【系统】:下单失败,{1}  [{2}]<br/>", cOrder.beizhu, createResult.Message, DateTime.Now.ToString());

                var rows = SqlSugarContext.TravelskyInstance.Updateable(cOrder).ExecuteCommand();

                return(result.SetError(createResult.Message));
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 促销下单
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        public ServiceResult CreatePromotionOrder(XZorder order)
        {
            var result = new ServiceResult();

            var request   = new CtripApi.NewRequest.CreateOrderRequest {
            };
            var apiConfig = ApiConfigManager.ZhiHeC;

            request.UniqueID = new List <UniqueIDItem> {
                //new UniqueIDItem{ ID="28", Type=apiConfig.AllianceID },
                //new UniqueIDItem{ ID="503", Type=apiConfig.SID },
                new UniqueIDItem {
                    ID = apiConfig.UID, Type = "1"
                },
                new UniqueIDItem {
                    ID = order.orderNo, Type = "504"
                },
            };

            List <PersonNameItem> personNames = new List <PersonNameItem>();

            foreach (var item in order.guestNames)
            {
                PersonNameItem name = new PersonNameItem()
                {
                    Name = item
                };
                personNames.Add(name);
            }

            request.Version           = "1.0";
            request.PrimaryLangID     = "zh-cn";
            request.HotelReservations = new CtripApi.NewRequest.HotelReservations
            {
                HotelReservation = new CtripApi.NewRequest.HotelReservation
                {
                    ResGlobalInfo = new CtripApi.NewRequest.ResGlobalInfo
                    {
                        Total = new CtripApi.NewRequest.Total
                        {
                            InclusiveAmount = order.totalPrice,
                            ExclusiveAmount = 0,
                            CurrencyCode    = "CNY"
                        },
                        TPA_Extensions = new TPA_Extensions1
                        {
                            TotalCost = new TotalCost
                            {
                                CurrencyCode    = "CNY",
                                InclusiveAmount = order.salePrice,
                                ExclusiveAmount = 0,
                            }
                        },
                        GuestCounts = new CtripApi.NewRequest.GuestCounts
                        {
                            GuestCount = new CtripApi.NewRequest.GuestCount
                            {
                                Count = order.guestNames.Count
                            }
                        },
                        TimeSpan = new TimeSpanInfo
                        {
                            Start = order.comeDate.ToString("yyyy-MM-dd"),
                            End   = order.leaveDate.ToString("yyyy-MM-dd")
                        },
                        DepositPayments = new List <string>
                        {
                        }
                    }
                    ,
                    RoomStays = new CtripApi.NewRequest.RoomStays
                    {
                        RoomStay = new CtripApi.NewRequest.RoomStay
                        {
                            RoomTypes = new CtripApi.NewRequest.RoomTypes
                            {
                                RoomType = new RoomType
                                {
                                    NumberOfUnits = order.roomNum
                                }
                            },
                            RatePlans = new CtripApi.NewRequest.RatePlans
                            {
                                RatePlan = new RatePlan
                                {
                                    RoomID           = order.ratePlanCode,
                                    PrepaidIndicator = 1
                                }
                            },
                            BasicPropertyInfo = new BasicPropertyInfo
                            {
                                HotelCode = order.hotelCode
                            }
                        }
                    },
                    ResGuests = new CtripApi.NewRequest.ResGuests
                    {
                        ResGuest = new CtripApi.NewRequest.ResGuest
                        {
                            ArrivalTime    = "23:30", //最早到店时间
                            TPA_Extensions = new TPA_Extensions
                            {
                                LateArrivalTime = "23:30"  //最晚到店时间
                            },
                            Profiles = new CtripApi.NewRequest.Profiles
                            {
                                ProfileInfo = new CtripApi.NewRequest.ProfileInfo
                                {
                                    Profile = new CtripApi.NewRequest.Profile
                                    {
                                        Customer = new CtripApi.NewRequest.Customer
                                        {
                                            ContactPerson = new CtripApi.NewRequest.ContactPerson
                                            {
                                                PersonName = new CtripApi.NewRequest.PersonName
                                                {
                                                    Name = order.contactName
                                                },
                                                Telephone = new Telephone
                                                {
                                                    PhoneNumber   = order.contactPhone,
                                                    PhoneTechType = "5",
                                                }
                                                ,
                                                ContactType = "non"
                                            },
                                            PersonName = personNames
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            };

            var response = CtripNewClient.Excute(request);

            if (response.Errors.Count == 0)
            {
                var resInfo = response.HotelReservations.HotelReservation.ResGlobalInfo.HotelReservationIDs.Where(u => u.ResID_Type == "501").FirstOrDefault();
                result.SetData(resInfo.ResID_Value);
                return(result.SetSucess("下单成功"));
            }
            else
            {
                return(result.SetError(response.Errors[0].Value));
            }
        }