예제 #1
0
        public RequestResult <bool> Cancel(decimal orderId, string externalOrderId, IEnumerable <string> passengers, string reason)
        {
            RequestResult <bool> result;
            var request  = string.Empty;
            var response = string.Empty;

            try {
                var signValue = new Dictionary <string, string>
                {
                    { "orderid", externalOrderId }
                };
                request = GetRequest("cancel_order", signValue);
                var platform = new _517Na.BenefitInterface {
                    Url             = Platform.Address,
                    Timeout         = Platform.Timeout,
                    RequestEncoding = Platform.Encoding
                };
                response = platform.InterfaceFacade(request);
                result   = parseCancelOrderResponse(response);
            } catch (Exception ex) {
                LogService.SaveExceptionLog(ex, "517Na取消订单");
                result = new RequestResult <bool> {
                    Success    = false,
                    ErrMessage = "系统错误,请联系平台"
                };
                response = ex.Message;
            }
            SaveRequestLog(response, request, "取消订单");
            return(result);
        }
예제 #2
0
        public RequestResult <TicketInfo> QueryTicketNo(decimal orderId, string externalOrderId)
        {
            RequestResult <TicketInfo> result;
            var request  = string.Empty;
            var response = string.Empty;

            try {
                var signValue = new Dictionary <string, string>
                {
                    { "orderid", externalOrderId }
                };
                request = GetRequest("get_orderinfo", signValue);
                var platform = new _517Na.BenefitInterface {
                    Url             = Platform.Address,
                    Timeout         = Platform.Timeout,
                    RequestEncoding = Platform.Encoding
                };
                response = platform.InterfaceFacade(request);
                result   = parseQueryTicketNoResponse(response);
            } catch (Exception ex) {
                LogService.SaveExceptionLog(ex, "获取517Na订单信息");
                result = new RequestResult <TicketInfo> {
                    Success    = false,
                    ErrMessage = ex.Message == "The operation has timed out" ? "操作超时,请稍后再试!" : "系统错误,请联系平台"
                };
                response = ex.Message;
            }
            SaveRequestLog(response, request, "查询票号信息");
            return(result);
        }
예제 #3
0
        public RequestResult <AutoPayResult> AutoPay(decimal orderId, string externalOrderId, PayInterface payInterface, decimal amount)
        {
            RequestResult <AutoPayResult> result;
            var request  = string.Empty;
            var response = string.Empty;

            try {
                var signValue = new Dictionary <string, string>
                {
                    { "orderid", externalOrderId },
                    { "amount", amount.ToString("F2") }
                };
                request = GetRequest("pay_order", signValue);
                var platform = new _517Na.BenefitInterface {
                    Url             = Platform.Address,
                    Timeout         = Platform.Timeout,
                    RequestEncoding = Platform.Encoding
                };
                response = platform.InterfaceFacade(request);
                result   = parseAutoPayResponse(response);
                if (result.Success)
                {
                    result.Result.Id                   = orderId;
                    result.Result.ExternalId           = externalOrderId;
                    result.Result.Payment.PayInterface = payInterface;
                    result.Result.Payment.IsAutoPay    = true;
                    result.Result.Payment.PayTime      = DateTime.Now;
                }
            } catch (Exception ex) {
                LogService.SaveExceptionLog(ex, "517Na代扣");
                result = new RequestResult <AutoPayResult> {
                    Success    = false,
                    ErrMessage = ex.Message == "The operation has timed out" ? "代扣超时,请稍后再试!" : "系统错误,请联系平台"
                };
                response = ex.Message;
            }
            SaveRequestLog(response, request, "代扣");
            return(result);
        }
예제 #4
0
        public RequestResult <IEnumerable <ExternalPolicyView> > Match(PNRPair pnrPair, string pnrContent, string patContent, ExternalPolicyFilter filter)
        {
            if (filter.VoyageType != ItineraryType.OneWay && filter.VoyageType != ItineraryType.Roundtrip)
            {
                return(new RequestResult <IEnumerable <ExternalPolicyView> > {
                    Success = false,
                    ErrMessage = "不支持行程:" + filter.VoyageType.GetDescription()
                });
            }
            RequestResult <IEnumerable <ExternalPolicyView> > result;
            var request  = string.Empty;
            var response = string.Empty;

            try {
                var signValue = new Dictionary <string, string>
                {
                    { "pnrcontent", GetPnrParameter(pnrContent) },
                    { "patcontent", GetPnrParameter(patContent) }
                };
                request = GetRequest("get_benefit_pnrcontent", signValue);
                var platform = new _517Na.BenefitInterface {
                    Url             = Platform.Address,
                    Timeout         = Platform.Timeout,
                    RequestEncoding = Platform.Encoding
                };
                response = platform.InterfaceFacade(request);
                result   = parseMatchResponse(response, filter);
            } catch (Exception ex) {
                LogService.SaveExceptionLog(ex, "通过编码内容匹配517Na政策");
                result = new RequestResult <IEnumerable <ExternalPolicyView> > {
                    Success    = false,
                    ErrMessage = "系统错误,请联系平台"
                };
                response = ex.Message;
            }
            SaveRequestLog(response, request, "匹配政策");
            return(result);
        }
예제 #5
0
        public RequestResult <ExternalOrderView> Produce(decimal orderId, OrderView orderView, string pnrContent, string patContent, ExternalPolicyView policy)
        {
            RequestResult <ExternalOrderView> result;
            var request  = string.Empty;
            var response = string.Empty;

            try {
                var signValue = new Dictionary <string, string>
                {
                    { "pnrcontent", GetPnrParameter(pnrContent) },
                    { "bigpnr", orderView.PNR.BPNR },
                    { "benefitid", policy.Id },
                    { "linker", Platform.Contact },
                    { "linktel", Platform.ContactPhone },
                    { "splitbenefitid", (policy as _517NaPolicyView).SubId },
                    { "patcontent", GetPnrParameter(patContent) }
                };
                request = GetRequest("create_order_pnrcontent", signValue);
                var platform = new _517Na.BenefitInterface {
                    Url             = Platform.Address,
                    Timeout         = Platform.Timeout,
                    RequestEncoding = Platform.Encoding
                };
                response = platform.InterfaceFacade(request);
                result   = parseProduceResponse(response);
            } catch (Exception ex) {
                LogService.SaveExceptionLog(ex, "517Na生成订单");
                result = new RequestResult <ExternalOrderView> {
                    Success    = false,
                    ErrMessage = "系统错误,请联系平台"
                };
                response = ex.Message;
            }
            SaveRequestLog(response, request, "生成订单");
            return(result);
        }