public string Recupera_Token()
        {
            //string rutaseed = "c:/tyscom xml/seed/Seed.xml";
            CrSeedService maullin   = new CrSeedService();
            string        respuesta = maullin.getSeed();
            ///obtener semilla
            ///obtenertoken y firmar!
            XmlDocument xmld = new XmlDocument();

            xmld.LoadXml(respuesta);
            string seed = xmld.InnerXml.ToString();

            DataSet ds = new DataSet();

            ds.ReadXml(XmlReader.Create(new StringReader(seed)));
            string codeSeed = ds.Tables["RESP_BODY"].Rows[0][0].ToString();
            string body     = string.Format("<gettoken><item><Semilla>" + codeSeed + "</Semilla></item></gettoken>");

            xmld.LoadXml(body);
            seed = xmld.InnerXml.ToString();
            /////
            //datos estaticos de prueba !
            string           a    = @"C:\tyscom xml\certificados\fabian.pfx";
            string           c    = "xmay3187";
            X509Certificate2 cert = new X509Certificate2(a, c);
            Metodos          m    = new Metodos();

            string algo = firmarDocumentoSemilla(seed, cert);

            xmld.LoadXml(algo);
            //    xmld.Save(rutaseed);

            string signedSeed = algo;
            ////>2CWDHDQ4MFB9Q
            //// Luego asigne el valor al metodo GetToken()
            GetTokenFromSeedService gt = new Proxys.Certificacion.GetTokenFromSeedService();
            string valorRespuesta      = gt.getToken(signedSeed);

            //Console.WriteLine(algo);
            Console.WriteLine(valorRespuesta);

            XmlDocument token = new XmlDocument();

            //retorna token
            token.LoadXml(valorRespuesta);

            valorRespuesta = token.GetElementsByTagName("TOKEN")[0].OuterXml;
            valorRespuesta = valorRespuesta.Replace("<TOKEN>", string.Empty);
            valorRespuesta = valorRespuesta.Replace("</TOKEN>", string.Empty);
            return(valorRespuesta);
        }
 public string GETTokenFromSii()
 {
     if (Certificate != null)
     {
         try
         {
             RESPUESTA XmlObject;
             using (CrSeedService proxyCrSeedService = new CrSeedService())
             {
                 string        responseCrSeedService     = proxyCrSeedService.getSeed();
                 XmlSerializer serializadorCrSeedService = new XmlSerializer(typeof(RESPUESTA));
                 using (TextReader readerCrSeedService = new StringReader(responseCrSeedService))
                 {
                     RESPUESTA xmlObjectCrSeedService = (RESPUESTA)serializadorCrSeedService.Deserialize(readerCrSeedService);
                     if (xmlObjectCrSeedService.RESP_HDR.ESTADO == "00")
                     {
                         string xmlNofirmado = string.Format("<getToken><item><Semilla>{0}</Semilla></item></getToken>", xmlObjectCrSeedService.RESP_BODY.SEMILLA);
                         using (GetTokenFromSeedService proxyGetTokenFromSeedService = new GetTokenFromSeedService())
                         {
                             string        responseGetTokenFromSeedService     = proxyGetTokenFromSeedService.getToken(FirmarSeedDigital(xmlNofirmado, Certificate));
                             XmlSerializer serializadorGetTokenFromSeedService = new XmlSerializer(typeof(RESPUESTA));
                             using (TextReader readerGetTokenFromSeedService = new StringReader(responseGetTokenFromSeedService))
                             {
                                 XmlObject = (RESPUESTA)serializadorGetTokenFromSeedService.Deserialize(readerGetTokenFromSeedService);
                                 if (XmlObject.RESP_HDR.ESTADO == "00")
                                 {
                                     return(XmlObject.RESP_BODY.TOKEN);
                                 }
                             }
                         }
                     }
                 }
             }
         }
         catch (Exception)
         {
             throw;
         }
         return(null);
     }
     else
     {
         return(null);
     }
 }