/// <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); }
/// <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); }
/// <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); } }
/// <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); }