martes, diciembre 17, 2013

Consumir WebService SRI Ecuador

Saludos poco a poco iré actualizando esta entrada.


Los web services a consumir son los siguintes:


https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl

https://celcer.sri.gob.ec/comprobantes-electronicos-
ws/AutorizacionComprobantes?wsdl

Para consumir desde java hay que usar el jar cliente-ws,jar la misma que esta disponible cuando se instala el cliente de los comprobantes electronicos del SRI.

Y usar las Clases RecepcionComprontesService AutorizacionComprobantesService


Los objetos con las respuestas son RespuestaSolicitud RespuestaComprobante.

No olvidar que si enviamos varias veces el comprobante en la autoirzacion obtendremos varias respuesta.


Para .net si solo se agrega como referencia no funciona.

Por lo pronto no he podido probar por cuestiones de tiempo con soap.

Al parecer HttpWebRequest permite consumir por medio de soap al webservice.

Recomomiendo ver la herramienta soapui si van por ese camino.

Mil disculpas no he podido probar para .net prometo darme un tiempo para eso.

La firma para .net no he logrado poner todos los tags necesarios. como uri y algunas cosas mas.

Talvez alguien logro transformar los jar en dll.

Si alguien quiere compartir algo adicional haganmelo saber.

Les dejo este enlace.

http://geekswithblogs.net/marcel/archive/2007/03/26/109886.aspx

Se debe hacer lo que dice en el punto 3.

Tengo problemas con mi soapui.

Alguien puede poner en los comentarios la peticion que genera el soapui. Del webservice del sr.


Mas información (Comercial): http://www.corvustec.com/index.php?option=com_content&view=article&id=58&Itemid=87

354 comentarios:

1 – 200 de 354   Más reciente›   El más reciente»
Unknown dijo...

Tengo todo el código funcionando lo que aun no me funciona es tomar la respuesta del SRI (archivo XML autorizado). Puedo intercambiar el codigo

Unknown dijo...

Tengo todo el código funcionando lo que aun no me funciona es tomar la respuesta del SRI (archivo XML autorizado). Puedo intercambiar el codigo

Anónimo dijo...

Necesito ayuda con los webservce no me funcionan correctamente en c# me salen los metodos pero no funcionan

Anónimo dijo...

Amigos yo también estoy en eso, si gustan formamos un team de desarrollo por skype: polo8896

Unknown dijo...

No logro obtener la autorización del SRI, cada vez que invoco al metodo del WS siempre el estado es DEVUELTA y no me vienen los errores para saber que está mal.

alguién por favor puede ayudarme ???

Freddy V dijo...

Usando test data, el valor del 'estado' es 'DEVUELTA' y el array 'comprobantes' esta vacio. Alguien para inetercambiar informacion

Freddy V dijo...

Asi es como logramos resolver el SRI web service (Java) desde .net. (Tambien Fiddle2 ayudo)

http://java.interoperabilitybridges.com/articles/data-types-interoperability-between-net-and-java

Atakazo dijo...

Solo me falta la parte de consulta de web services, estoy haciéndolo en C#. Si alguien tiene algo que nos pueda ayudar. Freddy V, sé mas específico... cual es el problema con los WS del SRI? Tu intención de ayuda no sirve de mucho

epileftico dijo...

Atakazo, Freddy V propone utilizar Java en medio de tu aplicación y los servicios web del SRI para no tener que realizar la implementación del web service por completo desde .net

epileftico dijo...

Atakazo, Freddy V propone utilizar Java en medio de tu aplicación y los servicios web del SRI para no tener que realizar la implementación del web service por completo desde .net

Erwin Leiva dijo...

Alguien ya logró conectar con los WDSL del SRI.??

Erwin Leiva dijo...

Alguien ya logró conectar con los WDSL del SRI.??

BarceDan dijo...

Alguien que haya podido obtener la respuesta del servicion de validacion, a mi me retorna DEVUELTA pero no puedo acceder a mas informacion.

Fernando S. dijo...

Amigos, alguien que haya podido implementarlo en c# y quiera ayudar, o crear un grupo para hacerlo seria bueno. Avisen porfa

epileftico dijo...

Yo tengo el código fuente de la aplicación de escritorio, lastimosamente por más que lo reviso, no logro entender mi error, al momento de recibir la respuesta "RespuestaSolicitud", solo recibo el estado "DEVUELTA" o "RECIBIDA" pero no logro acceder al arreglo Comprobantes (ver el id de error, el mensaje y demás atributos), porque me devuelve un arreglo vacío. Estoy desarrollando en Java. En PHP, logro acceder a toda la respuesta, pero hacer la firma ha sido toda una hazaña. ¡Si alguien me puede iluminar para recibir todo el mensaje de respuesta desde java les agradezco mucho!, obtengo el mismo comportamiento desde Eclipse y desde NetBeans, utilizando las implementaciones de Apache Axis 1.2, Axis 2 o Apache CXF.

Anónimo dijo...

Me da error del timeout... alguien tiene este problema?

E.k.i.s. dijo...

Tienen que hacerlo directamente por soap, sino no funciona, enviando el XML del tipo base64 ya q .NET transforma de manera diferente el byte[].

epileftico dijo...

No entiendo a qué te refieres E.k.i.s., yo estoy desarrollando desde Java, toda la implementación es directamente con SOAP, independiente de enviar mal o bien el archivo debería devolver el arreglo completo, ¿o no?, al menos en PHP, mande mal o bien, me retorna todo el error completo, creo que para salvar el apuro tocará hacer la lógica en Java y el envío en PHP, no entiendo por qué el SRI no es más específico con las tecnologías que usa, sobre todo en la implementación de estas ¬¬

E.k.i.s. dijo...

Si desean agréguenme a polo8896 en skype, cree una librería para realizar las pruebas en .NET, si les interesa.

Anónimo dijo...

Como están saludos:
Una consulta alguno de uds. ha implementado esta firma xadesbes en C#,
yo lo estoy intentando con la clase SignedXml pero no puedo generar los nodos de QualifyingProperties y tengo problemas con el prefijo <ds:, bueno esto último no se si probocará errores, tendría que probarlo.

Cualquier ayuda bienvenida.

Jonny

epileftico dijo...

Al fin lo logré, en java desde Eclipse o Netbeans, es una falla de las implementaciones nativas, al no poder realizar el unmarshall del xml que se recibe como respuesta.

Legolas dijo...

Jonny la firma esta punblicada en un post anterior . El problema es la llamada a los web service desde .net

Patricio Tello dijo...
Este comentario ha sido eliminado por el autor.
Patricio Tello dijo...

Felipe por favor podrias indicar como resolviste el problema para leer la respuesta.

epileftico dijo...

Primero, antes de nada, no olvidar realizar la solicitud para que les permitan acceder al ambiente de pruebas del SRI, sino las respuestas varían más de lo esperado.

Segunda cosideración, es que bajo ciertas condiciones (aún no defino cuáles) el arreglo de comprobantes será NULL.

Si no puedes recibir la respuesta completa de comprobantes en Java es falla de la implementación de WS que estás usando, el secreto está en crear con la herramienta que utilices los artefactos necesarios con la implementación de Apache AXIS 1.2, NO UTILIZAR NINGUNA otra, a pesar de la interoperabilidad de los WS, por algún motivo no me ha funcionando con ningún otro (XJC, Axis 2, entre otros...).

Christian Cortes dijo...

Ya resolví el problema de la respuesta del WebServices del SRI. simplemente hice el llamado por medio de HttpWebRequest y funciona perfecto. Ahora tengo un problema con la firma electrónica alguien ya lo hizo?.

epileftico dijo...

En eso estoy Christian, estoy verificando cómo firma la aplicación de escritorio para utilizar esa implementación como base, si deseas podemos intercambiar código epilef.ec@gmail.com

Estás programando en Java o .NET?

Christian Cortes dijo...

.Net C# ya casi tengo todo pero el Web Services del SRi me esta devolviendo que mi firma es invalida. Estoy tratando de contactar a alguien del SRI para ver el porque me esta devolviendo este error si la firma que tengo esta igual a la documentación que ellos brindaron.

epileftico dijo...

Ahh bueno, yo lo hago desde Java y PHP.

Fernando S. dijo...

Amigo Christian Cortes, no se si puedes ayudarme con el ejemplo de como lo estas haciendo desde c#, estoy iniciando con esto porfa si puedes ayudar.

NelVegap846 dijo...

Saludos Estimado, por favor podrias ayudarme con la fuente para consumir el Web Service del SRI , por lo que entiendo este WS me manda una respuesta comprimida en zip ya tengo lo que es el PDF y mandar por email, lo que me falta es consumir el WS, y el proceso de la firma.

En espera de su gentil respuesta, me subscribo!!! gracias

NelVegap846 dijo...

Saludos Estimado, por favor podrias ayudarme con la fuente para consumir el Web Service del SRI , por lo que entiendo este WS me manda una respuesta comprimida en zip ya tengo lo que es el PDF y mandar por email, lo que me falta es consumir el WS, y el proceso de la firma.

En espera de su gentil respuesta, me subscribo!!! gracias

Unknown dijo...

Alguien que me pueda ayudar con la conexion al web service, si es por una referencia web o por HttpWebRequest ??

Unknown dijo...

Alguien que me pueda ayudar con la conexion al web service, si es por una referencia web o por HttpWebRequest ??

Vinicio dijo...

Hola comunidad, pueden guiarme tengo el xml y necesito firmar con c# le firma y me retorna firma inválida estoy haciendo pruebas con el soapui, le veo que me genera la firma y en los tags no aparece el prefijo ds, por favor su ayuda

Unknown dijo...

Tengo un problema especifico al tratar de consumir el ws de Autorizacion luego de haber enviado el de Validacion y me retorna un RECIBIDO.

Me dá un error al consumirlo.

Anónimo dijo...

Hola, ha alguien ya le funciona la respuesta del SRI(xml)?

Anónimo dijo...

Saludos, tiene que usar unas bibliotecas para el firmador, las bibliotecas MyTC y agregarlas como referencias al proyecto!!!!!

Paul dijo...

Saludos, ya firmo correctamente, alguien que me pueda ayudar con la utilizacion del WS en .net

Unknown dijo...

Buenas tardes,
Pudieron leer el arreglo ???
En caso de hacerlo , podrian compartir el codigo o la logica de como acceder al mismo .
Muchas gracias

Fernando S. dijo...

Amigos, alguien que pueda ayudar con la firma del documento y como consumir los servicios web desde c#.

Unknown dijo...

Quien me puede facilitar el codigo para .net, me estoy rompiendo la cabeza y no me sale

Unknown dijo...

Saludos,
Quien me puede facilitar el codigo de firmar el xml en.Net,

MalkaSoft A.D.P.I dijo...

Hola yo estoy consumiendo referencia web, pero tengo problema se supone que en la matriz me debe devolver algo de datos pero me da null el código que estoy usando es
string claveacceso = "2205201401179026306100110010010000000051234567819";
AutorizacionComprobantesService AutoService = new AutorizacionComprobantesService();
respuestaComprobante xmlRespuesta = (respuestaComprobante)AutoService.autorizacionComprobante(claveacceso);
autorizacion auto = (autorizacion)xmlRespuesta.autorizaciones[0];

MalkaSoft A.D.P.I dijo...

Hola Christian Cortes seras tan hable de compartir tu código para poder usar y verificar la autorización de comprobantes, Gracias!!!.

Unknown dijo...

Si deseas podemos intercambiar código con lo del ws

MalkaSoft A.D.P.I dijo...

Hola Luis Orellana me parece muy bien estoy de acuerdo con lo que dices mi correo es rycjesus@gmail.com.

Unknown dijo...

Quien ha firmado el xml con librerías propias de. net para poder intercambiar codigo

Paul dijo...

La firma lo hecho con librerias mecionadas en este foro, pero tranformadas de .jar a dll, si tienes alguna inquietud me puedes buscar como scppaul en skype

Paul dijo...
Este comentario ha sido eliminado por el autor.
joel dijo...

saludos me pueden ayudar con la firma estoy trabajando en c# de donde bajo las dll recomendadas

Unknown dijo...

tengo todo el proceso de facturacion desde la firma hasta el xml con el numero de autorizacion en .Net 2010, para firmar solo utiliza las mismas librerias d java .jar yo las tengo como .dll

Unknown dijo...

Estimado Cristian, si ya tienes resuelto el problema de las respuestas del servicio web con c# en .NET, yo puedo compartirte el código de la firma. Específicamente yo ya estoy enviando el documento, me sale RECIBIDA, pero ahora deseo recuperar con autorizacionComprobante y tengo problemas.

Anónimo dijo...

J. Desarrollo.

Saludos amigos, tengo problemas con el consumo del los web services, en vs2010 los agregue como servicios pero siempre me retorna DEVUELTA y si detalles de los errores, tal vez alguien los sabe como consumrilos como SOAP.

Podemos colaborar, con lo que requieran y compartir código.

Saludos.

Anónimo dijo...

Hola amigos, aqui tengo una DLL por si gustan ahorrarse varias horas de programacion: https://www.dropbox.com/s/zxybvnqccca98ww/ecuador20140612.zip

Alonso
http://facturaelectronicaecuador.com

Anónimo dijo...

Anónimo dijo...
Hola amigos, aqui tengo una DLL por si gustan ahorrarse varias horas de programacion: https://www.dropbox.com/s/zxybvnqccca98ww/ecuador20140612.zip

Alonso
http://facturaelectronicaecuador.com

12/6/2014 16:38:00


Esta dll tiene limitaciones de uso??

Anónimo dijo...

Man baje tu DLL pero el metodo cfdi_sellar me da diferente de cero pero cfdi_error me devuelve ""

Que podra ser?

Anónimo dijo...

hola anonimo, escribe por favor a alonso.mevaz en gmail . com
para no saturar de comentarios el blog de fense .

Unknown dijo...

Quien me ayuda con el codigo para la firma electornica del xml, please.

m dijo...

Saludos, me gustaría saber como debo hacer para enviar un lote electrónico masivo. Por que para enviar de forma individual ya tengo, si alguien me puede ayudar con eso. O si a alguien le puedo ayudar con lo que ya tengo lo haré con gusto. estoy programando en c#

m dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Hola Estimados,
tengo el problema de que el ws de autorizacion me devuelve el array de autorizaciones vacío, alguien que sepa como solucionar este tema, que sea tan amable ???

Saludos Cordiales,
Byron

Unknown dijo...

Byron te comento que tengo el mismo problema, me retorna vacio el arreglo de autorizaciones la calve y numero de comprobantes llegan bien.
Estoy usando netbeans. Tengo el codigo fuente de la palicacion gratuita del SRI hago lo mismo pero igual el array retorna vacio.
Lo has resuelto alguna sugerencia

Unknown dijo...

Hola amigos alguien me puede facilitar con el codigo php. jpbarzallo@gmail.com

Unknown dijo...

Nadie que eche una mano. Facturo todo bien pero no recibo el XML autorizado, el arreglo de respuesta de autorizacion viene en cero.

Unknown dijo...

Amigos ya resolví el problema, ya me devuelve el arreglo con datos. Gracias a todos igual por los consejos que han colocado

Lennart dijo...

Que tal Guillermo me puedes dar tu correo para preguntarte unas cosas del archivo xml autorizado para que me des una guia tengo problema con la firma me rechaza con firma invalida

Unknown dijo...

Claro es ggranizov@gmail.com

Unknown dijo...

Recien voy a iniciar con este tema, si me sale todo bien procedere a realizar un paquete Wrapper Nuget para los compañeros que trabejan en c#

Carlos Ajila M. dijo...

Hola, muy buenas con todos, estoy recién metido en lo que es la facturación electrónica, tengo un problema que me ha surgido espero que alguien me eche una mano, genero la fatura xml, firmo el archivo xml, consumos los ws, envió el xml firmado y me devuelve el estado todo muy bien hasta ahi, pero al realizar RespuestaComprobante el arreglo me sale 0 no tiene elementos.
no se si la respuesta es de hacer algún tipo de serialización. me he quedado estancado en esta parte.

Eduardo dijo...

Que tal Guillermo , favor indicanos como resolvistes el problema del arreglo con datos (ws de autorizacion) ....Gracias!!

Raúl Domínguez dijo...

Ye llegue... jaja!!

Para consumir los servicios web del SRI desde .NET

El problema viene desde la clase cuando se agrega el Servicio web.

Habrá que modificar la clase Reference.cs

Localizar la siguientes lineas:

public respuestaSolicitud validarComprobante([System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, DataType = "base64Binary")] byte[] xml)
{
object[] results = this.Invoke("validarComprobante", new object[] {
xml});
return ((respuestaSolicitud)(results[0]));
}

y reemplazar por:

public object[] validarComprobante([System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified, DataType = "base64Binary")] byte[] xml)
{
return this.Invoke("validarComprobante", new object[] { xml });
//object[] results = this.Invoke("validarComprobante", new object[] {
// xml});
//return ((respuestaSolicitud)(results[0]));
}

Pedrito dijo...

Hola Raul

Tengo 2 inquietudes ojala me puedan ayudar entre todos.
-En donde encuentro la clase Reference.cs que mencionas en tu post.
-Y cuando trato de consumir el servicio web me encuentro con el error

The remote server returned an error: (500) Internal Server Error.

este es el código que utilizo.

public void llamarServicio()
{
CargarDatos();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl");

req.Timeout = (30000);
req.ContentType = "text/xml;charset=\"utf-8\"";
req.Method = "POST";

ASCIIEncoding encoding = new ASCIIEncoding();
byte[] byte1 = encoding.GetBytes(soap);
//soap es un string que contiene el xml

using (Stream stm = req.GetRequestStream()) {
using (StreamWriter stmw = new StreamWriter(stm)) {
stmw.Write(byte1);
}
}

using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) {
Stream responseStream = response.GetResponseStream();
}
}

El error se produce en el GetResponse()

Raúl Domínguez dijo...

Hola pedro, yo también estaba consumiendo los servicios web igual que tu pero también me marcaba el mismo error.
Lo que hice fue agregar una referencia web (como ejemplo puedes visitar http://www.mundoprogramacion.com/colabora/NET2005/sergio_CallWebService.htm)

Como nombre de referencia web coloque el nombre de “SrvRecepcionComprobantes” (paso 3 de la página que te acabo de mandar).
Una vez que tienes agregadas las referencias veras que en tu webconfig se han agregado

https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes


Y posteriormente cuando despliegues el árbol de la referencia podrás ver:
Web References
->Reference.map
->Reference.cs

Saludos.

Anónimo dijo...

Hola. No logro capturar la respuesta del sri a mi xml enviado.

Alguien que por favor me ayude facilitándole el código en vnet a mi correo alex1980ec@hotmail.com cuánto me costaria. Gracias.

Roger. dijo...

buenos dias tengo un problema con el web servis de SRI ya les envio el archivo me dice RECIBIDO
pero no me retorna el XML ni la informacion del comprobante

en el otro web services de Autorizacion me dice en numero de comprobante y la clave que le envie pero no me retorna ni la claveAcceso,estado,fechadeAutorizacion ni el numeroAutorizacion;

no se cual es el motivo Instale el programa del SRI pero tampoco funciona. hay si ya me descuadre Por favor SI alguien me puede ayudar con esto el codigo que estoy utilizadon es:

string EstadoComprobante;
RecepcionComprobantesSevice.RecepcionComprobantes EnvioValidacionComprobante = new RecepcionComprobantesSevice.RecepcionComprobantesClient();
RecepcionComprobantesSevice.validarComprobante ValidarComprob = new RecepcionComprobantesSevice.validarComprobante();
RecepcionComprobantesSevice.validarComprobanteResponse Respuesta = new RecepcionComprobantesSevice.validarComprobanteResponse();

/*Convierto el Xml a byte*/
// string xml2 = @"C:\FACTURAa.xml";

string xml2 = @"C:\FACTURAa.xml";
XmlDocument xDoc = new XmlDocument();
xDoc.Load(xml2);
byte[] databytes = Encoding.UTF8.GetBytes(xDoc.OuterXml);
ValidarComprob.xml = databytes;

Respuesta = (RecepcionComprobantesSevice.validarComprobanteResponse)EnvioValidacionComprobante.validarComprobante(ValidarComprob);

/*Obtengo la Respuesta de la Recepcion Del Comprobantede aceptación o rechazo*/
EstadoComprobante = Respuesta.RespuestaRecepcionComprobante.estado;

respuestaSolicitud com = (respuestaSolicitud)Respuesta.RespuestaRecepcionComprobante;

string clav = com.estado;


/*Autorizacion Comprobante*/
AutorizacionComprobantesService.AutorizacionComprobantes EnvioValidacionComprobante2 = new AutorizacionComprobantesClient();
AutorizacionComprobantesService.autorizacionComprobante ValidarComprob2 = new AutorizacionComprobantesService.autorizacionComprobante();
AutorizacionComprobantesService.autorizacionComprobanteResponse Respuesta2 = new AutorizacionComprobantesService.autorizacionComprobanteResponse();


/*envío la clave de acceso*/
ValidarComprob2.claveAccesoComprobante = "1707201401170785094500110010010000000021234567812";
/*Obtengo la Respuesta de la Recepcion de Comprobante Autorizado o Comprobante No Autorizado*/
Respuesta2 = (AutorizacionComprobantesService.autorizacionComprobanteResponse)EnvioValidacionComprobante2.autorizacionComprobante(ValidarComprob2);

AutorizacionComprobantesService.respuestaComprobante sd = new respuestaComprobante();

sd.autorizaciones = Respuesta2.RespuestaAutorizacionComprobante.autorizaciones;
sd.claveAccesoConsultada = Respuesta2.RespuestaAutorizacionComprobante.claveAccesoConsultada;
sd.numeroComprobantes = Respuesta2.RespuestaAutorizacionComprobante.numeroComprobantes;

autorizacion auto = (autorizacion)sd.autorizaciones[0];

string a,b,c,d,e;
DateTime f;
bool g;

a = auto.ambiente;
b = auto.claveAcceso;
c = auto.comprobante;
d = auto.estado;
f = auto.fechaAutorizacion;
g = auto.fechaAutorizacionSpecified;
e = auto.numeroAutorizacion;

Daniela dijo...

Buenas tardes Roger, replique el código que estas utilizando para enviar la petición al web services del SRI... Pero en mi caso me devuelve en la respuesta "DEVUELTA"... Con el siguiente mensaje de error.

No es posible entrar automáticamente en el servidor. Conexión a la máquina del servidor 'celcer.sri.gob.ec' falló. El nombre de red especificado yo no está disponible

Pensé que era problema del archivo XML. Pero luego le envió el archivo firmado que genero desde el software del SRI y devuelve lo mismo.

Que puede ser??

Saludos...

Anónimo dijo...

Necesito ayuda al consumir el web service de autorización, al acceder al primero me retorna como RECIBIDA, pero al acceder al segundo web service de autorización solo me retorna un arreglo vacío..

Como puedo recuperar el objeto xml con la autorización.

Su ayuda por favor.

Roger dijo...

hola Daniel..
El programa del SRI por ente no Funciona eh tradoto de hacerlo funcionar y nunca conecta al SRI sempre dice no se puede conectar al SRI. Y si te da un mesaje DEVUELTA como dice en el manual de SRI sino lo tienes descargatelo y hay dice RECIBIDO o DEVUELTA es por que tu firmado no lo esta haciendo correcto y te lo devuelve el firmado no lo tengo por que quiero probar primero con el envio y recepcion por que eso a todos se nos esta haciendo complicado desde .NET y quiero lograrlo desde hay c# 2013

Raúl Domínguez dijo...

Yo he logrado capturar los xml que me devuelven los Servicios del SRI con c# y vs 2010, puedo compartir código con la finalidad de que me apoyen con la firma, ya que lo he logrado con Xades_bes pero el servicio me retorna un error diciendome que en el certificado o firma han sido modificados.

Saludos.

Roger dijo...

Serio raul un pregunta el la clase References yo no tengo esas lineas que tu dices para cambiarlas

Raúl Domínguez dijo...

Tienes Skype te mande la solicitud.. Saludos.

Unknown dijo...

Que tal la firma como la hiciste solamente con. net o con dll referenciadas de java. Mi correo es sistemas_orellana@hotmail.com

Anónimo dijo...

Tengo los fuentes para la firma en java, funcionando perfectamente..,,y tambien tengo el envio al sri (webservices), pero me falta la autorizacion(webservices)...uso los fuentes originales del sri..necesito intercambiar con alguien conocimiento .....ojo solo en java....mi correo : openbravoposinfo@gmail.com

Yoelvys Martinez dijo...

Buenos dias, se que ya hace mucho tiempo desde los ultimos post en este tema del foro pero necesito de verdad poder comunicarme con el webservice del SRI desde php, aun no logro que me de una respuesta y mi idea del posible problema es que esta en https y para conectarte desde java vi que habia que poner el certificado en el keystore, necesito saber como hacerlo en php, ya intente con el local_cert pero me dice que no se puede conectar con el host, porfa los que dicen que ya lo tienen echo en php familiarizar el codigo. Igual el que me pueda ayudar de forma extra con el consumo desde java se los agradecere pues me devuelve la parte de autorizacion el array de autorizacion vacio. saludos y muchas gracias

Pedrito dijo...

Hola Raúl, Roger, a todos los que han conseguido la solución y los que continuamos en este trajín.

Yo estoy trabajando en VB .Net y me gustaría poder ayudar y que me ayuden... Convertir código de VB a C# o viceversa no es complicado, así que espero les sirva de algo y como dice Roger se nos está complicando desde .Net

Esto es lo que tengo de la firma electrónica... Firma pero el archivo final tiene errores y utilizo el usb E Token para firmar.

https://www.dropbox.com/s/earasgv3freu43y/ConfiguracionFirma.zip

Para el envió al WS del SRI solo tengo lo que Roger y Raul han postiando, ojala puedan ayudar un poco mas en esta parte.

https://www.dropbox.com/s/hn2s7cwiyebksvt/probarWebServicesVB.zip

Aparte estos son ejemplos que encontrado en .Net, Este ejemplo que se encuentra en los repositorios de codeplex permite firmar un archivo(Estoy revisando el código para ver si mejoro el mío) y tal vez esto te sirva Raúl.

http://xadesnet.codeplex.com/documentation

Estos otros están basados en la librería de java convertidos a .dll, la verdad no los he utilizado... solo me los quedo mirando cuando ya no sé qué hacer. Si alguien sabe que estos funcionan bien o tiene más ejemplos se los agradecería

http://zonatic.usatudni.es/es/aprendizaje/aprende-sobre-el-dnie/58-desarrolla-con-el-dni-electronico/230-transporte-almacenamiento-y-conservacion-de-firmas-electronicas-xades-cades.html

http://sviudes.blogspot.com/2010/05/facturae-con-net-y-c.html

Voy también a poner esta entrada en en la sección de firma, por que me parece que debe estar ahí. Saludos...

Anónimo dijo...

Saludos amigos:
en la seccion firma,

es necesario las 3 referencias SignedInfo...??

y Es necesario especificar el etsi namespace qualified para cada elemento??
cualquier ayuda es muy apreciada. Gracias

Anónimo dijo...

He probado llamando al web service de prueba y me sale recibida y no obtengo ninguna otra informacion. Pero cuando uso el web service de produccion si obtenga respuesta. Alguien sabe si hay alguna diferencia??

Yoelvys Martinez dijo...

buenos dias me esta pasando lo mismo en el de prueba me da recibida pero sin ningun dato, necesita saber que es lo que pasa con el servicio de prueba del sri, porfavor el que lo tenga echo ya en php que me ayude.

Unknown dijo...

Amigos les dejo mi correo si desean consultoria sobre la firma o el envío del xml a los webservice del SRI.

sistemas_orellana@hotmail.com

Anónimo dijo...

Hola... Alguien puede ayudarme (VB .NET 2008).
Al obtener la respuesta de autorización comprobante me presenta el siguiente error:
"Se superó la cuota de tamaño máximo para los mensajes entrantes (65536). Para aumentar la cuota, use la propiedad MaxReceivedMessageSize en el elemento de enlace correspondiente.". Cualquier ayuda será bienvenida. Gracias!!!

Hector dijo...

Estimados amigos, tengo la firma desarrollada en c#, podemos intercambiar conocimientos y código, mi correo es hmoralesn@gmailcom

Saludos

Unknown dijo...

a mi me sale RECIBIDA. pero cuando uso el metodo AutorizacionComprobante me sale lo siguiente:



39
FIRMA INVALIDA
El comprobante puede estar modificado o no ser valido. El nodo comprobante no se encuentra firmado correctamente.
ERROR


60
ESTE PROCESO FUE REALIZADO EN EL AMBIENTE DE PRUEBAS
INFORMATIVO

Pedrito dijo...

Hola Luis...

Ojala me puedas ayudar, estoy replicando el código que Roger posteo días atrás. Pero cada vez que lo ejecuto me devuelve el siguiente error.

Unable to automatically steop into the server. Connecting to the server machine 'celcer.sri.gob.ec' failed. El formato del nombre de red especificado no es válido.

Te consulto... Tu estas usando un proceso igual que Roger, o generas tu propio código a través de HttpWebRequest.

Saludos...

Unknown dijo...

Buen dia Reinaldo


en que lenguaje estas trabajodo en c# o java

saludos

Alejandro

Unknown dijo...

En c#.

Unknown dijo...

Buen dia Reinaldo

Si deseas Podemos Intercambiar código yo actualmente trabajo en VB.net 2010

mi correo es trabajos1979@hotmail.com


Saludos

Alejandro

Unknown dijo...

Buen dia Reinaldo

Si deseas Podemos Intercambiar código yo actualmente trabajo en VB.net 2010

mi correo es trabajos1979@hotmail.com


Saludos

Alejandro

Unknown dijo...

Listo Alejandro, te acabo de escribir a tu correo

Don@nfer 001 dijo...

Referente al punto El comprobante puede estar modificado o no ser valido. El nodo comprobante no se encuentra firmado correctamente.

Se debe a que existen dos formas de firmar una que se especifica el nodo y otra que no se debe especificar, se necesita especificar el nodo para solucionar este inconveniente.

Anónimo dijo...

Don@nfer cual es la linea que debe cambiar.. estoy trabajando en Java. Ayuda por favor..

Saludos,

Roger dijo...

Hola pedrito...
Yo se programar en c# y Visual te podria ayudar con el cambio de un lenguaje al otro me e retirado por que eh estado en otro proyecto pero desde el lunes vuelvo a la facturacion ahora si para terminarla si alguien ya pudo hacer algo con el codigo que deje arriba por favor indicarme yo tambien voy a trabajar en el tema

Unknown dijo...

Así es yo estoy generando mi propio código para la lectura de los web services

Cómo también la firma hecha en vb.net 2008

Unknown dijo...

Que tal, para los que estén interesados tengo disponible los fuentes de la firma en vb.net y el consumo de los webservice del sri todo nativo nada de librerías externas como las dll de java, lamentablemente esto tiene un costo sólo los que estén interesados les dejo mi skype leo24832 porfavor cuando envíen la solicitud indicar que son de este sitio Muchas gracias y suerte con sus proyectos.

Maximiliano dijo...

Hola buenos dias! Alguien pudo conectarse a los Web Services del SRI usando SOAP?

Anónimo dijo...

Yo tengo la cominucacion con los ws funcionando ok, lo estoy cambiando por firma xml preferible si es .net puro en C# o Visual Basic


Mi Correo es

trabajos1979@hotmail.com

Anónimo dijo...

PICOTEANDO CODIGO POR AHI, ESTO ES LO QUE TENGO, PERO CUANDO LLEGO AL GetResponse() SALE ERROR 500 Y MUERTO EL ASUNTO, NO HE ENCONTRADO SOLUCION... QUE ES LO QUE ESTA MAL?

Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Xml

Public Class Form1
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
'WEB SERVICE
Dim wsRec As String = "https://cel.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl"

'RUTA DEL XML
Dim varXMLFile = "D:\miarchivo.xml"

Dim objRequest As HttpWebRequest = CType(WebRequest.Create(wsRec), HttpWebRequest)
Dim StrData As String
Dim objXMLDoc As New System.Xml.XmlDocument()
objXMLDoc.Load(varXMLFile) 'xml data I need to send
StrData = objXMLDoc.OuterXml


objRequest.Method = "POST"
Dim encoding As New System.Text.ASCIIEncoding()
Dim byte1 As Byte() = System.Text.Encoding.UTF8.GetBytes(StrData)
objRequest.ContentLength = byte1.Length
objRequest.ContentType = "text/xml; charset=utf-8" objRequest.KeepAlive = False


Dim streamToSend As Stream = objRequest.GetRequestStream()
'Response.Write("Number of characters returned: " & byte1.Length & "
")
streamToSend.Write(byte1, 0, byte1.Length)
streamToSend.Close()


Dim objResponse As HttpWebResponse = objRequest.GetResponse()
Dim StreamReader As StreamReader
StreamReader = New StreamReader(objResponse.GetResponseStream())
Dim xmlDoc As New XmlDocument()
xmlDoc.LoadXml(StreamReader.ReadToEnd())
TextBox1.Text = ("RETURN XML:" & xmlDoc.InnerXml)



'Dim sr As New System.IO.StringReader(xmlDoc.InnerXml)
'Dim doc As New Xml.XmlDocument
'doc.Load(sr)
'Dim reader As New Xml.XmlNodeReader(doc)
'While reader.Read()
' Select Case reader.NodeType
' Case Xml.XmlNodeType.Element
' If reader.Name = "response" Then
' Response.Write(reader.GetAttribute("msg"))
' End If

' If reader.Name = "reaction" Then
' Response.Write("
ID " & reader.GetAttribute("id"))
' End If
' End Select
'End While



'StreamReader.Close()
End Sub
End Class

Anónimo dijo...

Tal vez te falte esto.

objRequest.Headers.Add("SOAPAction", "\"\"");

Anónimo dijo...

Estimados quien de ustedes tiene la funcion de calculo de digito verificador modulo 11

por favor

Unknown dijo...

private static string CreateDigit11(string verifierString)
{
int baseMax = 7;
int multiplicador = 2;
int total = 0;
int verificador = 0;
int numAux = 0;

string[] substrings = Regex.Split(verifierString, "");

for (int i = substrings.Length - 1; i >= 1; i--)
if (substrings[i] != "")
{
if (multiplicador > baseMax)
multiplicador = 2;

numAux = int.Parse(substrings[i]);
total = total + (numAux * multiplicador);
multiplicador = multiplicador + 1;
}

verificador = 11 - (total % 11);

if (verificador == 10)
verificador = 1;
else
if (verificador == 11)
verificador = 0;

return verificador.ToString();
}

Anónimo dijo...

Muchas Gracias Reinaldo Por tu aporte a este tema


Saludos

Unknown dijo...

Hola alguna ayuda para convertir bien el archivo xml a byte en java ya q me salen con el estado Devuelta mi codigo es
FileInputStream fileInputStream=null;

File file = new File("C:\\000032289.xml");

byte[] bFile =new byte[(int) file.length()];

y el arreglo de los comprobantes sale en 0
Muchas gracias por alguna ayuda

MalkaSoft A.D.P.I dijo...

Hola les comunico que ya tengo resuelto lo que es el uso del Web Service desde C# .net y también se puede usar desde VFP, pero este tiene un costo simbólico a los interesados escribirme a rycjesus(arroba)gmail.com.

Unknown dijo...

MalkaSoft te acabo de escribir a tu correo

MalkaSoft A.D.P.I dijo...

Reinaldo Burgos ya te respondi

Unknown dijo...

Yo desde java logro hacer la conexion sin problema pero porque cuando creo un web service y dentro del mismo creo una funcion con los parametros que cojen en el java no funciona y me da error de certificados el cual es:
Fallo al acceder al WSDL en: https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl. Ha fallado con: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.
............
Que puedo hacer en este caso...???

Unknown dijo...

entra aqui http://blog.rolandopalermo.com/2013/03/web-service-client-java-ssl-https.html Dario Coyago y corriges ese problema alguna ayuda con mi tema muchas gracias

Unknown dijo...

Haber mi compa veamos si me funciona ya le pruebo ojala con todo gracias
Juan Daniel Falconi Baque cualquier cosa te informo referente a lo tuyo seria chevere que les veas estas funciones y las pruebes:

public static byte[] archivoToByte(File file)
throws IOException {
byte[] buffer = new byte[(int) file.length()];
InputStream ios = null;
try {
ios = new FileInputStream(file);
if (ios.read(buffer) == -1) {
throw new IOException("EOF reached while trying to read the whole file");
}
} finally {
try {
if (ios != null) {
ios.close();
}
} catch (IOException e) {
Logger.getLogger(ArchivoUtils.class.getName()).log(Level.SEVERE, null, e);
}
}

return buffer;
}

public static boolean byteToFile(byte[] arrayBytes, String rutaArchivo) {
boolean respuesta = false;
try {
File file = new File(rutaArchivo);
file.createNewFile();
FileInputStream fileInputStream = new FileInputStream(rutaArchivo);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(arrayBytes);
OutputStream outputStream = new FileOutputStream(rutaArchivo);
int data;
while ((data = byteArrayInputStream.read()) != -1) {
outputStream.write(data);
}

fileInputStream.close();
outputStream.close();
respuesta = true;
} catch (IOException ex) {
Logger.getLogger(ArchivoUtils.class.getName()).log(Level.SEVERE, null, ex);
}
return respuesta;
}

public static String obtenerValorXML(File xmlDocument, String expression) {
String valor = null;
try {
LectorXPath reader = new LectorXPath(xmlDocument.getPath());
valor = (String) reader.leerArchivo(expression, XPathConstants.STRING);
} catch (Exception e) {
Logger.getLogger(ArchivoUtils.class.getName()).log(Level.SEVERE, null, e);
}

return valor;
}

Unknown dijo...

creo q me exprese mal estoy ya en el punto en q conviertes el xml ya firmado para el SRI y la verdad no se como convertirlo a BYte[] por q al enviarlo me sale Devuelta claro q no puedo tampoco obtener los valores que da como devuelta en comprobante estoy frito

Unknown dijo...

Juan Daniel Falconi Baque... ya eso de que te sale devuelta es porque el XML esta mal generado osea verifica la estructura del mismo que este firmando bien osea con que este formando la estructura que el SRI acepta ese problema tuve yo y la función de la firma era mi error la cual le cambie con esta:
@Override
protected DataToSign createDataToSign(String archivo) {
DataToSign dataToSign = new DataToSign();
dataToSign.setXadesFormat(EnumFormatoFirma.XAdES_BES);
dataToSign.setEsquema(XAdESSchemas.XAdES_132);
dataToSign.setXMLEncoding("UTF-8");
// Se añade un rol de firma
dataToSign.setEnveloped(true);
dataToSign.setParentSignNode("comprobante");
dataToSign.addObject(new ObjectToSign(new InternObjectToSign("comprobante"), "contenido comprobante", null, "text/xml", null));
Document docToSign = getDocument(archivo);
dataToSign.setDocument(docToSign);
return dataToSign;
}

y referente a tu ayuda no me sirvió.... lo que pasa es que deseo enviar el comprobante mediante un web service osea tengo echo el proyecto en java en el cual esta una función que realiza ese envió el mismo proyecto que lo empaquete y lo inserte al web service para que se llame desde una función del mismo el cual lo maneja PHP y me salta aquel error

Fallo al acceder al WSDL en: https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl. Ha fallado con: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.

Unknown dijo...

Intenta no ponerle System.setProperty en el main
y te cuento q si lo tengo el archivo con la firma como dices y no me acepta el archivo me imagino q no lo convierto bien a Byte[]

Unknown dijo...

Como lo conviertes el XML a byte

Unknown dijo...

Aqui hablan del problema y una supuesta solucion

http://stackoverflow.com/questions/9619030/resolving-javax-net-ssl-sslhandshakeexception-sun-security-validator-validatore&usg=ALkJrhjk5iMyUfJpwlNRS_E3Wr7hd6K-RA
trducela al español

Unknown dijo...

Lo voy a volver a ver ojala funcione como me dices ando que me mata ese tema jajajajaja para lo tuyo por eso te daba esas funciones esta es la mas adecuada que trasforma de XML a BYTE....

public static byte[] archivoToByte(File file)
throws IOException {
byte[] buffer = new byte[(int) file.length()];
InputStream ios = null;
try {
ios = new FileInputStream(file);
if (ios.read(buffer) == -1) {
throw new IOException("EOF reached while trying to read the whole file");
}
} finally {
try {
if (ios != null) {
ios.close();
}
} catch (IOException e) {
Logger.getLogger(ArchivoUtils.class.getName()).log(Level.SEVERE, null, e);
}
}

return buffer;
}

Unknown dijo...

Nada me sale Devuelta y no recibo el mensaje de error el array me sale en 0

Unknown dijo...

Voy a probar como dice Felipe Salazar en crear el Web service con Apache AXIS 1.2 ya q uso Eclipse con jboss a ver como me va

MalkaSoft A.D.P.I dijo...

Hola, agregando como referencia no podrás solucionarlo, yo hice utilizando HttpWebRequest, para que se rompen la cabeza yo ya lo tengo solucionado a los interesados me pueden escribir a rycjesus(arroba)gmail.com, ojo la dll que he realizado tiene un costo.

Unknown dijo...

Pero yo lo tengo en java con eclipse y jboss si lo puedes implementar comenta

Anónimo dijo...

MalkaSoft A.D.P.I Eso incluye los fuentes ???

MalkaSoft A.D.P.I dijo...

El costo de la solución que tengo del desarrollado de la firma y del consumo del Web Service incluye los fuentes, por favor los interesados contactarme por correo rycjesus(arroba)gmail.com

Unknown dijo...

Alguna ayuda En java como reciben la respuesta en AutorizacionComprobantes

Unknown dijo...

yo tengo todo el proceso de firma y envio de xml al web service del SRI en c# y visual basic.
Cualquier inquietud aqui dejo mi correo.

jaco-47@hotmail.es

Cristy dijo...

Convertir el xml a arreglo byte[] y enviarlo por SOAP
AYUDA!!!
En php tengo esta funcion que si comparamos con la salida de la funcion de java del programa del sri es lo mismo.
Pero hay algo mas por que aparece con error 49 en el RecepcionComprobantes

function text_binario(){
$nombre_fichero = "/fs/SRI/firmados/359.xml";
$fichero = file_get_contents($nombre_fichero, true);
$len = strlen($fichero);
$bin = array();

for($i = 0; $i < $len; $i++ )
{
$bin[]=ord($fichero[$i]);
}
return ($bin);

}

function RecepcionComprobantes(){
$bytes=array();
$bytes=$this->text_binario();


$options = array('encoding'=>'UTF-8');
$wsdl_url = 'https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl';
$client = new SOAPClient($wsdl_url, $options);
$soapstruct = new SoapVar($bytes, SOAP_ENC_ARRAY, "xml");

try{
$client = new SOAPClient($wsdl_url, $options);
$datito=$client->validarComprobante(null,new SoapParam($soapstruct, "xml"));
$x=$datito->RespuestaRecepcionComprobante->estado;

if ($x=='RECIBIDA'){


}

print_r($datito);

}catch(ClassCastException $ex){
print_r($xe->getMessage());
}

}

Walter Campuzano Borbor dijo...

Estimados buenas noches, soy nuevo en el tema de Facturación Electrónica; me complace ver tanta camaraderia entre todos ustedes, me han servido de guia y queria agradecerles a todos por su aporte al conocimiento.
wcampuzano@outlook.com

Unknown dijo...

WALTER HAZ PODIDO REALIZAR TODO EL PROCESO DE FACTURACION ELECTRONICA

Unknown dijo...

yo tengo todo el proceso de facturacion electronica en vb.net y en c# cualquier inquietud jaco-47@hotmail.es.

Unknown dijo...

Yoelvys Martinez como le haces el envió del php y referente a lo que te pasa puede ser porque no estas capturando bien la respuesta del SRI

Anónimo dijo...

El problema del CAST que hace .Net es la razón por la cual se pierde el objeto de autorizaciones que devuelve el SRI. De todas maneras ya lo solucione y la proxima semana ya estará disponible la versión que firma y envia los comprobantes hacia el SRI en esta página:
http://www.facturacionelectronica.ec/productos/libreria-c-net-dll-facturacion-ecuador/

MalkaSoft A.D.P.I dijo...

Hola, ya tengo el desarrollo de la firma y el consumo del Web Service terminando lo estoy dando con el código fuente pero eso si tiene un costo se puede usar las DLL hechas en C# .Net en Visual Basic, Visual FoxPro y entre otros. ojo la DLL lo vendo con el código fuente para que hagan lo que quiera con el, ademas sin nada de restricción y estar pagando cuotas mensuales o por limite de facturas. Interesados mandar un correo a rycjesus(arroba)gmail.com

Unknown dijo...

skype jaco-a_cool@hotmail.com

Walter Campuzano Borbor dijo...

Juan Daniel, gracias por preguntar; lamentablemente no tengo todo el proceso, todavía; recién he logrado firmar correctamente el XML en C#, pero es un buen avance no me desanimo; recién voy a meterme con los WS del SRI. Acepto sugerencias estoy haciendo todo en C#. Saludos a todos.

Unknown dijo...

Gracias a todos lo q me dieron alguna sugerencia ya que por fin he podido realizar todo el proceso de Facturación electrónica y lo pude hacer en forma nativo que es lo mejor

Unknown dijo...

Juan Daniel, Walter, firmaron el xml sin usar librerias de java?

Pueden compartir?

Unknown dijo...

Perdon, si es en C# me refiero

Unknown dijo...

Yo lo hice en java con eclipse y jboss

Unknown dijo...

ah listo, yo pensé que lo habias hecho en C#, Walter contactame a reinaldo.burgosp@gmail.com e intercambiemos codigo.

Anónimo dijo...

hola estimados me pueden ayudar con el siguiente error:
error de conexión con el servidor 'celcer.sri.gob.ec' el nombre de red ya no esta disponible, saben a que se debe esto.

Anónimo dijo...

buenas a todos me podrian ayudar con el codigo en java de firmar un xml

mp@inprise.ec

Walter Campuzano Borbor dijo...

Juan Daniel, buenas noches que tal; que chevere que lo completaras; podrias comentarme como hiciste el tema de los WS, Yo todavia estoy en eso. Te agradezco. Saludos a todos.

Unknown dijo...

para enviar el documento usa Jax-ws 2.0 y para consultar la clave de acceso usa Soap envelope Walter

Anónimo dijo...

Amigos, tengo el producto listo en java, 100% listo y funcionando, sin parches ni ajuates de última hora, corriendo en SQL Server o MYSQL, envía correo al usuario y mensaje por celular. Contáctame a veracvl@hotmail.com - 0986549771

Unknown dijo...

La idea de este foro no era que se ayuden entre todos? he visto a muchos que han pedido ayuda, y una vez que ya les salió... ahora ya lo quieren es vender a los de este mismo foro....
Claro, también están los que ni siquiera lo intentan y quieren que les den todo el código.

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Bueno tiene razón el compañero en lo que ha explicado en decir que buscaron forma de lucrar ahora bueno a mi ya me salio y estoy presto para ayudarlos pero favor ser especifico con las preguntas y si les ayudaría con un poco de código porque el tema es ayudar no lucrar para esos somos compañeros a si no lo crean y eso que yo no soy ingeniero pero me gusta ser en ese sentido profesional.

Unknown dijo...

Así es Dario, a eso me refería, y si necesitan ayuda que digan en que parte, tampoco que soliciten todo el código, porque nos dejaría pensar que ni siquiera lo han intentado.
Yo le agradezco a Luis Orellana, que me ayudó dándome muchas pautas por donde caminar para lograrlo.Lo tengo en C#, aun me falta poder hacerlo sin las librerías de java para la firma, con lo cual sería óptimo. Pero al fin, ya funciona.

luis dijo...

luis... estoy a punto de tirar la toalla.. siempre me sale null al obtener la respuesta de autorizacion.... las ideas se me estan agotando,, heeeeelppppp

Raúl Domínguez dijo...

Que tal buen día....

Ya tengo el proceso completo para la validación y autorización del Sri de los XML firmados.

El consumo de los servicios web los hago mediante "HttpWebRequest", el proyecto esta en c#.

No publicaré código ya que hay gente que solamente quiere utilizar el copiar-pegar.

Me pueden escribir sin ningún problema y con gusto los apoyaré.

Saludos.

Unknown dijo...

Esa es la aptitud Raúl. Yo lo hice agregando la clase

WebReferenceTraceExtension : System.Web.Services.Protocols.SoapExtension.

Con esto tiene otra alternativa, Al igual que Raúl pueden hacer sus consultas.

Por mi parte me gustaría mejorar la parte de la firma electrónica, es decir sin tener que usar las librerias de java, si alguien le hizo en C# les gradeceria su ayuda.

Unknown dijo...

Estimado estoy haciendo el proyecto de facturacion electronica con php, ya tengo firmado el xml pero me sale el siguiente error al enviar el xml al web service primero.
public RespuestaSolicitud validarComprobante(@WebParam(name = "xml") byte[]
xml) ;

stdClass Object ( [estado] => RECIBIDA [comprobantes] => stdClass Object ( [comprobante] => stdClass Object ( [claveAcceso] => N/A [mensajes] => stdClass Object ( [mensaje] => stdClass Object ( [identificador] => 49 [mensaje] => ARCHIVOS ENVIADOS NO CUMPLEN LAS ESPECIFICACIONES ESTABLECIDAS: EXTENSION, CODIFICACION [tipo] => ERROR ) ) ) ) )


No se cual es el problema envio el xml en byte, lo firmo correctamente pero ya no se que hacer.

Por favor les dejo mi correo oscaroso45@hotmail.com, para su ayuda.

Saludos

Unknown dijo...

Mi estimado oscar a mi me pasaba lo mismo bastante complocado hacer directemte en php para lo cual yo igual lo jago con php pero uso un web service con glassfish el cual se coloca el proyecto empaquetado y lo consumes para esto el problema en php es pasar de xml a bytes si sabes jacer eso mandale y te funcionara por eso es ese error

Unknown dijo...

Hola a todos! Ahora puedo hacer la llamada a la recepción WS y me devuelve "Recibido" Pero para llamar a la Autorización WS me devuelve "FIRMA NO VÁLIDA". Si alguien me puede ayudar, gracias! Estoy desesperada. Por otra parte, los que necesitan ayuda con respecto biblitecas Java (convertido a la dll, puedo compartir). Y también ya resuelto el problema de los comprobantes que devuelven vacía. Estoy usando C #. Mis contactos son: Skype: maya.cnp
Email: maya.gonzalez@cnpm.com

Gracias

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

oscar prueba poniendo en version del xml la 1.1.0 si lo tienes asi consulta la clave de acceso o revisa el la pagina del sri si te sale el xml rechazado para ver mas informacion

Unknown dijo...

Lo de la firma invalida pasa porque estas enviando mal o la misma se esta firmando con los parametros que no son osea al momento de firmar agrega unos datos mas al xml talvez esta enviando algo de mas o falta algo revisa bien aquello y revisen que el xml este bien generado ya con todo y firma eso da problemas como ven esto probando con el sistema del sri que les da gratis y prueban generando un xml y firmandolo y vean si la estructura esta bien y con eso sabran que sucede

Unknown dijo...

Dario Coyago me puedes explicar tu solucion por favor.

Unknown dijo...

Juan Daniel Falconi Baque Si tengo como tu me dices ya voy a consultar.

Unknown dijo...

Muchísimo agradecida a Jaco Orodnez que me ayudó a solucionar mi problema. Gracias a todos los que han colaborado.

Unknown dijo...

Listo Oscar lo que es recomendable hacer es en java y crearte un web service que tenga las funciones de firmar y enviar lo cual tienes que probar que te funcione en el java y subir el proyecto a tu web service en el cual como seria chevere ya te coje en el java el envió y la firma tu creas tu web service en el cual lo consumes en tu php para ya usarlo con el soapclient y se te consumira bien ah y tener en claro sobre los ssl lo cual son certificados de https buscas las excepciones y lo colocas en el web service para que te cargue listo,....
en resumen
haz en java te funciona bien en java
creas un web service en java glassfish
creas las funciones de firmar enviar con tus parametros necesarios
consumes desde php con soapclient y ya

Unknown dijo...

Dario eso es lo que hize integre php con java a traves de javabridge, una consulta tu tienes la firma para lote por que se q es diferente.


Saludos

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

Que javaBridge ni que es nada eso no fucnina para nada eso intente pero no existe y habia uno
pero es obsoleto has como te decia crea en java prueba en java funciona bien la firmada y
enviada de lo que tua hagas en el main basta y sobra ahora creas un web service en glassfish
el mismo que llama a tu proyecto con todo y librerias en el paquete de libriaries y despues
para cinsumir tu web service en php llamas con esta forma.......
PARTE 1.
<?php
echo "Firma Electr&oacutenica";
echo " WEB SERVICE";
echo "JAVA Server --- PHP Client";
echo "FUNCION FIRMAR";
try {
$wsdl_url = 'http://localhost:8080/mifirmaElectronicaWEBSERVICE/FirmaElectronica?WSDL';
$client = new SOAPClient($wsdl_url);
$ingreso=@'c:/facturaElec/MiProgramaSRI/FacturasSinFirma/mifactura.xml';
$salida=@'c:/facturaElec/MiProgramaSRI/FacturasFirmadas/mifacturafirmada.xml';
$firma=@'c:/facturaElec/Firmas/llavesita.p12';
$clave='miclavesita';

Unknown dijo...

PARTE 2.
try{
$params = array(
'archivoIn'=>$ingreso,
'archivoOut'=>$salida,
'archivoFirma'=>$firma,
'claveFirma'=>$clave,
);
$metodo=$client->firmar($params);
foreach ($metodo as $mivariable):
echo $mivariable;
endforeach;
}catch(ClassCastException $ex){
print_r($xe->getMessage());
}
} catch (Exception $e) {
echo "...Error Exception...";
echo "...MENSAJE...";
print_r($e->getMessage());
echo "...DESCRIPCION...";
print_r($e);
}
?>

Unknown dijo...

Dario puedes Darme tu Skype por favor o correo electronico para escribirte.

Saludos

Unknown dijo...

Bueno no ahi problema es darubahhp@gmail.com

Unknown dijo...

Estimados
Alguien que pueda ayudar con el consumo de los webservices tengo las siguientes lineas:

respuesta = (rnd.validarComprobanteResponse)enviovalidacioncomprobante.validarComprobante(validarcomp);
estadocomprobante = respuesta.RespuestaRecepcionComprobante.estado;

en respuesta no recibe nada me dice que no hay conexion con el servidor celcer.sri....
A que se debe esto

Saludos
Darío

Anónimo dijo...

Saludos amigos, tengo la creación del XML, la firma electrónica firmada con p12, y la consulta con el XML resultante. Pero tengo problemas con el consumo del WebService de envio del XML (validarComprobante) TODO EN VISUAL FOX PRO 9.0, me podría alguien ayudar y podríamos intercambiar código mi mail bonilla1979@hotmail.com

MalkaSoft A.D.P.I dijo...

Hola amigos de este foro yo ya tengo la solución de la firma electrónica y el consumo de la Web service, la forma de uso es muy sencillo aquí les paso un ejemplo:
FirmaElectronica FirmarElec = new FirmaElectronica();
EnvioResptaWs wsEnvRecep = new EnvioResptaWs();
string cClaveAcceso = FirmarElec.getClaveAcceso(@"D:\FirmarXML\firmar3.xml"); //se recupera la clave de acceso
FirmarElec.Firmar(@"D:\FirmarXML\firmar3.xml", @"D:\FirmarXML\Firmado\" + cClaveAcceso + ".xml", @"D:\FirmarXML\certpfxfact.pfx", "Alfredo01");//Firmando el XML
//Empezando a consumir la Web Service
wsEnvRecep.lPrueba = true; //ambiente de pruebea o produccion
wsEnvRecep.claveacceso = cClaveAcceso;
wsEnvRecep.XmlFirmado = @"D:\FirmarXML\Firmado\" + cClaveAcceso + ".xml";//XML firmado
wsEnvRecep.RutaRptaEnvio = @"D:\FirmarXML\FileXMLRpta";//carpeta para el envio y respuesta
wsEnvRecep.RutaRptaAuto = @"D:\FirmarXML\FileXMLAutComp";//carpeta para ver si fue autorizado
wsEnvRecep.GenEnvioRepuesta();//metodo que consume el Web Service
wsEnvRecep.getInformacion(@"D:\FirmarXML\FileXMLAutComp\" + cClaveAcceso + "_Auto.xml");//Informacion que se requiere para mostrar al usuarior

Console.WriteLine(wsEnvRecep.informacion1);// fue autorizado
Console.WriteLine(wsEnvRecep.informacion2);//Numero de autorizacion
Console.WriteLine(wsEnvRecep.informacion3);//Fecha de autorizacion
Console.WriteLine(wsEnvRecep.informacion4);//mesanjes
Console.WriteLine(wsEnvRecep.informacion5);//mensaje adicionales
Console.WriteLine(wsEnvRecep.informacion6);//mensaje adicionales
Console.WriteLine(wsEnvRecep.informacion7);//mensaje adicionales y si fallo mensaje de error

Esta librería esta hecho en C# .Net Framework 4.0 tiene un costo y va incluido el código fuente para que no tengan que estar pagando mensualmente o tenga que pagar por el soporte, la librería ya esta en producción si alguien desea adquirirlo enviarme un correo a rycjesus(arroba)gmail.com

Anónimo dijo...

Estimados tengo en java funcionando la firma, y el envío del archivo XML FIRMADO, sin embargo al pedir respuesta me retorna "MENSAJE 39 FIRMA INVALIDA", si alguna persona ya resolvió este inconveniente agradezco su invaluable ayuda y ofrezco compartir el código. mi correo bonilla1979@hotmail.com

Unknown dijo...

Estimado.
Lee los comentarios anteriores. Ya se pasó la solución a FIRMA INVALIDA

Unknown dijo...

Amigos estoy desarrollando la facturacion electronica en c#, ya me retorna RECIBIDA pero al momento de obtener el xml que tiene que enviar me retorna un objeto vacio, si alguien me puede ayudar por favor.

Raúl Domínguez dijo...

Que tal Jonathan Torres, como estas consumiendo los Servicios web?, hay dos maneras de consumirlos; uno es agregando las referencias a tu proyecto pero necesitas modificar una clase que se llama Reference.cs ya lo he posteado anteriormente y la otra manera de consumir los sw mediante "HttpWebRequest"... a mi punto de vista el segundo metodo es 100% factible, descargate el software que se llama SoapUI y en cuanto lo tengas me escribes para apoyarte hacerlo.. saludos..

Unknown dijo...

Que tal Raul Dominguez, te cuento que estoy haciendo con webreference a decir verdad no lo hago de la otra manera por que no tengo el conocimiento para hacerlo, pero si es necesario lo hare,y por cierto ya tengo el SOAPUI instalado.

Raúl Domínguez dijo...

Jonathan Torres te agregue a g+ escribeme para que podamos hacer pantalla remota y lo vamos realizando..

Saludos.

http://www.roelvanlisdonk.nl/?p=1893

Darío dijo...

Que tal Raul Dominguez me puedes ayudar con los web services se me queda en la siguiente linea
respuesta = (rnd.validarComprobanteResponse)enviovalidacioncomprobante.validarComprobante(validarcomp);

y me dice que no hay conexion con el servidor hasta la vez me puedo conectar.

Saludos
Darío

Raúl Domínguez dijo...

Que tal Darío ese error me sale a mi cuando mi conexión esta lenta, también por que seguido se cae la conexión con el SRI, y una tercera opción es que no hayas agregado correctamente los servicios web a tu proyecto.. puedes corroborar si agregaste bien los serviccios web, ya que deben de aparecer en tu archivo web.config algo asi:
https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes


Comentame cual fue tu respuesta a esto.

Unknown dijo...

Que tal mis estimados, los que deseen generar el ride de una forma facil y sencilla partiendo del xml ya sea autorizado o sin autorizar contactarse conmigo, por favor solo los que esten interesados.

indicar que es sobre el RIDE.

sistemas_orellana@hotmail.com

Suerte en sus proyectos.

Darío dijo...

Raul estoy siguiendo tus pasos ya modifique el archivo reference.cs

pero me sale un error al poner esta linea:
com.respuestaSolicitud xmlRespuesta = (com.respuestaSolicitud)RecepComp.validarComprobante(byte1);

o como debería llamar al metodo validarComprobante lo estoy haciendo pro referencia web.

Saludos
Darío

Raúl Domínguez dijo...

Dario esa linea que tienes reemplazale por esta..:

object[] xmlRespuesta = RecepComp.validarComprobante(byte1);

no hagas ninguna conversión a "com.respuestaSolicitud"

posteriormente validas el estado que te devolvio el sw con esta linea

if ((((System.Xml.XmlNode[])(((object[])(xmlRespuesta [0]))[0]))[0]).FirstChild.Value == "DEVUELTA")

Sí no te queda así te puedo apoyar a consumirlo mediante "httwebprequest" te aseguro que si queda al 100% con el ultimo que te acabo de mencionar.

Anónimo dijo...

Alguien tiene desarrollado un gestor documental para almacenar los comprobantes electronicos y cual seria su costo. Mi correo Bolivar Altamirano bolivaraltamirano146@yahoo.com

Unknown dijo...

Ofrezco solución sencilla para la Facturación Electrónica desarrollada en C# y en Visual Basic, implementada en Visual Fox Pro, Power Builder y en el mismo Visual Studio. Información a este correo jaco-47@hotmail.es o Skype jaco-a_cool@hotmail.com.(Precios Accesibles)

Anónimo dijo...

estimados actualmente esta saliendo este mensaje

Error de la solicitud con el código de estado HTTP 404: Not Found

confirmar si a ustedes les sale lo mismo

apesar de ya tener los procesos alaborados y probados anteriormente

Unknown dijo...

El tema es que el ambiente de certiificacion del sri está super inestable

Anónimo dijo...

Reinaldo Muchas Gracias por tu pronta respuesta


saludos

MalkaSoft A.D.P.I dijo...

Hola amigos de este foro yo ya tengo la solución de la firma electrónica y el consumo de la Web service, la forma de uso es muy sencillo aquí les paso un ejemplo:
FirmaElectronica FirmarElec = new FirmaElectronica();
EnvioResptaWs wsEnvRecep = new EnvioResptaWs();
string cClaveAcceso = FirmarElec.getClaveAcceso(@"D:\FirmarXML\firmar3.xml"); //se recupera la clave de acceso
FirmarElec.Firmar(@"D:\FirmarXML\firmar3.xml", @"D:\FirmarXML\Firmado\" + cClaveAcceso + ".xml", @"D:\FirmarXML\certpfxfact.pfx", "Alfredo01");//Firmando el XML
//Empezando a consumir la Web Service
wsEnvRecep.lPrueba = true; //ambiente de pruebea o produccion
wsEnvRecep.claveacceso = cClaveAcceso;
wsEnvRecep.XmlFirmado = @"D:\FirmarXML\Firmado\" + cClaveAcceso + ".xml";//XML firmado
wsEnvRecep.RutaRptaEnvio = @"D:\FirmarXML\FileXMLRpta";//carpeta para el envio y respuesta
wsEnvRecep.RutaRptaAuto = @"D:\FirmarXML\FileXMLAutComp";//carpeta para ver si fue autorizado
wsEnvRecep.GenEnvioRepuesta();//metodo que consume el Web Service
wsEnvRecep.getInformacion(@"D:\FirmarXML\FileXMLAutComp\" + cClaveAcceso + "_Auto.xml");//Informacion que se requiere para mostrar al usuarior

Console.WriteLine(wsEnvRecep.informacion1);// fue autorizado
Console.WriteLine(wsEnvRecep.informacion2);//Numero de autorizacion
Console.WriteLine(wsEnvRecep.informacion3);//Fecha de autorizacion
Console.WriteLine(wsEnvRecep.informacion4);//mesanjes
Console.WriteLine(wsEnvRecep.informacion5);//mensaje adicionales
Console.WriteLine(wsEnvRecep.informacion6);//mensaje adicionales
Console.WriteLine(wsEnvRecep.informacion7);//mensaje adicionales y si fallo mensaje de error

Esta librería esta hecho en C# .Net Framework 4.0 tiene un costo y va incluido el código fuente para que no tengan que estar pagando mensualmente o tenga que pagar por el soporte, la librería ya esta en producción si alguien desea adquirirlo enviarme un correo a rycjesus(arroba)gmail.com

Unknown dijo...

Estimados buenas noches, para las personas que han tenido la necesidad de poder depurar su base de datos obteniendo los datos reales del nombre de una persona o la razon social de una empresa y saber si esta activo o no ya sea por su cedula o ruc, tengo disponible una aplicacion que hara eso por ustedes pueden cargar los ruc o cedula que desean validar desde una hoja de excel para poder obtener sus datos los que esten interesados les dejo mi correo sistemas_orellana@hotmail.com indicar el motivo que del SRI, solo los que esten interesados, buenas noches suerte en sus proyectos.

Unknown dijo...

Estimados les dejo el codigo de como uso las dll para enviar a autorizar un archivo xml, es sumamente sencillo

Dim ws As New WebServiceSRI.WebService
Dim resSRI As EstadoSRYType = EstadoSRYType.NOAUTORIZADO
'--------------------------------------------------------------------------------------------
Try
'----------------------------------------------------------------------------------------
'ENVIO A AUTORIZAR EL COMPROBANTE XML
'----------------------------------------------------------------------------------------
resSRI = ws.sendComprobante(rutaArchivoXML, rutaRespuestaSRIXML)
'----------------------------------------------------------------------------------------
'VERIFICO SI EL COMPROBANTE FUE AUTORIZADO
'----------------------------------------------------------------------------------------
If resSRI = EstadoSRYType.AUTORIZADO Then
Dim aut As WebServiceSRI.Autorizacion = ws.AutorizacionComprobante.Autorizacion
'------------------------------------------------------------------------------------
MsgBox(String.Format("Clave de Acceso:{1}{0}Tipo Emision:{2}{0}Numero Autorizacion:{3}{0}Fecha Autorizacion:{4}{0}", vbCrLf, ws.ClaveAcceso, ws.TipoEmision, aut.NumeroAutorizacion, aut.FechaAutorizacion))
'------------------------------------------------------------------------------------
aut = Nothing
ElseIf resSRI = EstadoSRYType.NOAUTORIZADO Then
'MUESTRO LOS MENSAJES DE ERROR QUE OBTUVO AL QUERER AUTORIZARLO
For Each mensaje As WebServiceSRI.Mensaje In ws.Mensajes
MsgBox(String.Format("Mensaje Error:{0}", mensaje.InformacionAdicional), MsgBoxStyle.Critical)
Next
Else
'SI ENTRA POR AKY ES PORQUE NO HAY CONEXION A LOS WEBSERVICES DEL SRI
MsgBox("No hay conexion a los webservice del SRI", MsgBoxStyle.Exclamation)
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical)
End Try
'--------------------------------------------------------------------------------------------
ws = Nothing


para los que esten interesados sistemas_orellana@hotmail.com

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Vinfer dijo...

Amigos tengo el siguiente error al comunicarme con el ws de autorizacion, lo extraño esque mi aplicativo funcionaba todo bien, no he realizado cambios y me empieza ha salir este error que lo detallo.., ahora cuando lo mando a correr con la herramienta del sri me dice clave ya registrada..

Exception in thread "AWT-EventQueue-0" javax.xml.ws.WebServiceException: Method autorizacionComprobanteLoteMasivo is exposed as WebMethod, but there is no corresponding wsdl operation with name autorizacionComprobanteLoteMasivo in the wsdl:portType{http://ec.gob.sri.ws.autorizacion}AutorizacionComprobantes
at com.sun.xml.internal.ws.model.JavaMethodImpl.freeze(JavaMethodImpl.java:341)
at com.sun.xml.internal.ws.model.AbstractSEIModelImpl.freeze(AbstractSEIModelImpl.java:94)
at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:241)

Unknown dijo...

Gracias por la ayuda jean carlos muy buenas recomendaciones

«El más antiguo ‹Más antiguo   1 – 200 de 354   Más reciente› El más reciente»