public void Call() { try { var request = CreateRequest(); var service = new PaymentServiceService() { MessageHeaderValue = this.GetMessageHeader(), SecurityValue = new Security() { BinarySecurityToken = this.SecurityToken }, }; Serializer.Serialize("PaymentRQ", request); var response = service.PaymentServiceRQ(request); Serializer.Serialize("PaymentRS", response); if (response.Result.ResultCode.Equals("SUCCESS")) { if (response.AuthorizationResult.ResponseCode.Equals("APPROVED")) { Reservation.Payment.Status = VolarisPaymentStatus.Approved; Reservation.Payment.HistoricalRemarks.Add(response.AuthorizationResult.AuthRemarks1); Reservation.Payment.HistoricalRemarks.Add(response.AuthorizationResult.AuthRemarks2); Reservation.Payment.HasBeenApproved = true; GetManualAndSabreTransaction(response); Reservation.Agent.RecievedEmail = true; VolarisLogger.InsertReservation(); Success = true; } if (response.AuthorizationResult.ResponseCode.Equals("DECLINED")) { Reservation.Payment.Status = VolarisPaymentStatus.Declined; ErrorMessage = "El pago fue declinado por el banco al cual pertenece por favor verifique que la información de la tarjeta sea correcta."; Success = false; } if (response.AuthorizationResult.ResponseCode.Equals("ERROR")) { Reservation.Payment.Status = VolarisPaymentStatus.Declined; ErrorMessage = "El pago fue declinado por el banco al cual pertenece por favor verifique que la información de la tarjeta sea correcta."; Success = false; } } else { LogError(response.Result.Description); Success = false; Reservation.Payment.Status = VolarisPaymentStatus.Unkown; ErrorMessage = "No se pudo realizar la transacción por verifique que cuente con conexión a internet o que la información que ingreso sea correcta."; } } catch (Exception exe) { Success = false; Reservation.Payment.Status = VolarisPaymentStatus.Unkown; ErrorMessage = exe.Message; LogError(exe.Message); } }
private void commitButton_Click(object sender, EventArgs e) { //Cuando ya se pasa el pago try { if (IsValid) { if (!VolarisSession.ErrorPay) { VolarisSession.PagoVolaris = new MetodoPagoVolaris(); prueba.Show(); if (expirationMonthComboBox.Text == "02") { VolarisSession.PagoVolaris.FechaExpiracion = Convert.ToDateTime("28" + "/" + expirationMonthComboBox.Text + "/" + expirationYearComboBox.Text); } else { VolarisSession.PagoVolaris.FechaExpiracion = Convert.ToDateTime("30" + "/" + expirationMonthComboBox.Text + "/" + expirationYearComboBox.Text); } VolarisSession.PagoVolaris.MetodoDePago = ((ListItem)creditCardComboBox.SelectedItem).Value; VolarisSession.PagoVolaris.NumeroTarjeta = creditCardNumberTextBox.Text; VolarisSession.PagoVolaris.Moneda = "MXN"; VolarisSession.PagoVolaris.Monto = Convert.ToDecimal(totalToPayTextBox.Text); VolarisSession.PagoVolaris.TipoMetodoPago = TiposVolaris.PaymentMethodType.ExternalAccount; VolarisSession.PagoVolaris.NumeroAgencia = "ACCTNO"; VolarisSession.PagoVolaris.TipoTarjeta = creditCardComboBox.Text; VolarisSession.PagoVolaris.IP = LocalIPAddress(); if (((ListItem)creditCardComboBox.SelectedItem).Value != "TP") { VolarisSession.PagoVolaris.Apellido = txtLastNameTitular.Text; VolarisSession.PagoVolaris.CodigoPais = txtCountry.Text; VolarisSession.PagoVolaris.CodigoPostal = txtPostCode.Text; VolarisSession.PagoVolaris.CodigoSeguridad = securityCodeTextBox.Text; VolarisSession.PagoVolaris.Direccion = txtAddress.Text; VolarisSession.PagoVolaris.Ciudad = txtCity.Text; //VolarisSession.PagoVolaris.Direccion = "Y " + txtAddress.Text; //VolarisSession.PagoVolaris.Ciudad = "Y " + txtCity.Text; VolarisSession.PagoVolaris.Email = txtEmail.Text; VolarisSession.PagoVolaris.EstadoProvincia = ((ListItem)cmbStateorProvidence.SelectedItem).Value; VolarisSession.PagoVolaris.Telefono = txtPhone.Text; VolarisSession.PagoVolaris.Titular = txtNameTitular.Text; } if (ctsCheckBox.Checked) { VolarisSession.IsCTSCard = true; } else if (clientCheckBox.Checked) { VolarisSession.IsClientCard = true; } } else { VolarisSession.PagoVolaris.NumeroTarjeta = creditCardNumberTextBox.Text; VolarisSession.ErrorPay = false; } //System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(VolarisSession.PagoVolaris.GetType()); //System.IO.StreamWriter file = new System.IO.StreamWriter(@"c:\RESP\VolarisPaymentReq " + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".xml"); //writer.Serialize(file, VolarisSession.PagoVolaris); //file.Close(); InterJetPaymentFormHandler.CommitTransaction(); prueba.Hide(); if (VolarisSession.IsValidCard) { if (VolarisSession.IsValidPNR && System.Configuration.ConfigurationManager.AppSettings["Ambiente"] == "PRUEBAS") { InterJetPaymentFormHandler.CerrarReservacion(); double a = LogTicketsBL.RandomVolaris(); string[] array = a.ToString().Split('.'); VolarisSession.Boleto = array[1].Substring(0, 8); VolarisSession.Agent = Login.Agent; VolarisSession.EmailAgent = Login.Mail; VolarisSession.StatusPaymnet = VolarisPaymentStatus.Approved; VolarisLogger.InsertReservation(); Loader.AddToPanel(Loader.Zone.Middle, this, "ucConfirmPurchase"); } else if (VolarisSession.IsValidPNR && VolarisSession.Mensaje.Contains("Approved")) { InterJetPaymentFormHandler.CerrarReservacion(); double a = LogTicketsBL.RandomVolaris(); string[] array = a.ToString().Split('.'); VolarisSession.Boleto = array[1].Substring(0, 8); VolarisSession.Agent = Login.Agent; VolarisSession.EmailAgent = Login.Mail; VolarisSession.StatusPaymnet = VolarisPaymentStatus.Approved; VolarisLogger.InsertReservation(); Loader.AddToPanel(Loader.Zone.Middle, this, "ucConfirmPurchase"); } else { if (VolarisSession.PNR.Contains("Invalid account number")) { VolarisSession.ErrorPay = true; VolarisSession.StatusPaymnet = VolarisPaymentStatus.Declined; VolarisSession.Agent = Login.Agent; VolarisSession.EmailAgent = Login.Mail; VolarisLogger.InsertReservation(); VolarisSession.PNR = string.Empty; MessageBox.Show("Número de Tarjeta de Crédito Invalida", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information); Loader.AddToPanel(Loader.Zone.Middle, this, "ucVolarisPaymentFormFormulario"); } else if (VolarisSession.Mensaje.Contains("Declined")) { MessageBox.Show("TU CARGO A SIDO DECLINDO LO PROBABLE ES QUE HAYAS INGRESADO LOS DATOS MAL " + "\n" + "POR POLITICAS DE VOLARIS ES NECESARIO VUELVAS A REHACER TU COMPRA", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information); Loader.AddToPanel(Loader.Zone.Middle, this, Resources.Constants.UCAVAILABILITY); } else { VolarisSession.StatusPaymnet = VolarisPaymentStatus.Declined; VolarisSession.Agent = Login.Agent; VolarisSession.EmailAgent = Login.Mail; VolarisLogger.InsertReservation(); MessageBox.Show(VolarisSession.Mensaje, Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information); VolarisSession.PNR = string.Empty; Loader.AddToPanel(Loader.Zone.Middle, this, "ucVolarisPaymentFormFormulario"); } } } } } catch (Exception ex) { try { string msg = ex.Message; InterJetPaymentFormHandler.StopAnimation(); } catch (Exception exception) { InterJetPaymentFormHandler.RecoverFromError(); } } }
private void OnRecordCompleted(object sender, OnRecordCompletedEventArgs e) { if (VolarisSession.IsVolarisProcess) { var reservation = (VolarisReservation)this.Parameter;//preguntar a Luis VolarisSession.ReservationStatus = VolarisReservationStatus.Accepted; ucServicesFeePayApply.PNRBajoCostoAerolinea = VolarisSession.PNR; ucServicesFeePayApply.PNRBajoCostoSabre = String.Empty; ChargesPerService.DKActualBajoCosto = VolarisSession.DK; ucServicesFeePayApply.OrigenTipo = ChargesPerService.OrigenTipoCargo.BajoCosto; if (!string.IsNullOrEmpty(e.SabrePnr) && e.SabrePnr.Length == 6 && ValidateRegularExpression.ValidatePNR(e.SabrePnr)) { LogTicketsBL.LogTicketsVolarisUpdate(VolarisSession.PNR, e.SabrePnr); VolarisSession.PNRSabre = e.SabrePnr; ucServicesFeePayApply.PNRBajoCostoSabre = e.SabrePnr; //quitar ImpuestosBajoCostoBL.UpdateImpuestosBajoCosto(ImpuestosBajoCosto.Id, ImpuestosBajoCosto.ImpuestosObtenidos, VolarisSession.PNR, ImpuestosBajoCosto.ImpuestosMostrados, ImpuestosBajoCosto.LineaContable, VolarisSession.PNRSabre); var mailer = new VolarisMailer { Reservation = reservation }; mailer.SendTest(); if (e.IsInvoiced) { VolarisSession.ReservationStatus = VolarisReservationStatus.Invoiced; VolarisLogger.UpdateReservation(VolarisSession.PNR, VolarisSession.PNRSabre, VolarisSession.ReservationStatus); ucServicesFeePayApply.OrigenTipo = ChargesPerService.OrigenTipoCargo.BajoCosto; ucServicesFeePayApply pago = new ucServicesFeePayApply(); pago.PayServiceFee(); Loader.AddToPanelWithParameters(Loader.Zone.Middle, this, "ucEndRecordSuccess", null); } } else { MessageBox.Show("No ha sido posible generar la factura para el servicio aéreo,\n por tal motivo los cargos por servicio en linea\n no pudieron ser completados", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information); } } if (IsInterJet) { ucServicesFeePayApply.PNRBajoCostoAerolinea = InterJetTicket.RecordLocator; ucServicesFeePayApply.PNRBajoCostoSabre = String.Empty; ucServicesFeePayApply.OrigenTipo = ChargesPerService.OrigenTipoCargo.BajoCosto; if (!string.IsNullOrEmpty(e.SabrePnr) && e.SabrePnr.Length == 6 && ValidateRegularExpression.ValidatePNR(e.SabrePnr)) { //quitar ImpuestosBajoCostoBL.UpdateImpuestosBajoCosto(ImpuestosBajoCosto.Id, ImpuestosBajoCosto.ImpuestosObtenidos, ImpuestosBajoCosto.PNRBajoCosto, ImpuestosBajoCosto.ImpuestosMostrados, ImpuestosBajoCosto.LineaContable, e.SabrePnr); LogTicketsBL.LogTicketsInterjetUpdate(InterJetTicket.RecordLocator, e.SabrePnr); InterJetTicket.RecordSabre = e.SabrePnr; ucServicesFeePayApply.PNRBajoCostoSabre = e.SabrePnr; var mailer = new InterJetMailer { Ticket = InterJetTicket }; mailer.SendConfirmationMail(); if (e.IsInvoiced) { InterJetTicket.IsFactured = e.IsInvoiced; var service = new LogInterJetBL(); service.InvoiceRecord(InterJetTicket.RecordLocator); MyCTS.Presentation.Reservations.Availability.ChargeOfServiceLowFare.AssignamentChargeOfService.ucChargeOfServiceAssign.sPNR = InterJetTicket.RecordLocator; service.InsertSabreRecord(InterJetTicket.RecordLocator, InterJetTicket.RecordSabre); ucMenuReservations.EnabledMenu = true; ucServicesFeePayApply.OrigenTipo = ChargesPerService.OrigenTipoCargo.BajoCosto; ucServicesFeePayApply pago = new ucServicesFeePayApply(); pago.PayServiceFee(); Loader.AddToPanelWithParameters(Loader.Zone.Middle, this, "ucEndRecordSuccess", null); } } else { MessageBox.Show("No ha sido posible generar la factura para el servicio aéreo,\n por tal motivo los cargos por servicio en linea\n no pudieron ser completados", Resources.Constants.MYCTS, MessageBoxButtons.OK, MessageBoxIcon.Information); } } this.errrorMessageContainer.Visible = e.Success; this.errorMessage.Text = e.Message; ucMenuReservations.EnabledMenu = true; this._group.Visible = true; this.loadingControl1.Visible = false; }
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); } }