public AirTicketRS getAirTicketRS(VO_PrintersTicketsRQ vo_PrintersTicketsRQ) { /*METODO PRINCICPAL QUE RETORNA EL OBJETO DE RESULTADOS DE SABRE*/ StringBuilder consulta = new StringBuilder(); clsParametros cParametros = new clsParametros(); cParametros.TipoWs = Enum_ProveedorWebServices.Sabre; AirTicketRQ.AirTicketRQ oAirTicketRQ = new WS_SsoftSabre.AirTicketRQ.AirTicketRQ(); AirTicketRS oAirTicketRS = new AirTicketRS(); objvo_Credentials = Ssoft.Utils.clsSesiones.getCredentials(); try { List <string> lsContadorOpciones = new List <string>(); AirTicketRQ.MessageHeader Mensaje_ = clsSabreBase.AirTicket(); if (Mensaje_ != null) { AirTicketRQ.Security Seguridad_ = new AirTicketRQ.Security(); Seguridad_.BinarySecurityToken = Session_; #region [ POS ] AirTicketRQPOS oAirTicketRQPOS = new AirTicketRQPOS(); AirTicketRQPOSSource oAirTicketRQPOSSource = new AirTicketRQPOSSource(); oAirTicketRQPOSSource.PseudoCityCode = objvo_Credentials.Pcc;//ConfigurationManager.AppSettings["Sabre_Ipcc"]; oAirTicketRQPOS.Source = oAirTicketRQPOSSource; oAirTicketRQ.POS = oAirTicketRQPOS; #endregion #region [ VERSION ] oAirTicketRQ.Version = clsSabreBase.SABRE_VERSION_AIRTICKET; #endregion #region [ DESIGNATEPRINTERS ] AirTicketRQOptionalQualifiers oAirTicketRQOptionalQualifiers = new AirTicketRQOptionalQualifiers(); AirTicketRQOptionalQualifiersPricingQualifiers oPricingQualifiers = new AirTicketRQOptionalQualifiersPricingQualifiers(); AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice[] oPricingQualifiersBasicPrices = new AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice[vo_PrintersTicketsRQ.PQNumber.Count]; AirTicketRQOptionalQualifiersMiscQualifiers oMiscQualifiers = new AirTicketRQOptionalQualifiersMiscQualifiers(); AirTicketRQOptionalQualifiersMiscQualifiersCommission oMiscQualifiersCommission = new AirTicketRQOptionalQualifiersMiscQualifiersCommission(); int iPosPQ = 0; foreach (string sPQNumber in vo_PrintersTicketsRQ.PQNumber) { AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice oPricingQualifiersBasicPrice = new AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice(); oPricingQualifiersBasicPrice.PQNumber = vo_PrintersTicketsRQ.PQNumber[iPosPQ].ToString(); //oPricingQualifiersBasicPrice.EndPQNumber = vo_PrintersTicketsRQ.EndPQNumber; oPricingQualifiersBasicPrices[iPosPQ] = oPricingQualifiersBasicPrice; iPosPQ++; } oPricingQualifiers.BasicPrice = oPricingQualifiersBasicPrices; oAirTicketRQOptionalQualifiers.PricingQualifiers = oPricingQualifiers; oMiscQualifiersCommission.Percentage = vo_PrintersTicketsRQ.CommisionPercent; oMiscQualifiers.Commission = oMiscQualifiersCommission; oAirTicketRQ.OptionalQualifiers = oAirTicketRQOptionalQualifiers; #endregion AirTicketService oAirTicketService = new AirTicketService(); oAirTicketService.MessageHeaderValue = Mensaje_; oAirTicketService.SecurityValue = Seguridad_; oAirTicketService.Url = objvo_Credentials.UrlWebServices; oAirTicketRS = oAirTicketService.AirTicketRQ(oAirTicketRQ); if (oAirTicketRS.Errors != null) { cParametros.Id = 0; cParametros.Code = oAirTicketRS.Errors.Error.ErrorCode; cParametros.Info = oAirTicketRS.Errors.Error.ErrorInfo.Message; cParametros.Message = oAirTicketRS.Errors.Error.ErrorMessage; cParametros.Severity = oAirTicketRS.Errors.Error.Severity; cParametros.Complemento = "HostCommand: " + oAirTicketRS.TPA_Extensions.HostCommand; cParametros.Metodo = System.Reflection.MethodBase.GetCurrentMethod().Name; cParametros.Tipo = clsTipoError.WebServices; consulta.AppendLine("Credenciales: "); try { if (objvo_Credentials != null) { consulta.AppendLine("User: "******"Password: "******"Ipcc: " + objvo_Credentials.Ipcc); consulta.AppendLine("Pcc: " + objvo_Credentials.Pcc); consulta.AppendLine("QNumber: " + objvo_Credentials.QNumber); consulta.AppendLine("Dominio: " + objvo_Credentials.Dominio); consulta.AppendLine("Session Sabre: " + Session_.ToString()); consulta.AppendLine("Url Sabre: " + objvo_Credentials.UrlWebServices); } } catch { } cParametros.TargetSite = consulta.ToString(); try { clsCache cCache = new csCache().cCache(); if (cCache != null) { cParametros.Source = "Sesion Local: " + cCache.SessionID.ToString(); } else { cParametros.Source = "Sesion Local: No hay cache "; } } catch { cParametros.Source = "Sesion Local: Error "; } ExceptionHandled.Publicar(cParametros); try { Negocios_WebServiceSabreCommand.setEmailError(cParametros, "Error al emitir tiquetes"); } catch { } } else { cParametros.Id = 1; cParametros.Message = oAirTicketRS.Success; cParametros.TipoLog = Enum_Error.Transac; consulta.AppendLine("Credenciales: "); try { if (objvo_Credentials != null) { consulta.AppendLine("User: "******"Password: "******"Ipcc: " + objvo_Credentials.Ipcc); consulta.AppendLine("Pcc: " + objvo_Credentials.Pcc); consulta.AppendLine("QNumber: " + objvo_Credentials.QNumber); consulta.AppendLine("Dominio: " + objvo_Credentials.Dominio); consulta.AppendLine("Session Sabre: " + Session_.ToString()); consulta.AppendLine("Url Sabre: " + objvo_Credentials.UrlWebServices); } } catch { } cParametros.TargetSite = consulta.ToString(); try { clsCache cCache = new csCache().cCache(); if (cCache != null) { cParametros.Source = "Sesion Local: " + cCache.SessionID.ToString(); } else { cParametros.Source = "Sesion Local: No hay cache "; } } catch { cParametros.Source = "Sesion Local: Error "; } cParametros.Metodo = System.Reflection.MethodBase.GetCurrentMethod().Name; cParametros.Complemento = "HostCommand: " + oAirTicketRS.TPA_Extensions.HostCommand; cParametros.Tipo = clsTipoError.WebServices; cParametros.Severity = clsSeveridad.Moderada; ExceptionHandled.Publicar(cParametros); } } } catch (Exception Ex) { cParametros.Id = 0; cParametros.Message = Ex.Message; cParametros.StackTrace = Ex.StackTrace; cParametros.Source = Ex.Source; cParametros.TargetSite = Ex.TargetSite.ToString(); cParametros.Severity = clsSeveridad.Alta; cParametros.Metodo = System.Reflection.MethodBase.GetCurrentMethod().Name; cParametros.Tipo = clsTipoError.WebServices; ExceptionHandled.Publicar(cParametros); try { Negocios_WebServiceSabreCommand.setEmailError(cParametros, "Error al Emitir tiquetes"); } catch { } } return(oAirTicketRS); }
public void Call() { try { var request = new AirTicketRQ { POS = new AirTicketRQPOS() { Source = new AirTicketRQPOSSource() { PseudoCityCode = VolarisResources.PseudoCodeCity } }, Version = VolarisResources.AirTicketServiceVersion }; var creditCardInformation = Reservation.Payment.CreditCardInformation; request.OptionalQualifiers = new AirTicketRQOptionalQualifiers() { FOPQualifiers = new AirTicketRQOptionalQualifiersFOPQualifiers() { SingleFOP = new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOP () { CCInfo = new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOPCCInfo () { CreditCardNumber = new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOPCCInfoCreditCardNumber () { Code = creditCardInformation . CreditCardNumber }, CreditCardExpiration = new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOPCCInfoCreditCardExpiration () { ExpireDate = creditCardInformation . ExpirationDate . ToString ("yyyy-MM", new CultureInfo ("en-US")) }, ManualApproval = new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOPCCInfoManualApproval () { Code = Reservation.Payment.ManualApprovalCode }, CreditCardVendor = new AirTicketRQOptionalQualifiersFOPQualifiersSingleFOPCCInfoCreditCardVendor () { Code = Reservation.Payment.CreditCardInformation.CreditCardStringType } }, Type = "CC" } }, PricingQualifiers = new AirTicketRQOptionalQualifiersPricingQualifiers() { BasicPrice = new[] { new AirTicketRQOptionalQualifiersPricingQualifiersBasicPrice { PQNumber = "1" }, } } }; var service = new AirTicketService { MessageHeaderValue = this.GetMessageHeader(), SecurityValue = new Security() { BinarySecurityToken = this.SecurityToken } }; Serializer.Serialize("AirTicketLLSRQ", request); var response = service.AirTicketRQ(request); Serializer.Serialize("AirTicketLLSRS", response); if (response.Success != null && response.Errors == null) { if (response.Text != null) { var result = response.Text.FirstOrDefault(t => !string.IsNullOrEmpty(t)); if (!string.IsNullOrEmpty(result)) { var responseText = result.Split(' ').Where(s => !string.IsNullOrEmpty(s)).ToList(); if (responseText.Any() && responseText.Count > 10) { // Asumiendo que ya se aprobo por PaymentRQ if (!Reservation.Payment.HasBeenApproved) { var authoCode = responseText[8]; Reservation.Agent.RecievedEmail = true; Reservation.Payment.ManualApprovalCode = authoCode; Reservation.Payment.Status = VolarisPaymentStatus.Approved; VolarisLogger.InsertReservation(); } Success = true; } else { ErrorMessage = "No se pudo concluir el pago de la reservación, debido a que la tarjeta fue declinada,por favor verifique que los datos sean correctos."; Success = false; Reservation.Payment.Status = VolarisPaymentStatus.Declined; if (response.Text.Any()) { LogError(response.Text.FirstOrDefault()); } } } else { ErrorMessage = "No se pudo concluir el pago de la reservación, debido a que la tarjeta fue declinada,por favor verifique que los datos sean correctos."; Success = false; Reservation.Payment.Status = VolarisPaymentStatus.Declined; if (response.Text.Any()) { LogError(response.Text.FirstOrDefault()); } } } } else { Reservation.Payment.Status = VolarisPaymentStatus.Declined; var error = response.Errors.Error.ErrorInfo.Message; LogError(error); Success = false; } } catch (Exception exe) { Reservation.Payment.Status = VolarisPaymentStatus.Declined; Success = false; LogError(exe.Message); } }