Página 1 de 5

Como enviar CFDI a BuzonE, requiere autenticacion.

Publicado: Vie Abr 08, 2011 8:22 am
por roberto
Alguien a logrado usar el WS de buzon E para el timbrado de CFDI, requiere seguridad SSL, estoy usando NET 4.0. Alguna idea?

Re: Como enviar CFDI a BuzonE, requiere autenticacion.

Publicado: Vie Abr 08, 2011 8:32 am
por acanas
Yo trabajo con .NET 2.0 en C# (aunque con 4.0 no tengo ningún problema ya que estoy en 2.0 por causas de fuerza mayor) y he desarrollo el enlace al WS de timbrefiscal para timbrar en el ambiente de pruebas, según tengo entendido con Buzon-e se requiere un usuario y contraseña de acceso para acceder al API, no estoy seguro si ellos te dan un certificado como validación adicional para autenticar, no tengo los detalles de como hacerlo con Buzon-e pero si me pudieras dar algunos detalles te puedo ayudar y sirve que preparon mi solución para Buzon-e.

Lo unico que ocupo son:
-url de web service.
y creo que yap, no se si te dieron un ambiente de pruebas porque hasta donde sé con ellos tienes que soltar primero la morralla.

Re: Como enviar CFDI a BuzonE, requiere autenticacion.

Publicado: Vie Abr 08, 2011 9:41 am
por roberto
lo unico que tengo es este WS https://ws.buzone.com.mx:443/services/T ... rvice?wsdl que es el de produccion.

me dieron un usuario y password, e indican que el username y password se enviaran en la cabecera SOAP por medio de la seguridad aplicada en Sericio Web (WS Security) ademas que el servicio debe ser consumido utilizando el protocolo de seguridad SSL.

he intentado lo siguiente: en vs2010 agregue un web service reference al wsdl y codifique lo siquiente:

Dim client As TimbradoCFDClient = New TimbradoCFDClient("TimbradoCFD")
Dim response As New TimbradoResponse
Dim request As New TimbradoRequest

Try
client.ClientCredentials.UserName.UserName = "myuser"
client.ClientCredentials.UserName.Password = "mypass"
client.Open()

request.xmlCFD = ""
request.conector = "rfr"
request.fileType = "1234"
request.returnCFDTimbrado = 1

response = client.timbradoCFD(request)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try

Console.ReadLine()


el mensaje que recibo en el catch es que debo especificar el username y password por lo que no se si mi ClientCredentials esta siendo tomada en cuenta para la conexion, ya probe el user y pass en el crm de buzonE y son correctos porque me da acceso..

Re: Como enviar CFDI a BuzonE, requiere autenticacion.

Publicado: Vie Abr 08, 2011 10:39 am
por acanas
Por ahi tengo un código en c# en el que hago uso de ClientCredentials, hago unas pruebas y te aviso que ondas. Tendrás la tablita esas de los códigos de salida?

Re: Como enviar CFDI a BuzonE, requiere autenticacion.

Publicado: Vie Abr 08, 2011 11:14 am
por acanas
Bueno yo supongo que así debe hacerse, no tengo manera de probarlo puesto que no tengo usuario o clave pero en la clase deTimbradoCFD deben ponerse las credenciales debido a que este objeto es el que llama el Timbrado mediante un objecto Request y te regresa un objeto Response.

Código: Seleccionar todo

  mx.com.buzone.ws.TimbradoCFDService tcfd = new DemoBuzonE.mx.com.buzone.ws.TimbradoCFDService();
            //Request
            mx.com.buzone.ws.TimbradoRequest tReq = new DemoBuzonE.mx.com.buzone.ws.TimbradoRequest();
            //Response
            mx.com.buzone.ws.TimbradoResponse tResp = new DemoBuzonE.mx.com.buzone.ws.TimbradoResponse();
            //Error
            mx.com.buzone.ws.TimbradoError tError = new DemoBuzonE.mx.com.buzone.ws.TimbradoError(); 
            
            //Credenciales de acceso. 
            System.Net.CredentialCache credCache = new CredentialCache();
            System.Net.NetworkCredential netCred =
                new NetworkCredential("usuario", "clave");
            
            
            tcfd.Credentials = netCred;
            //Preparar Request. ocupo datos de la API para saber que poner aqui.
            tReq.comentario = "";//??
            tReq.conector = String.Empty;
            tReq.fileType = "";//?? xml o zip??
            tReq.returnCFDTimbrado = 0; // Este debe ser el tipo de request que quieres hacer.
            tReq.titulo = ""; //??
            tReq.xmlCFD = ""; //aqui debe ir el XML completito me supongo.            
            string strBatchID="";
            string strStatus = String.Empty;
            
            try
            {
                tResp = tcfd.timbradoCFD(tReq);
            
               mx.com.buzone.ws.TimbradoDatosAdicionales tda =    tResp.datosAdicionales;
               if (tda != null)
               {
                   strBatchID= tda.batchId; //??
                   strStatus = tda.status; //??
               }
              
                DateTime dtmFechaTCFD = tResp.fechaTimbrado;
                string strNoCertSat = tResp.noCertificadoSAT;
                string strSelloCFD = tResp.selloCFD;
                string strSelloSat = tResp.selloSAT;
                string UUID = tResp.UUID;
                string strXMLTimbrado = (String) tResp.xmlCFDTimbrado;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message); 
            }

Re: Como enviar CFDI a BuzonE, requiere autenticacion.

Publicado: Vie Abr 08, 2011 11:20 am
por roberto
en mi client yo no tengo la propiedad Credentials sino ClientCredentials. otra cosa.. como generas el proxy tcfd... yo lo hago mediante add service reference.

Re: Como enviar CFDI a BuzonE, requiere autenticacion.

Publicado: Vie Abr 08, 2011 11:23 am
por acanas
Eso ha de ser porque usas Visual Basic, pero debe ser lo mismo.

Re: Como enviar CFDI a BuzonE, requiere autenticacion.

Publicado: Vie Abr 08, 2011 11:24 am
por acanas
Eso ha de ser porque usas Visual Basic, pero debe ser lo mismo, yo también lo hice con un Add Web Reference, a menos que haga la prueba con .Net 3.5 que es lo mismo que 4.0 en ese aspecto.

Re: Como enviar CFDI a BuzonE, requiere autenticacion.

Publicado: Vie Abr 08, 2011 11:34 am
por roberto
la propiedad es de solo lectura.

Re: Como enviar CFDI a BuzonE, requiere autenticacion.

Publicado: Vie Abr 08, 2011 11:35 am
por acanas
en .Net 2.0 puedes hacerle Get y Set, deja veo que ondas en 3.5