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;
        }
Exemplo n.º 4
0
        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);
            }
        }