Exemplo n.º 1
0
 public void ExpireLoginTicket(LoginTicket loginTicket)
 {
     using (var ctx = new IdentityManagerContext())
     {
         var ticket = ctx.Tickets.SingleOrDefault(x => x.TokenId == loginTicket.TokenId);
         ticket.IsExpired = true;
         ctx.SaveChanges();
     }
 }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            TicketFactory ltf      = new TicketFactory("C:\\key.pem");
            LoginTicket   mrNobody = new LoginTicket("Вася", 60 * 24);
            string        result   = ltf.CreateTicket(mrNobody);

            Console.WriteLine("Login ticket is:");
            Console.WriteLine(result);
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
Exemplo n.º 3
0
        public ClsFEXAuthRequest ObtenerTicketFex()
        {
            LoginTicket loginTicket = new LoginTicket();

            loginTicket.ObtenerLoginTicketResponse(this.idServicioNegocioFex, this.certSigner, false, this.storeName, this.storeLocation);

            ClsFEXAuthRequest feAuthRequest = new ClsFEXAuthRequest();

            feAuthRequest.Cuit  = Convert.ToInt64(this.cuit);
            feAuthRequest.Sign  = loginTicket.Sign;
            feAuthRequest.Token = loginTicket.Token;

            return(feAuthRequest);
        }
Exemplo n.º 4
0
        public void CreateLoginTicket(string userNameWithDomain, string ldapPath)
        {
            var ticket = new LoginTicket
            {
                Domain    = ldapPath,
                IsExpired = false,
                LogInTime = DateTime.UtcNow,
                TokenId   = Guid.NewGuid(),
                UserName  = userNameWithDomain,
            };

            using (var ctx = new IdentityManagerContext())
            {
                ctx.Tickets.Add(ticket);
                ctx.SaveChanges();
            }
        }
        public static void Main(string[] args)
        {
            string cert;
            string key;
            uint   minutes;

            if (args.Length != 3)
            {
                System.Console.WriteLine("Forma de uso: TestTicketRequest certficado key minutos");
            }
            else
            {
                cert    = args[0];
                key     = args[1];
                minutes = uint.Parse(args[2]);
                LoginTicket ticket = new LoginTicket(cert, key, minutes, true);
            }
        }
Exemplo n.º 6
0
        private static void GetTiposMonedas()
        {
            //string certSigner = @"C:\Diego\Proyectos\FacturaElect\Afip - Ejemplos Codigo\FeCertificadoDesarrollo\certificadoAFIP.crt";
            string      certSigner    = @"C=AR, O=ENDESA, SERIALNUMBER=CUIT 23289508759, CN=TestFE";
            LoginTicket loginTicket   = new LoginTicket();
            string      ticketReponse = loginTicket.ObtenerLoginTicketResponse(DEFAULT_SERVICIO, certSigner, false, StoreName.TrustedPeople, StoreLocation.CurrentUser);

            string        cuit          = "23289508759";
            FEAuthRequest feAuthRequest = new FEAuthRequest();

            feAuthRequest.Cuit  = Convert.ToInt64(cuit);
            feAuthRequest.Sign  = loginTicket.Sign;
            feAuthRequest.Token = loginTicket.Token;

            Console.WriteLine("***Llamando al GetTiposMoneda en URL");
            WsfeClient client = new WsfeClient();

            FacturaElectronica.Afip.Ws.Wsfe.MonedaResponse result = client.GetTiposMonedas(feAuthRequest);
            Console.WriteLine("Result");
            foreach (var item in result.ResultGet)
            {
                Console.WriteLine("item Id: " + item.Id + " Desc: " + item.Desc);
            }
        }
        /// <summary>
        /// Funcion Main (consola)
        /// </summary>
        /// <param name="args">Argumentos de linea de comandos</param>
        /// <returns>0 si terminó bien, valores negativos si hubieron errores</returns>
        /// <remarks></remarks>
        public static int Main(string[] args)
        {
            MostrarVersion();

            string strUrlWsaaWsdl       = DEFAULT_URLWSAAWSDL;
            string strUrlWsfeWsdl       = DEFAULT_URLWSFEWSDL;
            string strIdServicioNegocio = DEFAULT_SERVICIO;
            string strRutaCertSigner    = DEFAULT_CERTSIGNER;
            string strPassword          = null;
            long   longCuit             = DEFAULT_CUIT;
            int    cbteTipo             = DEFAULT_CBTETIPO;
            int    ptoVta         = DEFAULT_PTOVTA;
            string strSalida      = DEFAULT_ARCHIVOSALIDA;
            bool   blnVerboseMode = DEFAULT_VERBOSE;

            // Analizo argumentos de linea de comandos
            if (args.Length == 0)
            {
                explicarUso();
                return(-1);
            }
            for (int i = 0; i <= args.Length - 1; i++)
            {
                string argumento;
                argumento = args[i];

                if (String.Compare(argumento, "-w", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA");
                        return(-1);
                    }
                    else
                    {
                        strUrlWsaaWsdl = args[i + 1];
                        i = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-x", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA");
                        return(-1);
                    }
                    else
                    {
                        strUrlWsfeWsdl = args[i + 1];
                        i = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-s", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el ID del servicio de negocio");
                        return(-1);
                    }
                    else
                    {
                        strIdServicioNegocio = args[i + 1];
                        i = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-c", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó ruta del certificado firmante");
                        return(-1);
                    }
                    else
                    {
                        strRutaCertSigner = args[i + 1];
                        i = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-p") == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el password");
                        return(-1);
                    }
                    else
                    {
                        strPassword = args[i + 1];
                        i           = i + 1;
                    }
                }
                else if (String.Compare(argumento, "-t") == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el CUIT");
                        return(-1);
                    }
                    else
                    {
                        longCuit = long.Parse(args[i + 1]);
                        i        = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-T") == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el ComprobanteTipo (int)");
                        return(-1);
                    }
                    else
                    {
                        cbteTipo = int.Parse(args[i + 1]);
                        i        = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-P") == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el Punto de Venta (int)");
                        return(-1);
                    }
                    else
                    {
                        ptoVta = int.Parse(args[i + 1]);
                        i      = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-o", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el archivo de salida");
                        return(-1);
                    }
                    else
                    {
                        strSalida = args[i + 1];
                        i         = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-v", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó modo: on|off");
                        return(-1);
                    }
                    else
                    {
                        blnVerboseMode = (String.Compare(args[i + 1], "on", true) == 0 ? true : false);
                        i = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-?", true) == 0)
                {
                    explicarUso();
                    return(0);
                }
                else
                {
                    Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase();

                    Console.WriteLine("Error: argumento desconocido: {0}", argumento);
                    Console.WriteLine("Para obtener ayuda: {0} -?", MyApplication.Info.AssemblyName);
                    return(-2);
                }
            }

            // Argumentos OK, entonces procesar normalmente...
            LoginTicket objTicketRespuesta;
            string      strTicketRespuesta;

            try
            {
                if (blnVerboseMode)
                {
                    Console.WriteLine("***Servicio a acceder: {0}", strIdServicioNegocio);
                    Console.WriteLine("***URL del WSAA: {0}", strUrlWsaaWsdl);
                    Console.WriteLine("***URL del WSFE: {0}", strUrlWsfeWsdl);
                    Console.WriteLine("***Ruta del certificado: {0}", strRutaCertSigner);
                    Console.WriteLine("***Password del certificado: {0}", (strPassword == null ? "-NO PASSWD-" : "*****"));
                    Console.WriteLine("***Comprobante Tipo: {0}", cbteTipo);
                    Console.WriteLine("***Punto de venta: {0}", ptoVta);
                    Console.WriteLine("***Archivo de salida: {0}", strSalida);
                    Console.WriteLine("***Nro de CUIT en certificado: {0}", longCuit);
                    Console.WriteLine("***Modo verbose: {0}", blnVerboseMode);
                }


                objTicketRespuesta = new LoginTicket();

                if (blnVerboseMode)
                {
                    Console.WriteLine("***Accediendo a {0}", strUrlWsaaWsdl);
                }

                strTicketRespuesta = objTicketRespuesta.ObtenerLoginTicketResponse(strIdServicioNegocio, strUrlWsaaWsdl, strRutaCertSigner, strPassword, blnVerboseMode);

                if (blnVerboseMode)
                {
                    Console.WriteLine("***CONTENIDO DEL TICKET RESPUESTA:");
                    Console.WriteLine(" Token: {0}", objTicketRespuesta.Token);
                    Console.WriteLine(" Sign: {0}", objTicketRespuesta.Sign);
                    Console.WriteLine(" GenerationTime: {0}", Convert.ToString(objTicketRespuesta.GenerationTime));
                    Console.WriteLine(" ExpirationTime: {0}", Convert.ToString(objTicketRespuesta.ExpirationTime));
                    Console.WriteLine(" Service: {0}", objTicketRespuesta.Service);
                    Console.WriteLine(" UniqueID: {0}", Convert.ToString(objTicketRespuesta.UniqueId));
                }
            }
            catch (Exception excepcionAlObtenerTicket)
            {
                Console.WriteLine("***EXCEPCION AL OBTENER TICKET:");
                Console.WriteLine(excepcionAlObtenerTicket.Message);
                return(-10);
            }

            WsfeFECompUltimoAutorizado wsfeFECompUltimoAutorizado = new WsfeFECompUltimoAutorizado(strUrlWsfeWsdl, objTicketRespuesta.Token, objTicketRespuesta.Sign);

            wsfeFECompUltimoAutorizado.verbose = blnVerboseMode;
            return(wsfeFECompUltimoAutorizado.send(longCuit, cbteTipo, ptoVta, strSalida));
        }
Exemplo n.º 8
0
        /// <summary>
        /// Funcion Main (consola)
        /// </summary>
        /// <param name="args">Argumentos de linea de comandos</param>
        /// <returns>0 si terminó bien, valores negativos si hubieron errores</returns>
        /// <remarks></remarks>
        public static int Main(string[] args)
        {
            MostrarVersion();

            string strUrlWsaaWsdl       = DEFAULT_URLWSAAWSDL;
            string strUrlWsfeWsdl       = DEFAULT_URLWSFEWSDL;
            string strIdServicioNegocio = DEFAULT_SERVICIO;
            string strRutaCertSigner    = DEFAULT_CERTSIGNER;
            string strPassword          = null;
            long   longCuit             = DEFAULT_CUIT;
            string strFactura           = DEFAULT_ARCHIVOFACTURA;
            string strSalida            = DEFAULT_ARCHIVOSALIDA;
            bool   blnVerboseMode       = DEFAULT_VERBOSE;

            // Analizo argumentos de linea de comandos
            if (args.Length == 0)
            {
                explicarUso();
                return(-1);
            }
            for (int i = 0; i <= args.Length - 1; i++)
            {
                string argumento;
                argumento = args[i];

                if (String.Compare(argumento, "-w", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA");
                        return(-1);
                    }
                    else
                    {
                        strUrlWsaaWsdl = args[i + 1];
                        i = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-x", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA");
                        return(-1);
                    }
                    else
                    {
                        strUrlWsfeWsdl = args[i + 1];
                        i = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-s", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el ID del servicio de negocio");
                        return(-1);
                    }
                    else
                    {
                        strIdServicioNegocio = args[i + 1];
                        i = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-c", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó ruta del certificado firmante");
                        return(-1);
                    }
                    else
                    {
                        strRutaCertSigner = args[i + 1];
                        i = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-p", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el password");
                        return(-1);
                    }
                    else
                    {
                        strPassword = args[i + 1];
                        i           = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-t", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el CUIT");
                        return(-1);
                    }
                    else
                    {
                        longCuit = long.Parse(args[i + 1]);
                        i        = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-f", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el archivo de entrada");
                        return(-1);
                    }
                    else
                    {
                        strFactura = args[i + 1];
                        i          = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-o", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó el archivo de salida");
                        return(-1);
                    }
                    else
                    {
                        strSalida = args[i + 1];
                        i         = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-v", true) == 0)
                {
                    if (args.Length < (i + 2))
                    {
                        Console.WriteLine("Error: no se especificó modo: on|off");
                        return(-1);
                    }
                    else
                    {
                        blnVerboseMode = (String.Compare(args[i + 1], "on", true) == 0 ? true : false);
                        i = i + 1;
                    }
                }

                else if (String.Compare(argumento, "-?", true) == 0)
                {
                    explicarUso();
                    return(0);
                }
                else
                {
                    Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase();

                    Console.WriteLine("Error: argumento desconocido: {0}", argumento);
                    Console.WriteLine("Para obtener ayuda: {0} -?", MyApplication.Info.AssemblyName);
                    return(-2);
                }
            }
            if (isMissingParameter(longCuit))
            {
                return(-3);
            }

            //var x = new WsfeSolicitud("xxx", "token", "bla");
            //x.pruebas(12345678, "lalala.xml", "lalala.xml");
            // return 1;



            // Argumentos OK, entonces procesar normalmente...
            LoginTicket objTicketRespuesta;
            string      strTicketRespuesta;

            try
            {
                if (blnVerboseMode)
                {
                    Console.WriteLine("***Servicio a acceder: {0}", strIdServicioNegocio);
                    Console.WriteLine("***URL del WSAA: {0}", strUrlWsaaWsdl);
                    Console.WriteLine("***URL del WSFE: {0}", strUrlWsfeWsdl);
                    Console.WriteLine("***Ruta del certificado: {0}", strRutaCertSigner);
                    Console.WriteLine("***Password del certificado: {0}", (strPassword == null ? "-NO PASSWD-" : "*****"));
                    Console.WriteLine("***Archivo de factura: {0}", strFactura);
                    Console.WriteLine("***Archivo de salida: {0}", strSalida);
                    Console.WriteLine("***Nro de CUIT en certificado: {0}", longCuit);
                    Console.WriteLine("***Modo verbose: {0}", blnVerboseMode);
                    Console.WriteLine(" CWD: {0}", AppDomain.CurrentDomain.BaseDirectory);
                }


                objTicketRespuesta = new LoginTicket();

                if (blnVerboseMode)
                {
                    Console.WriteLine("***Accediendo a {0}", strUrlWsaaWsdl);
                }

                strTicketRespuesta = objTicketRespuesta.ObtenerLoginTicketResponse(strIdServicioNegocio, strUrlWsaaWsdl, strRutaCertSigner, strPassword, blnVerboseMode);

                if (blnVerboseMode)
                {
                    Console.WriteLine("***CONTENIDO DEL TICKET RESPUESTA:");
                    Console.WriteLine(" Token: {0}", objTicketRespuesta.Token);
                    Console.WriteLine(" Sign: {0}", objTicketRespuesta.Sign);
                    Console.WriteLine(" GenerationTime: {0}", Convert.ToString(objTicketRespuesta.GenerationTime));
                    Console.WriteLine(" ExpirationTime: {0}", Convert.ToString(objTicketRespuesta.ExpirationTime));
                    Console.WriteLine(" Service: {0}", objTicketRespuesta.Service);
                    Console.WriteLine(" UniqueID: {0}", Convert.ToString(objTicketRespuesta.UniqueId));
                }
            }
            catch (Exception excepcionAlObtenerTicket)
            {
                Console.WriteLine("***EXCEPCION AL OBTENER TICKET:");
                Console.WriteLine(excepcionAlObtenerTicket.Message);
                return(-10);
            }

            WsfeSolicitud wsfeSolicitud = new WsfeSolicitud(strUrlWsfeWsdl, objTicketRespuesta.Token, objTicketRespuesta.Sign);

            wsfeSolicitud.verbose = blnVerboseMode;
            return(wsfeSolicitud.send(longCuit, strFactura, strSalida));
        }
Exemplo n.º 9
0
        /// <summary>
        /// Obtiene el Ticket de Acceso
        ///     Si esta vigente lo otiene de la ubicación establecida
        ///     Si no esta vigente lo obtiene del Web Service de AFIP
        /// </summary>
        /// <param name="ubicacion_TA">Ubicación del archivo local</param>
        /// <param name="strIdServicioNegocio">servicio al que se desea acceder</param>
        /// <param name="strUrlWsaaWsdl">URL del WSAA</param>
        /// <param name="strRutaCertSigner">Ruta del certificado X509 (con clave privada) usado para firmar</param>
        /// <param name="strPasswordSecureString">Password del certificado X509 (con clave privada) usado para firmar</param>
        /// <param name="strProxy">IP:port del proxy</param>
        /// <param name="strProxyUser">Usuario del proxy</param>
        /// <param name="strProxyPassword">Password del proxy</param>
        /// <param name="blnVerboseMode">Nivel detallado de descripcion? true/false</param>
        /// <returns>Retorna el Ticket de Acceso en caso de error retorna Null</returns>
        public LoginTicket obtenerTicketAcceso(string ubicacion_TA, string strIdServicioNegocio, string strUrlWsaaWsdl, string strRutaCertSigner, SecureString strPasswordSecureString, string strProxy, string strProxyUser, string strProxyPassword, FileStream archivoLog, StreamWriter flujoEscritura, bool blnVerboseMode = false)
        {
            LoginTicket objTicketRespuesta = null;
            string      strTicketRespuesta = null;
            bool        pedirTA            = true;
            //¿Hay que sincronizar las fechas?
            DateTime fechHoraActual = DateTime.Now;


            if (File.Exists(ubicacion_TA))
            {
                //Si existe, cargo el TA de la ubicación local
                try
                {
                    XmlDocument xmlTA = new XmlDocument();

                    xmlTA.Load(ubicacion_TA);

                    strTicketRespuesta = xmlTA.OuterXml;

                    objTicketRespuesta = new LoginTicket();

                    objTicketRespuesta.UniqueId       = UInt32.Parse(xmlTA.SelectSingleNode("//uniqueId").InnerText);
                    objTicketRespuesta.GenerationTime = DateTime.Parse(xmlTA.SelectSingleNode("//generationTime").InnerText);
                    objTicketRespuesta.ExpirationTime = DateTime.Parse(xmlTA.SelectSingleNode("//expirationTime").InnerText);
                    objTicketRespuesta.Sign           = xmlTA.SelectSingleNode("//sign").InnerText;
                    objTicketRespuesta.Token          = xmlTA.SelectSingleNode("//token").InnerText;
                }
                catch (Exception excepcionAlCargarTicket)
                {
                    if (archivoLog != null && flujoEscritura != null)
                    {
                        try
                        {
                            string inf = "";

                            string fecha = DateTime.Now.ToString();

                            inf = inf + "[" + fecha + "] ";


                            inf = inf + excepcionAlCargarTicket.Message + "\n";

                            //Escribo en el archivo

                            UtilClass.escribirArchivoLog(inf, archivoLog, flujoEscritura, _strLog);
                        }
                        catch (Exception e)
                        {
                            return(null);
                        }
                    }

                    return(null);
                }

                //Compruebo si el ticket de acceso está vigente
                if (objTicketRespuesta.GenerationTime <= fechHoraActual && fechHoraActual < objTicketRespuesta.ExpirationTime)
                {
                    //El ticket está vigente, lo retorno
                    pedirTA = false;
                    return(objTicketRespuesta);
                }
                else
                {
                    //Se debe obtener un nuevo Ticket de acceso
                    pedirTA = true;
                }
            }
            else
            {
                //No se encontró el ticket de acceso en la ubicación especificada, se debe obtener uno nuevo
                pedirTA = true;
            }



            try
            {
                //Obtener el Ticket de Acceso del Web Service
                if (pedirTA)
                {
                    objTicketRespuesta = new LoginTicket();

                    strTicketRespuesta = objTicketRespuesta.ObtenerLoginTicketResponse(strIdServicioNegocio, strUrlWsaaWsdl, strRutaCertSigner, strPasswordSecureString, strProxy, strProxyUser, strProxyPassword, blnVerboseMode);


                    //guardar Ticket

                    XmlDocument xmlTA = new XmlDocument();
                    xmlTA.LoadXml(strTicketRespuesta);

                    xmlTA.Save(ubicacion_TA);

                    return(objTicketRespuesta);
                }
            }
            catch (XmlException e)
            {
                try
                {
                    string inf = "";

                    string fecha = DateTime.Now.ToString();

                    inf = inf + "[" + fecha + "] ";


                    inf = inf + "***EXCEPCION XML: " + e.Message;

                    //Escribo en el archivo

                    UtilClass.escribirArchivoLog(inf, archivoLog, flujoEscritura, _strLog);
                }
                catch (Exception ex)
                {
                    return(null);
                }

                return(null);
            }
            catch (Exception excepcionObtUltComprobante)
            {
                try
                {
                    string inf = "";

                    string fecha = DateTime.Now.ToString();

                    inf = inf + "[" + fecha + "] ";


                    inf = inf + "***EXCEPCION AL CARGAR TICKET: " + excepcionObtUltComprobante.Message;

                    //Escribo en el archivo

                    UtilClass.escribirArchivoLog(inf, archivoLog, flujoEscritura, _strLog);
                }
                catch (Exception ex)
                {
                    return(null);
                }


                return(null);
            }


            return(objTicketRespuesta);
        }
Exemplo n.º 10
0
        /// <summary>
        /// Prueba el servicio de de Prueba de AFIP
        /// </summary>
        /// <param name="ticketAcceso">Ticket de Acceso de prueba</param>
        /// <param name="ptoVta">Pto de Vta que se utiliza</param>
        /// <param name="tipoComp">Tipo de comprobante a probar</param>
        /// <returns>True si se probó el servicio y funciona correctamente, False en otro caso</returns>
        public bool probarServicioPru(LoginTicket ticketAcceso, int ptoVta, int tipoComp)
        {
            bool r = false;

            if (ticketAcceso != null)
            {
                try
                {
                    //Asigno los valores de autorización: CUIT, SIGN y Token
                    ClienteLoginCms_CS.ar.gov.afip.wswhomo.FEAuthRequest autorizacionPru = new ClienteLoginCms_CS.ar.gov.afip.wswhomo.FEAuthRequest();

                    string cuit     = UtilClass.cambiarFormatoCuitSinGuinoes(_cuitEmisor);
                    long   cuitLong = 0;
                    if (long.TryParse(cuit, out cuitLong))
                    {
                        autorizacionPru.Cuit  = cuitLong;
                        autorizacionPru.Sign  = ticketAcceso.Sign;
                        autorizacionPru.Token = ticketAcceso.Token;
                    }
                    else
                    {
                        Exception errorExc = new Exception("No se pudo convertir el cuit a Long");
                        throw errorExc;
                    }



                    if (!_produccion)
                    {
                        ClienteLoginCms_CS.ar.gov.afip.wswhomo.FERecuperaLastCbteResponse respuestaUltAut = null;
                        respuestaUltAut = _servicioPrueba.FECompUltimoAutorizado(autorizacionPru, ptoVta, tipoComp);



                        if (respuestaUltAut != null)
                        {
                            if (respuestaUltAut.CbteNro >= 0)
                            {
                                r = true;
                            }
                            else
                            {
                                Exception errorExc = new Exception("El número del último comprobante es negativo\n");
                                throw errorExc;
                            }
                        }
                        else
                        {
                            Exception errorExc = new Exception("No se pudo obtener el ultimo comprobante autorizado\n");
                            throw errorExc;
                        }
                    }
                }
                catch (Exception e)
                {
                    string inf = "";

                    string fecha = DateTime.Now.ToString();

                    inf = inf + "[" + fecha + "] ";


                    inf = inf + "Error al probar el servicio de AFIP. " + e.Message + "\n";

                    //Escribo en el archivo

                    UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog);
                    return(false);
                }
            }
            else
            {
                string inf = "";

                string fecha = DateTime.Now.ToString();

                inf = inf + "[" + fecha + "] ";


                inf = inf + "Error al probar el servicio. El ticket de acceso es NULL\n";

                //Escribo en el archivo

                UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog);
                return(false);
            }

            return(r);
        }
Exemplo n.º 11
0
        /// <summary>
        /// Autoriza el comprobante de PRUEBA pasado como parametro con el Ticket de Acceso, el IdComprobante es para asegurar de que sea el comprobante que se pasa
        /// </summary>
        /// <param name="ticketAcceso">Ticket de Acceso utilizado para acceder a los servicios del AFIP</param>
        /// <param name="comprobante">Comprobante a Autorizar</param>
        /// <param name="idComprobante">ID del comprobante a autorizar</param>
        /// <returns>FECAEResponse si se autorizó correctamente, NULL en otro caso</returns>
        public ClienteLoginCms_CS.ar.gov.afip.wswhomo.FECAEResponse autorizarComprobantePru(LoginTicket ticketAcceso, ComprobanteClass comprobante, int idComprobante)
        {
            ClienteLoginCms_CS.ar.gov.afip.wswhomo.FECAEResponse respuesta = null;

            if (ticketAcceso != null && idComprobante > 0 && comprobante.IDComprobante != 0)
            {
                if (comprobante.IDComprobante == idComprobante)
                {
                    if (comprobante.CAE != "")
                    {
                        string inf = "";

                        string fecha = DateTime.Now.ToString();

                        inf = inf + "[" + fecha + "] ";


                        inf = inf + "Error al autorizar el comprobante por ID. El comprobante ya está autorizado con CAE: " + comprobante.CAE + "\n";

                        //Escribo en el archivo

                        UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog);
                        return(null);
                    }
                    else
                    {
                        try
                        {
                            //Asigno los valores de autorización: CUIT, SIGN y Token
                            ClienteLoginCms_CS.ar.gov.afip.wswhomo.FEAuthRequest autorizacionPru = new ClienteLoginCms_CS.ar.gov.afip.wswhomo.FEAuthRequest();

                            string cuit     = UtilClass.cambiarFormatoCuitSinGuinoes(_cuitEmisor);
                            long   cuitLong = 0;
                            if (long.TryParse(cuit, out cuitLong))
                            {
                                autorizacionPru.Cuit  = cuitLong;
                                autorizacionPru.Sign  = ticketAcceso.Sign;
                                autorizacionPru.Token = ticketAcceso.Token;
                            }
                            else
                            {
                                Exception errorExc = new Exception("No se pudo convertir el cuit a Long");
                                throw errorExc;
                            }



                            /*** Armar RequerimientoAutorización*/

                            ClienteLoginCms_CS.ar.gov.afip.wswhomo.FECAERequest reqAut = armarRequerimientoAutorizacionPru(autorizacionPru, comprobante);



                            if (!_produccion)
                            {
                                if (comprobante.CAE == "" && comprobante.FechaVtoCAE == "" && comprobante.NroComprobante == 0)
                                {
                                    //Autorizar
                                    respuesta = _servicioPrueba.FECAESolicitar(autorizacionPru, reqAut);
                                }
                                else
                                {
                                    // Ya está autorizado
                                    Exception errorExc = new Exception("El comprobante ya se encuentra Autorizado");
                                    throw errorExc;
                                }
                            }

                            /*
                             * Guardar en carpeta no lo utilizamos por ahora
                             * */

                            #region Guardar en carpeta

                            /*
                             * if (respuesta != null)
                             * {
                             *
                             *  ClienteLoginCms_CS.ar.gov.afip.wswhomo.FECAECabResponse cabeceraRespuesta = respuesta.FeCabResp;
                             *  ClienteLoginCms_CS.ar.gov.afip.wswhomo.FECAEDetResponse detalleRespuesta = respuesta.FeDetResp.First();
                             *
                             *
                             *
                             *  string codSocio = "" + comprobante.cod_socio;
                             *  codSocio = codSocio.PadLeft(5, '0');
                             *
                             *  string puntoVenta = "" + cabeceraRespuesta.PtoVta;
                             *  puntoVenta = puntoVenta.PadLeft(4, '0');
                             *
                             *  string numComprobante = "" + detalleRespuesta.CbteDesde;
                             *  numComprobante = numComprobante.PadLeft(8, '0');
                             *
                             *  string identifReg = "" + comprobante.idregistro;
                             *  identifReg = identifReg.PadLeft(5, '0');
                             *
                             *
                             *
                             *  if (detalleRespuesta.Resultado != "A")
                             *  {
                             *      puntoVenta = "0000";
                             *      numComprobante = "00000000";
                             *  }
                             *
                             *
                             *
                             *
                             *  nombreCarpeta = "\\CLIENTE_" + codSocio + "_" + comp + "_" + puntoVenta + "_" + numComprobante + "_id_" + identifReg;
                             *
                             *
                             *  //Creo Carpeta si no existe
                             *
                             *  if (!Directory.Exists(_strpdfs + nombreCarpeta))
                             *  {
                             *      Directory.CreateDirectory(_strpdfs + nombreCarpeta);
                             *  }
                             *
                             *  //Guardo el REQUEST.xml del comprobante
                             *
                             *  string strArchivoReq = _strpdfs + nombreCarpeta + "\\REQUEST.xml";
                             *
                             *
                             *
                             *  // FileStream archivoReq = new FileStream(strArchivoReq, FileMode.OpenOrCreate, FileAccess.Write);
                             *
                             *  // StreamWriter flujoEscritura = new StreamWriter(archivoReq);
                             *
                             *
                             *  XmlDocument xmlReq = new XmlDocument();
                             *
                             *  //string strReqCae = reqCae.ToString(); //¿FUNCIONA?
                             *  string strReqCae = UtilClass.convertirAXML(reqCae);
                             *  xmlReq.LoadXml(strReqCae);
                             *
                             *  xmlReq.Save(strArchivoReq);
                             *
                             *  //Guardo RESPONSE.xml del comprobante
                             *
                             *  string strArchivoRes = _strpdfs + nombreCarpeta + "\\RESPONSE.xml";
                             *
                             *  XmlDocument xmlRes = new XmlDocument();
                             *
                             *  //string strResCae = respuesta.ToString(); //¿FUNCIONA?
                             *  string strResCae = UtilClass.convertirAXML(respuesta);
                             *  xmlRes.LoadXml(strResCae);
                             *
                             *  xmlRes.Save(strArchivoRes);
                             *
                             *
                             *  //}
                             *  //}
                             * }
                             */

                            #endregion
                        }
                        catch (Exception e)
                        {
                            string inf = "";

                            string fecha = DateTime.Now.ToString();

                            inf = inf + "[" + fecha + "] ";


                            inf = inf + "Error al autorizar el comprobante por ID. " + e.Message + "\n";

                            //Escribo en el archivo

                            UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog);
                            return(null);
                        }
                    }
                }
                else
                {
                    string inf = "";

                    string fecha = DateTime.Now.ToString();

                    inf = inf + "[" + fecha + "] ";


                    inf = inf + "Error al autorizar el comprobante por ID. El ID del comprobante no se corresponde con el que se desea autorizar\n";

                    //Escribo en el archivo

                    UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog);
                    return(null);
                }
            }
            else
            {
                string inf = "";

                string fecha = DateTime.Now.ToString();

                inf = inf + "[" + fecha + "] ";



                inf = inf + "Error al autorizar el comprobante por ID. El ticket de acceso es NULL o idComprobante <= 0\n";

                //Escribo en el archivo

                UtilClass.escribirArchivoLog(inf, _archivoLog, _flujoEscritura, _strLog);
                return(null);
            }

            return(respuesta);
        }
Exemplo n.º 12
0
 /// <summary>
 /// Function used to create a member's login information in an authentication cookie
 /// </summary>
 /// <param name="rememberMe">boolean used to indicate if the cookie should be stored for longer</param>
 /// <returns>true if the cookie was created successfully and false otherwise.</returns>
 protected bool CreateLoginCookie(bool rememberMe, ref List<string> errorList)
 {
     LoginTicket aTicket = new LoginTicket();
     aTicket.Key = CurrentMonthIssuedKey.IssuedKey;
     aTicket.RemberMe = rememberMe;
     HttpContext.Current.Response.AppendCookie(aTicket.CreateCookieTicket());
     return true;
 }
Exemplo n.º 13
0
        public static int ObtenerTicketAcceso()
        {
            MostrarVersion();

            string strUrlWsaaWsdl       = DEFAULT_URLWSAAWSDL;
            string strIdServicioNegocio = DEFAULT_SERVICIO;
            string strRutaCertSigner    = DEFAULT_CERTSIGNER;
            bool   blnVerboseMode       = DEFAULT_VERBOSE;

            #region -Comment-
            // Analizo argumentos de linea de comandos
            //if (args.Length == 0)
            //{
            //    ExplicarUso();
            //    return -1;
            //}
            //Console.ReadKey();
            //for (int i = 0; i <= args.Length - 1; i++)
            //{
            //    string argumento;
            //    argumento = args[i];

            //    if (String.Compare(argumento, "-w", true) == 0)
            //    {
            //        if (args.Length < (i + 2))
            //        {
            //            Console.WriteLine("Error: no se especificó la URL del WSDL del WSAA");
            //            return -1;
            //        }
            //        else
            //        {
            //            strUrlWsaaWsdl = args[i + 1];
            //            i = i + 1;
            //        }
            //    }

            //    else if (String.Compare(argumento, "-s", true) == 0)
            //    {
            //        if (args.Length < (i + 2))
            //        {
            //            Console.WriteLine("Error: no se especificó el ID del servicio de negocio");
            //            return -1;
            //        }
            //        else
            //        {
            //            strIdServicioNegocio = args[i + 1];
            //            i = i + 1;
            //        }
            //    }

            //    else if (String.Compare(argumento, "-c", true) == 0)
            //    {
            //        if (args.Length < (i + 2))
            //        {
            //            Console.WriteLine("Error: no se especificó ruta del certificado firmante");
            //            return -1;
            //        }
            //        else
            //        {
            //            strRutaCertSigner = args[i + 1];
            //            i = i + 1;
            //        }
            //    }

            //    else if (String.Compare(argumento, "-v", true) == 0)
            //    {
            //        if (args.Length < (i + 2))
            //        {
            //            Console.WriteLine("Error: no se especificó modo: on|off");
            //            return -1;
            //        }
            //        else
            //        {
            //            blnVerboseMode = (String.Compare(args[i + 1], "on", true) == 0 ? true : false);
            //            i = i + 1;
            //        }
            //    }

            //    else if (String.Compare(argumento, "-?", true) == 0)
            //    {
            //        ExplicarUso();
            //        return 0;
            //    }
            //    else
            //    {

            //        Microsoft.VisualBasic.ApplicationServices.ApplicationBase MyApplication = new Microsoft.VisualBasic.ApplicationServices.ApplicationBase();

            //        Console.WriteLine("Error: argumento desconocido: {0}", argumento);
            //        Console.WriteLine("Para obtener ayuda: {0} -?", MyApplication.Info.AssemblyName);
            //        return -2;
            //    }
            //}
            #endregion
            // Argumentos OK, entonces procesar normalmente...

            LoginTicket objTicketRespuesta;
            string      strTicketRespuesta;

            try
            {
                if (blnVerboseMode)
                {
                    Console.WriteLine("***Servicio a acceder: {0}", strIdServicioNegocio);
                    Console.WriteLine("***URL del WSAA: {0}", strUrlWsaaWsdl);
                    Console.WriteLine("***Ruta del certificado: {0}", strRutaCertSigner);
                    Console.WriteLine("***Modo verbose: {0}", blnVerboseMode);
                }

                objTicketRespuesta = new LoginTicket();

                if (blnVerboseMode)
                {
                    Console.WriteLine("***Accediendo a {0}", strUrlWsaaWsdl);
                }

                strTicketRespuesta = objTicketRespuesta.ObtenerLoginTicketResponse(strIdServicioNegocio, strRutaCertSigner, blnVerboseMode, StoreName.TrustedPeople, StoreLocation.CurrentUser);

                if (blnVerboseMode)
                {
                    Console.WriteLine("***CONTENIDO DEL TICKET RESPUESTA:");
                    Console.WriteLine(" Token: {0}", objTicketRespuesta.Token);
                    Console.WriteLine(" Sign: {0}", objTicketRespuesta.Sign);
                    Console.WriteLine(" GenerationTime: {0}", Convert.ToString(objTicketRespuesta.GenerationTime));
                    Console.WriteLine(" ExpirationTime: {0}", Convert.ToString(objTicketRespuesta.ExpirationTime));
                    Console.WriteLine(" Service: {0}", objTicketRespuesta.Service);
                    Console.WriteLine(" UniqueID: {0}", Convert.ToString(objTicketRespuesta.UniqueId));
                }
            }

            catch (Exception excepcionAlObtenerTicket)
            {
                Console.WriteLine("***EXCEPCION AL OBTENER TICKET:");
                Console.WriteLine(excepcionAlObtenerTicket.Message);
                Console.ReadKey();
                return(-10);
            }

            Console.ReadKey();
            return(0);
        }