Example #1
0
        /// <summary>
        /// Realiza una reversion al momento de no tener una conexion con Visa
        /// Creado por: Ludwing Ottoniel Cano fuentes - 05/03/2019
        ///</summary>
        /// <param name="datos"></param>
        /// <returns></returns>
        private DatosRespuestaPago ReversionVisa(DatosPago datos, RespuestaVisa datos_visa)
        {
            RespuestaVisa resp_visa = OperacionAnulacionVisa(datos, Properties.VisaResource.VisaMessageTypeAnulacion);

            DatosRespuestaPago respuesta_datos = new DatosRespuestaPago
            {
                TIP_OPER = Properties.Resources.CodErrorConexion,
                STATUS   = "No se puedo efectuar el pago con Visa"
            };

            if (resp_visa != null)
            {
                if (resp_visa.ResponseCode.Equals("00"))
                {
                    //ENVIAR A LOG DE OPERACIONES
                    return(respuesta_datos);
                }
                else
                {
                    OracleMethod oracle = new OracleMethod();
                    oracle.RegistrarEvento(datos, resp_visa, "ERROR AL REVERSION", "");
                }
            }

            return(respuesta_datos);
        }
Example #2
0
        /// <summary>
        /// Realiza el pago con visa
        /// Creado por: Ludwing Ottoniel Cano fuentes - 05/03/2019
        ///</summary>
        /// <param name="datos"></param>
        /// <returns></returns>
        public DatosRespuestaPago PagarVisa(DatosPago datos)
        {
            RespuestaVisa resp_visa = OperacionVisa(datos, Properties.VisaResource.VisaMessageTypeVenta);

            DatosRespuestaPago respuesta_datos = new DatosRespuestaPago
            {
                TIP_OPER = Properties.Resources.CodErrorConexion,
                STATUS   = "No se puedo efectuar el pago con Visa"
            };

            if (resp_visa != null)
            {
                if (resp_visa.ResponseCode.Equals("00"))
                {
                    string messageID = datos.FECHA + DateTime.Now.ToString("HHmm") + resp_visa.ReferenceNumber;
                    respuesta_datos = RealizarPago(datos, resp_visa, messageID);
                    return(respuesta_datos);
                }
                else
                {
                    //Reversa
                    OperacionVisa(datos, Properties.VisaResource.VisaMessageTypeReversa);
                    return(respuesta_datos);
                }
            }

            return(respuesta_datos);
        }
Example #3
0
        /// <summary>
        /// Inicia el Pago con Visa
        /// Creado por: Ludwing Ottoniel Cano fuentes - 05/03/2019
        ///</summary>
        /// <param name="datos"></param>
        /// <param name="datos_visa"></param>
        /// <param name="messageID"></param>
        /// <returns></returns>
        private DatosRespuestaPago RealizarPago(DatosPago datos, RespuestaVisa datos_visa, string messageID)
        {
            DatosRespuestaPago respuesta_datos = new DatosRespuestaPago();
            string             trama           = CrearTramaPago(datos);

            Metodos MQ_metodos = new Metodos();
            string  tt         = "";
            bool    response   = MQ_metodos.PutMessages(trama, messageID, out tt);

            OracleMethod oracle = new OracleMethod();

            if (response == false)
            {
                //Reversion
                respuesta_datos          = ReversionVisa(datos, datos_visa);
                respuesta_datos.TIP_OPER = Properties.Resources.CodErrorConexion;
                respuesta_datos.STATUS   = "No fue posible realizar el pago.";

                oracle.RegistrarEvento(datos, datos_visa, "ANULACION", "");
                return(respuesta_datos);
            }
            else
            {
                respuesta_datos.TIP_OPER       = Properties.Resources.CodPagoExitoso;
                respuesta_datos.STATUS         = "Su pago sera procesado en las proximas 24 hrs.";
                respuesta_datos.ID_Terminal    = Properties.VisaResource.VisaTerminalID;
                respuesta_datos.N_Autorizacion = datos_visa.AuditNumber;
                oracle.RegistrarEvento(datos, datos_visa, "PAGO ENERGUATE", messageID);
                return(respuesta_datos);
            }
        }
Example #4
0
        /// <summary>
        /// Envia la informaciĆ³n a Visa
        /// Creado por: Ludwing Ottoniel Cano fuentes - 05/03/2019
        ///</summary>
        /// <param name="datos"></param>
        /// <param name="tipoPago"></param>
        /// <returns></returns>
        public RespuestaVisa OperacionVisa(DatosPago datos, string tipoPago)
        {
            RespuestaVisa respuestaVisa = new RespuestaVisa();

            WSVisa.PaymentGWServices    services  = new WSVisa.PaymentGWServices();
            WSVisa.AuthorizationRequest metodosWS = new WSVisa.AuthorizationRequest
            {
                AuthorizationRequest1 = new WSVisa.Request()
            };

            metodosWS.AuthorizationRequest1.posEntryMode = Properties.VisaResource.VisaposEntryMode; //012 - TARJETA  022- LECTOR DE BANDA

            metodosWS.AuthorizationRequest1.pan     = datos.TARJETA;                                 //NO TARJETA
            metodosWS.AuthorizationRequest1.expdate = datos.FECHA_EXPIRACION;                        // FECHA EXPIRACION YYMM
            metodosWS.AuthorizationRequest1.amount  = datos.MONTO;                                   //MONTO DE CONSUMO

            //OPCIONAL
            //metodosWS.AuthorizationRequest1.track2Data = ""; //022 SI ES LECTURA DE BANDA
            metodosWS.AuthorizationRequest1.cvv2 = datos.CVV2;   // CODIGO DE SEGURIDAD

            metodosWS.AuthorizationRequest1.paymentgwIP = Properties.VisaResource.VisapaymentgwIP;

            //metodosWS.AuthorizationRequest1.shopperIP = "192.168.100.4";
            //metodosWS.AuthorizationRequest1.merchantServerIP = "";

            metodosWS.AuthorizationRequest1.merchantUser   = Properties.VisaResource.UserVisa;       //USUARIO
            metodosWS.AuthorizationRequest1.merchantPasswd = Properties.VisaResource.UserVisaPass;   //CONTRASEƑA
            metodosWS.AuthorizationRequest1.terminalId     = Properties.VisaResource.VisaTerminalID; //ID TERMINAL
            metodosWS.AuthorizationRequest1.merchant       = Properties.VisaResource.VisaMerchant;   //AFILICION

            metodosWS.AuthorizationRequest1.messageType = tipoPago;                                  // 0200 VENTA 0400 REVERSA  0202 ANULACION
            metodosWS.AuthorizationRequest1.auditNumber = Properties.VisaResource.VisaAuditNumber;   //NO. TRANSACCION

            //OPCIONAL
            metodosWS.AuthorizationRequest1.additionalData = "";
            WSVisa.AuthorizationResponse respuestaWS = null;

            //add timeout to 60 seconds
            services.Timeout = 60000;
            respuestaWS      = services.AuthorizationRequest(metodosWS);

            respuestaVisa = null;
            if (respuestaWS != null)
            {
                respuestaVisa = new RespuestaVisa
                {
                    MessageType         = respuestaWS.response.messageType,
                    AuditNumber         = respuestaWS.response.auditNumber,
                    AuthorizationNumber = respuestaWS.response.authorizationNumber,
                    ResponseCode        = respuestaWS.response.responseCode,
                    ReferenceNumber     = respuestaWS.response.referenceNumber
                };
            }

            return(respuestaVisa);
        }