Esempio n. 1
0
        private string PagarServicioJWT(RequestPagarServicios requestPagarServicios, string metodoApiGestoPago)
        {
            String result = string.Empty;
            _ResponsePagarServicios responsePagarServicios = new _ResponsePagarServicios();

            responsePagarServicios.request = ConexionAPI.ObtenerConexion() + requestPagarServicios.ObtenerParametros();

            string dataPost = JsonConvert.SerializeObject(requestPagarServicios);

            String cadenaNormal = Cifrado.CifradoTexto(dataPost);
            String cadenaEscape = Uri.EscapeDataString(Cifrado.CifradoTexto(dataPost));

            byte[] data = UTF8Encoding.UTF8.GetBytes("signed=" + cadenaEscape);
            new Logg().Info("strKey : " + ConexionAPI.secretKey + " | IV: " + ConexionAPI.IV);
            new Logg().Info("signed cadenaEscape =" + cadenaEscape);
            new Logg().Info("signed cadenaNormal =" + cadenaNormal);
            new Logg().Info("Descrypt: " + Cifrado.DescifradoTexto(cadenaNormal));
            string token = new Authenticate().GeneraToken();



            HttpWebRequest request = initRequest(data, metodoApiGestoPago);

            request.Headers.Add("Authorization", "Bearer " + token);
            Stream postStream = request.GetRequestStream();

            postStream.Write(data, 0, data.Length);

            HttpWebResponse response       = request.GetResponse() as HttpWebResponse;
            StreamReader    readerResponse = new StreamReader(response.GetResponseStream());

            result = readerResponse.ReadToEnd();
            Debug.WriteLine("Result ws: " + result);
            Debug.WriteLine("Json Params: " + JsonConvert.SerializeObject(requestPagarServicios));
            Debug.WriteLine("Data Cifrada: " + cadenaNormal);
            Debug.WriteLine("Data Cifrada Escape: " + cadenaEscape);
            Debug.WriteLine("token: " + token);
            return(result);
        }
Esempio n. 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                this.txtResult.Text = string.Empty;
                RequestPagarServicios requestPagarServicios = new RequestPagarServicios()
                {
                    IdProducto = 582, IdServicio = 133, Telefono = "4433740472", NumeroReferencia = "718931201466", Monto = 1243
                };
                //this.textData.Text = string.IsNullOrEmpty(this.textData.Text)

                this.textData.Text = JsonConvert.SerializeObject(requestPagarServicios);
                //this.txtResult.Text= Utilerias.CMVCifrarAES256(this.textData.Text);
                string texto = Cifrado.CifradoTexto(this.textData.Text);
                this.txtResult.Text = "Texto Cifrado " + texto;

                this.txtResult.Text += "\nTexto Decifrado " + Cifrado.DescifradoTexto(texto);
            }
            catch (Exception ex)
            {
                this.txtResult.Text = "Error :" + ex.Message;
            }
        }
Esempio n. 3
0
        public _ResponsePagarServicios PagarServicio(RequestPagarServicios requestPagarServicios)
        {
            _ResponsePagarServicios responsePagarServicios = null;

            try
            {
                if (!(requestPagarServicios.TipoFront == 1 || requestPagarServicios.TipoFront == 2))
                {
                    _ExceptionPagarServicios exceptionPagarServicios = new _ExceptionPagarServicios();
                    exceptionPagarServicios.Codigo  = -1;
                    exceptionPagarServicios.Mensaje = "El tipo front no corresponde a este servicio";
                    throw new FaultException <_ExceptionPagarServicios>(exceptionPagarServicios, "Error personalizado por CMV", new FaultCode("-1"));
                }

                String result = string.Empty;
                responsePagarServicios = new _ResponsePagarServicios();

                // throw new WebException();

                result = PagarServicioJWT(requestPagarServicios, sendTx);


                /*  Para consumir a GestoPago antes de implementar JWT
                 *  responsePagarServicios.request = ParametrosConfig() + requestPagarServicios.ObtenerParametros();
                 *  byte[] data = UTF8Encoding.UTF8.GetBytes(ParametrosConfig() + requestPagarServicios.ObtenerParametros());
                 *  HttpWebRequest request = initRequest(data, abonar);
                 *  Stream postStream = request.GetRequestStream();
                 *  postStream.Write(data, 0, data.Length);
                 *  HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                 *  StreamReader readerResponse = new StreamReader(response.GetResponseStream());
                 *  result = readerResponse.ReadToEnd();
                 */

                responsePagarServicios.response = result;
                if (!string.IsNullOrEmpty(result))
                {
                    new Logg().Warning("xml respuesta :" + result.ToString());
                    ResponseAbonar responseAbonar = SerializerManager <ResponseGeneral> .DeseralizarStringXMLToObject(result).ResponseAbonar;

                    responsePagarServicios.request        = "Metodo: " + sendTx + ConexionAPI.ObtenerConexion() + " | " + JsonConvert.SerializeObject(requestPagarServicios);
                    responsePagarServicios.signed         = Cifrado.CifradoTexto(Uri.EscapeDataString(JsonConvert.SerializeObject(requestPagarServicios)));
                    responsePagarServicios.ResponseAbonar = responseAbonar;
                    responsePagarServicios.EstatusCmv     = EstatusCMV.Ok;
                    responsePagarServicios.MensajeCmv     = "OK";

                    return(responsePagarServicios);
                }
            }
            catch (FaultException <_ExceptionPagarServicios> ex)
            {
                throw ex;
            }
            catch (WebException e)
            {
                new Logg().Error("Error :" + e.ToString());
                responsePagarServicios            = new _ResponsePagarServicios();
                responsePagarServicios.request    = "Metodo: " + sendTx + ConexionAPI.ObtenerConexion() + " | " + JsonConvert.SerializeObject(requestPagarServicios);
                responsePagarServicios.signed     = Cifrado.CifradoTexto(Uri.EscapeDataString(JsonConvert.SerializeObject(requestPagarServicios)));
                responsePagarServicios.EstatusCmv = EstatusCMV.Error;
                responsePagarServicios.MensajeCmv = e.Message + "|" + e.StackTrace;
                //return responsePagarServicios;

                _ResponseConfirmaTransaccion responseConfirmaTransaccion = ConfirmaTransaccion(requestPagarServicios);
                responseConfirmaTransaccion.ResponseAbonar.MENSAJE.CODIGO = responseConfirmaTransaccion.ResponseAbonar.MENSAJE.CODIGO == "06" ? "01" : responseConfirmaTransaccion.ResponseAbonar.MENSAJE.CODIGO;
                Mapper.Initialize(x => { x.CreateMap <_ResponseConfirmaTransaccion, _ResponsePagarServicios>(); });
                responsePagarServicios = Mapper.Map <_ResponsePagarServicios>(responseConfirmaTransaccion);
                return(responsePagarServicios);
            }
            catch (Exception ex)
            {
                _ExceptionPagarServicios exceptionPagarServicios = new _ExceptionPagarServicios();
                exceptionPagarServicios.Codigo  = 1000;//Error no definido p
                exceptionPagarServicios.Mensaje = ex.Message;
                throw new FaultException <_ExceptionPagarServicios>(exceptionPagarServicios, "Error personalizado por Exception", new FaultCode("-1"));
            }
            return(null);
        }
Esempio n. 4
0
        public _ResponseConfirmaTransaccion ConfirmaTransaccion(RequestPagarServicios requestPagarServicios)
        {
            bool intento = true;
            _ResponseConfirmaTransaccion responseConfirmaTransaccion = null;

            try
            {
                if (!(requestPagarServicios.TipoFront == 1 || requestPagarServicios.TipoFront == 2))
                {
                    _ExceptionPagarServicios exceptionPagarServicios = new _ExceptionPagarServicios();
                    exceptionPagarServicios.Codigo  = -1;
                    exceptionPagarServicios.Mensaje = "El tipo front no corresponde a este servicio";
                    throw new FaultException <_ExceptionPagarServicios>(exceptionPagarServicios, "Error personalizado por CMV", new FaultCode("-1"));
                }

                String result = string.Empty;
                responseConfirmaTransaccion = new _ResponseConfirmaTransaccion();


                result = PagarServicioJWT(requestPagarServicios, confirmTx);

                /*
                 * responseConfirmaTransaccion.request = ParametrosConfig() + requestPagarServicios.ObtenerParametros();
                 * byte[] data = UTF8Encoding.UTF8.GetBytes(ParametrosConfig() + requestPagarServicios.ObtenerParametros());
                 *
                 * HttpWebRequest request = initRequest(data,confirmaTransaccion);
                 * Stream postStream = request.GetRequestStream();
                 * postStream.Write(data, 0, data.Length);
                 *
                 * HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                 * StreamReader readerResponse = new StreamReader(response.GetResponseStream());
                 *
                 * result = readerResponse.ReadToEnd();
                 */
                responseConfirmaTransaccion.response = result;
                if (!string.IsNullOrEmpty(result))
                {
                    responseConfirmaTransaccion.request = "Metodo: " + confirmTx + ConexionAPI.ObtenerConexion() + " | " + JsonConvert.SerializeObject(requestPagarServicios);
                    responseConfirmaTransaccion.signed  = Cifrado.CifradoTexto(Uri.EscapeDataString(JsonConvert.SerializeObject(requestPagarServicios)));
                    ResponseAbonar responseAbonar = SerializerManager <ResponseAbonar> .DeseralizarStringToObject(result);

                    responseConfirmaTransaccion.EstatusCmv     = EstatusCMV.Ok;
                    responseConfirmaTransaccion.MensajeCmv     = "Pago realizado Exitosamente";
                    responseConfirmaTransaccion.ResponseAbonar = responseAbonar;
                    return(responseConfirmaTransaccion);
                }
            }
            catch (WebException e)
            {
                responseConfirmaTransaccion.request    = "Metodo: " + confirmTx + ConexionAPI.ObtenerConexion() + " | " + JsonConvert.SerializeObject(requestPagarServicios);
                responseConfirmaTransaccion.signed     = Cifrado.CifradoTexto(Uri.EscapeDataString(JsonConvert.SerializeObject(requestPagarServicios)));
                responseConfirmaTransaccion.EstatusCmv = EstatusCMV.Error;
                responseConfirmaTransaccion.MensajeCmv = e.Message + " | " + e.StackTrace;
                return(responseConfirmaTransaccion);
            }
            catch (FaultException <_ExceptionPagarServicios> ex)
            {
                throw ex;
            }

            catch (Exception ex)
            {
                _ExceptionPagarServicios exceptionPagarServicios = new _ExceptionPagarServicios();
                exceptionPagarServicios.Codigo  = -1;
                exceptionPagarServicios.Mensaje = ex.Message;
                throw new FaultException <_ExceptionPagarServicios>(exceptionPagarServicios, "CMV: Error personalizado por Exception", new FaultCode("-1"));
            }
            return(null);
        }
Esempio n. 5
0
        public _ResponseConsultaSaldo ConsultarSaldoSerivicio(RequestPagarServicios requestPagarServicios)
        {
            _ResponseConsultaSaldo responseConsultaSaldo = null;

            try
            {
                if (requestPagarServicios.TipoFront != 4)
                {
                    _ExceptionPagarServicios exceptionPagarServicios = new _ExceptionPagarServicios();
                    exceptionPagarServicios.Codigo  = -1;
                    exceptionPagarServicios.Mensaje = "El tipo front no corresponde a este servicio";
                    throw new FaultException <_ExceptionPagarServicios>(exceptionPagarServicios, "Error personalizado por CMV", new FaultCode("-1"));
                }

                String result = string.Empty;
                responseConsultaSaldo = new _ResponseConsultaSaldo();
                result = PagarServicioJWT(requestPagarServicios, sendTx);

                /*
                 * responseConsultaSaldo.request = ParametrosConfig() + requestPagarServicios.ObtenerParametros();
                 * byte[] data = UTF8Encoding.UTF8.GetBytes(ParametrosConfig() + requestPagarServicios.ObtenerParametros());
                 * HttpWebRequest request = initRequest(data, abonar);
                 *
                 * Stream postStream = request.GetRequestStream();
                 * postStream.Write(data, 0, data.Length);
                 *
                 * HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                 * StreamReader readerResponse = new StreamReader(response.GetResponseStream());
                 * result = readerResponse.ReadToEnd();
                 */
                responseConsultaSaldo.response = result;
                if (!string.IsNullOrEmpty(result))
                {
                    new Logg().Info("xml respuesta :" + result.ToString());
                    ResponseAbonar responseAbonar = SerializerManager <ResponseGeneral> .DeseralizarStringXMLToObject(result).ResponseAbonar;

                    responseConsultaSaldo.request = "Metodo: " + sendTx + ConexionAPI.ObtenerConexion() + " | " + JsonConvert.SerializeObject(requestPagarServicios);

                    responseConsultaSaldo.ResponseAbonar = responseAbonar;
                    responseConsultaSaldo.EstatusCmv     = EstatusCMV.Ok;
                    responseConsultaSaldo.MensajeCmv     = "Ejecución exitosa del servicio de consultar saldo";
                    responseConsultaSaldo.Signed         = Cifrado.CifradoTexto(Uri.EscapeDataString(JsonConvert.SerializeObject(requestPagarServicios)));
                    return(responseConsultaSaldo);
                }
            }
            catch (FaultException <_ExceptionPagarServicios> ex)
            {
                throw ex;
            }
            catch (WebException e)
            {
                responseConsultaSaldo.request    = "Metodo: " + sendTx + ConexionAPI.ObtenerConexion() + " | " + JsonConvert.SerializeObject(requestPagarServicios);
                responseConsultaSaldo.EstatusCmv = EstatusCMV.Error;
                responseConsultaSaldo.MensajeCmv = e.Message + " | " + e.StackTrace;
                return(responseConsultaSaldo);
            }

            catch (Exception ex)
            {
                _ExceptionPagarServicios exceptionPagarServicios = new _ExceptionPagarServicios();
                exceptionPagarServicios.Codigo  = -1;
                exceptionPagarServicios.Mensaje = ex.Message;
                throw new FaultException <_ExceptionPagarServicios>(exceptionPagarServicios, "Error personalizado por Exception | " + ex.Message, new FaultCode("-1"));
            }
            return(null);
        }
Esempio n. 6
0
        public static Object PagarServicio(ref RequestPagarServicios requestPagarServicios)
        {
            bool intento = true;

            try
            {
                String result = string.Empty;
                requestPagarServicios.request = ParametrosConfig() + requestPagarServicios.ObtenerParametros();
                byte[]         data = UTF8Encoding.UTF8.GetBytes(ParametrosConfig() + requestPagarServicios.ObtenerParametros());
                HttpWebRequest request;
                string         url = Path.Combine(SesionGestoPago.URL, SesionGestoPago.abonar);
                request               = WebRequest.Create(url) as HttpWebRequest;
                request.Timeout       = 60 * 1000; // 60 segundos
                request.Method        = "POST";
                request.ContentLength = data.Length;
                request.ContentType   = "application/x-www-form-urlencoded; charset=utf-8";

                Stream postStream = request.GetRequestStream();
                postStream.Write(data, 0, data.Length);

                HttpWebResponse response       = request.GetResponse() as HttpWebResponse;
                StreamReader    readerResponse = new StreamReader(response.GetResponseStream());

                result = readerResponse.ReadToEnd();
                requestPagarServicios.response = result;
                if (!string.IsNullOrEmpty(result))
                {
                    Console.WriteLine(result.ToString());
                    switch (requestPagarServicios.TipoFront)
                    {
                    case 1:
                    case 2:
                        ResponseAbonar responseAbonar = SerializerManager <ResponseAbonar> .DeseralizarStringToObject(result);

                        return(responseAbonar);

                        break;

                    case 4:
                        ResponseConsultaSaldo esponseConsultaSaldo = SerializerManager <ResponseConsultaSaldo> .DeseralizarStringToObject(result);

                        return(esponseConsultaSaldo);

                        break;

                    default:
                        break;
                    }
                }
            }
            catch (WebException e)
            {
                if (e.Status == WebExceptionStatus.Timeout)
                {
                    if (intento)
                    {
                        intento = false;
                        //PagarServicio(requestPagarServicios);
                    }
                }
                else
                {
                    throw e;
                }
            }

            catch (Exception ex)
            {
                throw ex;
            }
            return(null);
        }