Пример #1
0
        /// <summary>
        /// Constructor de tiempo aire
        /// </summary>
        public AdministracionPagoServiciosBusiness(TokenDto token)
        {
            this.token                = token;
            repository                = new PagoServiciosRepository(token);
            inforService              = new InfoService();
            externosRepository        = new InformacionServiciosExternosRepository();
            inforService              = externosRepository.ObtenerInfoServicioExterno(12);
            transact                  = new ProxyPagoServicios.transactSoapClient();
            transact.Endpoint.Address = new System.ServiceModel.EndpointAddress(inforService.UrlService);
            credenciales              = new CredencialesServicioExterno();
            credenciales              = new InformacionServiciosExternosBusiness().ObtenerCredencialesPagoServicios();
            SecurityCCK.encripta encripta = new encripta();
            object userName = credenciales.UserName;
            object pwd      = credenciales.Password;
            var    obj      = encripta.Encrypt(ref userName);
            var    obje2    = encripta.Encrypt(ref pwd);

            this.credenciales.UserName = obj.ToString();
            this.credenciales.Password = obje2.ToString();
        }
Пример #2
0
 public ResponseBussiness <PagoServiciosResponse> OpcionesAdicionales(InfoElementosRequest pagoServiciosRequest)
 {
     SecurityCCK.encripta encripta = new encripta();
     return(tryCatch.SafeExecutor(() =>
     {
         object cuenta = pagoServiciosRequest.Cuenta;
         var cuanteEncripatada = encripta.Encrypt(ref cuenta);
         string xmlDevDat = "";
         if (pagoServiciosRequest.InfoAdicional != null)
         {
             xmlDevDat = this.Form2_xmlDevData(this.ObtenerElementosAdicionales(pagoServiciosRequest.InfoAdicional, pagoServiciosRequest.InfoAdicional.ModuloId));
         }
         ProxyPagoServicios.InfoResponse infoResponse = GetInfo(pagoServiciosRequest.SkuCode, cuanteEncripatada.ToString(), xmlDevDat);
         PagoServiciosResponse pagos = new PagoServiciosResponse();
         pagos.ModuloId = infoResponse.m_moduleId;
         pagos.ElementosFormulario = this.ObtenerElementos(infoResponse.m_form).ToArray();
         return pagos;
     }));
 }
Пример #3
0
        /// <summary>
        /// Pago de servicio
        /// </summary>
        /// <returns></returns>
        public ResponseBussiness <OperationResponse> PagoServicio(PagoServiciosRequest pagoServiciosRequest, float monto, string folio)
        {
            SecurityCCK.encripta encripta = new encripta();
            int    intento = 1;
            string resultadoConfirmarEnvioRecibido = "";

            return(tryCatch.SafeExecutor(() =>
            {
                OperationResponse operation = new OperationResponse();
                string requestId = string.Empty;
                requestId = GetRequestId(0);
                if (requestId != "")
                {
                    object cuenta = pagoServiciosRequest.Cuenta;
                    var cuanteEncripatada = encripta.Encrypt(ref cuenta);
                    ProxyPagoServicios.Form formulario = this.ObtenerElementosAdicionales(pagoServiciosRequest.InfoAdicional, pagoServiciosRequest.InfoAdicional.ModuloId);
                    ProxyPagoServicios.TResponse respuestaDot = GetDot(requestId, this.credenciales.UserName, pagoServiciosRequest.SkuCodePagoServicio, cuanteEncripatada.ToString(), monto, this.token.CodeBox, formulario);

                    if (respuestaDot.rcode == 2)//En proceso
                    {
                        while (intento <= this.credenciales.NumeroIntentos)
                        {
                            Thread.Sleep(5000 * 1);
                            ProxyPagoServicios.TResponse respuestaVerificarTransaccion = this.ChecarTransaccion(requestId, this.credenciales.UserName);
                            //si la respuesta es qeu no esta en proceso
                            if (respuestaVerificarTransaccion.rcode != 2)
                            {
                                resultadoConfirmarEnvioRecibido = this.TerminarTransaccionCorrecta(respuestaDot.rcode, requestId, respuestaVerificarTransaccion.op_authorization);
                                intento = 1000;
                            }
                            intento++;
                        }
                        if (resultadoConfirmarEnvioRecibido == "")
                        {
                            ProxyPagoServicios.ReverseResponse respuestaDor = this.DoR(requestId, this.credenciales.UserName);

                            operation.CodeNumber = respuestaDor.rcode.ToString();
                            operation.CodeDescription = respuestaDor.rcode_description;
                        }
                        else
                        {
                            operation.CodeNumber = "1";
                            operation.CodeDescription = resultadoConfirmarEnvioRecibido;
                        }
                    }
                    else if (respuestaDot.rcode == 0 || respuestaDot.rcode == 1) //termino correctamente con ó sin autorizacion
                    {
                        resultadoConfirmarEnvioRecibido = this.TerminarTransaccionCorrecta(respuestaDot.rcode, requestId, respuestaDot.op_authorization);
                        operation.CodeNumber = "1";
                        operation.CodeDescription = resultadoConfirmarEnvioRecibido;

                        this.repository.RegistrarAutorizacionPago(pagoServiciosRequest.SkuCodePagoServicio, pagoServiciosRequest.SkuCode, folio, respuestaDot.op_authorization);
                    }
                    else
                    {
                        operation.CodeNumber = "0";
                        operation.CodeDescription = respuestaDot.rcode_description;
                    }
                }
                else
                {
                    operation.CodeDescription = "Error del Web Service, contactar a Administrador del Sistema";
                    operation.CodeNumber = "0";
                }
                return operation;
            }));
        }