Está en la página 1de 10

1

2
3
4
5
6
7
8
9
10
11
12
13

public String formatSendPost(String codAcceso){
String xml = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/
envelope/' xmlns:ec='http://ec.gob.sr
"<soapenv:Header/>"+
"<soapenv:Body>"+
"<ec:autorizacionComprobante>"+
"<claveAccesoComprobante>"+codAcceso+"</claveAccesoComprobante>"+
"</ec:autorizacionComprobante>"+
"</soapenv:Body>"+
"</soapenv:Envelope>";
return xml;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

public void getAutorizacion(Document doc) throws XPathExpressionException{


String pathLevelAutorizacon = "//RespuestaAutorizacionComprobante/autorizaciones/
autorizacion[last()]/";
String pathLevelMensajes = "//RespuestaAutorizacionComprobante/autorizaciones/
autorizacion/mensajes[last()]/mensaje/"
String estado = getLastNode(pathLevelAutorizacon, "estado", doc);         
if(estado.equals("AUTORIZADO")){
System.out.println(
"Estado: " + getLastNode(pathLevelAutorizacon,"estado", doc)+"\n"+
"N° Auto: " + getLastNode(pathLevelAutorizacon,"numeroAutorizacion", doc)+"\n"+
"Fecha Auto: " + getLastNode(pathLevelAutorizacon,"fechaAutorizacion", doc)+"\n"+
"Ambiente: " + getLastNode(pathLevelAutorizacon,"ambiente", doc)
);
}else if(estado.equals("NO AUTORIZADO")){
System.out.println(
"Estado: " + getLastNode(pathLevelAutorizacon,"estado", doc)+"\n"+
"Fecha Auto: " + getLastNode(pathLevelAutorizacon,"fechaAutorizacion", doc)+"\n"+
"Ambiente: " + getLastNode(pathLevelAutorizacon,"ambiente", doc)+"\n"+
"Identificador: " + getLastNode(pathLevelMensajes,"identificador", doc)+"\n"+
"Mensaje: " + getLastNode(pathLevelMensajes,"mensaje", doc)+"\n"+
"Tipo: " + getLastNode(pathLevelMensajes,"tipo", doc));
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

public boolean
getRequestSoap(String urlWebServices, String method, String host, String getEncodeX
ML, Proxy proxy) throws I
try {
URL oURL = new URL(urlWebServices);
HttpURLConnection con = (HttpURLConnection) oURL.openConnection(proxy);
con.setDoOutput(true);
con.setRequestMethod(method);
con.setRequestProperty("Content‐type", "text/xml; charset=utf‐8");
con.setRequestProperty("SOAPAction", "");
con.setRequestProperty("Host", host);       
OutputStream reqStreamOut = con.getOutputStream();
reqStreamOut.write(getEncodeXML.getBytes());                                      
System.out.println(con.getErrorStream());
java.io.BufferedReader rd = new java.io.BufferedReader(new
java.io.InputStreamReader(con.getInputStream(), "UTF8")
String line = "";
StringBuilder sb = new StringBuilder();
while ((line = rd.readLine()) != null)
sb.append(line);
//System.out.println(sb.toString());
Document doc = xml_utilidades.convertStringToDocument(sb.toString());
getAutorizacion(doc);
con.disconnect();
return true;
}catch (Exception ex) {
System.out.println(ex.getMessage());
}
return false;
}
Comentarios (22)

AÑADIR NUEVO

Anónimonimo Viernes, 13 Febrero 2015


Amigo, eres un bacan!... de veras muchisimas gracias... una pregunta adicional
supongo que en String getEncodeXML en la funcion
getRequestSoap() se debe enviar lo que retorna la funcion formatSendPost(String
codAcceso) verdad?
1
CITAR RESPONDER
Anónimonimo Viernes, 13 Febrero 2015
Esacto igual que en el web services de recpción de comprobantes..
0
CITAR RESPONDER
Anónimonimo Lunes, 02 Marzo 2015
alguna idea de como hacer lo mismo con .net
0
CITAR RESPONDER
Anónimonimo Lunes, 16 Marzo 2015
Hola buenos dias, estoy desarrollando PHP y Yii, realizando pruebas, pido su ayuda,
me conecto al web services SRI envio mi clave de
acceso y retorna stdClass Object ( [RespuestaAutorizacionComprobante] => stdClass
Object ( [numeroComprobantes] => 0
[autorizaciones] => stdClass Object ( ) ) ) , pero tengo el comprobante en ambiente
de pruebas y no tengo respuesta alguna persona que
me ayude
0
CITAR RESPONDER
Victor Miércoles, 18 Marzo 2015
Buenas noches colegas!!!
Les cuento que el Envío y Recepción de Autorización de comprobantes electrónicos
usando los Web Services del SRI ya lo tengo resuelto
en C#. Por el momento lo estoy adaptando para lograr un flujo similar al planteado
aquí por Cristhian y en los próximos días lo publicaré.
Saludos a todos.
1
CITAR RESPONDER
Victor Lunes, 30 Marzo 2015
Revisen el link este. Ya está publicado el código prometido
0
CITAR RESPONDER
Anónimo Sábado, 11 Abril 2015
Amigo podrias darme tu correo para contactarte ???
0
CITAR RESPONDER
Anónimo Lunes, 30 Marzo 2015
Hola Christian, probé el codigo en JAVA y funca super bien, le hice una pequeña
modificacion para que me guarde el XML consultado,
pero me doy cuenta que me lo guarda en un formato diferente (no le veo la CDATA por
ningun lado), mi pregunta es ¿hay que hacer algun
proceso de conversion o modificacion del XML recibido?., si lo guardo tal cual y
ese lo envio al receptor del documento ¿estoy
incumpliendo con alguna norma del SRI?
Gracias
Rolando
0
CITAR RESPONDER
Cristhian Carreño Arce Martes, 31 Marzo 2015
Referente al SRI, a ellos solo les interesa que tu envíes el xml con todos los
detalles de la factura, si todo va bien te envían el código de
autorización. Referente a lo que intentas hacer de guardar el XML no existe razón
de hacerlo, debido que todos los datos que tu envías al
SRI, ya los tienes en tu BD, lo único diferente q te devuelve el SRI es el código
de autorización, ahora si yo he puesto como extraer los
datos del xml recibido por el SRI, se debe a que quiero saber en q estado quedo el
envío y recepción de mi comprobante, si lo acepto o no.
Ahora si lo que quieres es formar tu reporte, coge los datos de tu BD más el dato
de autorización q te devuelve cuando un comprobante
estuvo OK. Lo del CDATA, es para almacenar información adicional a la estructura
XML ya formada, eso e visto que se aplica en los
reportes, el SRI también t devuelve algo así, pero insisto eso no te serviría por
que tu ya tienes todos esos datos.
1
CITAR RESPONDER
Anónimo Miércoles, 01 Abril 2015
Gracias Cristhian por tu explicacion, el motivo por lo que guardo el XML es para la
custodia del mismo, cuando genero el XML desde
el aplicativo gratuito del SRI lo guarda en un formato que tiene CDATA, cuando lo
genero con tu rutina me lo guarda sin CDATA (en
la cadena de respuests no viene cdata),esa es mi gran duda.
gracias
Rolando
0
CITAR RESPONDER
Cristhian Carreño Arce Lunes, 13 Abril 2015
Por favor colaborar con código para el proyecto en PHP existen muchas personas que
necesitan instrucciones. Gracias a esos buenos
colaboradores del Software Libre.
1
CITAR RESPONDER
Alejandro Quiroz Miércoles, 15 Abril 2015
Estimado Cristian, estoy en desarrollo de tu excelente proyecto con PHP. Estimo
tenerlo listo a finales del mes de mayo en Github o
Bitbucket (por cuestiones de tiempo) para que sea parte de este proyecto y por
supuesto sea de libre acceso. Gracias por tan excelente
trabajo y explicaciones sobre este proceso que debe ser de conocimiento público y
general para los desarrolladores en Ecuador.
1
CITAR RESPONDER
Cristhian Carreño Arce Miércoles, 15 Abril 2015
Gracias, la comunidad estará en espera de tu aporte...
1
CITAR RESPONDER
Anónimo Jueves, 30 Abril 2015
ESIMADO ALEJANDRO QUIROZ ESTOY TRABAJANDO EN UN PROYECTO EN PHP FACTURACION
ELECRONNICA CON LA
FINALIDAD DE APORTAR CON ALGO A LA COMIDAD DE DESARROLO DE SOFWARE LIBRE SERA QUE
ME AYUDAS CON LO
QUE TE GIUASTES PARA NO MORIR EN EL INTENTO
0
CITAR RESPONDER
Anónimo Jueves, 30 Abril 2015
Alejandro Quiroz Escrito:
Estimado Cristian, estoy en desarrollo de tu excelente proyecto con PHP. Estimo
tenerlo listo a finales del mes de mayo en Github o
Bitbucket (por cuestiones de tiempo) para que sea parte de este proyecto y por
supuesto sea de libre acceso. Gracias por tan
excelente trabajo y explicaciones sobre este proceso que debe ser de conocimiento
público y general para los desarrolladores en
Ecuador.
0

CITAR RESPONDER

Cristhian Carreño Arce Sábado, 09 Mayo 2015


Por favor colegas evitar a este tipo "sistemas_orellana@hotmail.com" que está
haciendo mercadeo en la página borré sus comentarios y le
deje un mensaje q vaya a publicar sus anuncios a OLX o Mercado Libre. Si no vienes
a colaborar no tienes nada que hacer aquí...
0
CITAR RESPONDER
Anónimo Lunes, 11 Mayo 2015
Saludos, amigos, realmente me han ayudado bastante, tenia algun codigo pero aqui
pude resolverlo,ahora la cuestion es la
siguiente,alguien tiene codigo, cuando esta autorizado el XML transformarlo en PDF
con dicha autorizacion, si sabe alguien, seria
buenazo y se les agradeceria bastante...
0
CITAR RESPONDER
Victor Martes, 12 Mayo 2015
Estimado Anónimo, no tengo el código todavía, pero si te sirve de guía yo lo estoy
haciendo con iTextSharp ya que esta librería te permite
generar archivos PDF e insertar imágenes, códigos de barras, tablas, etc. Me parece
la mejor opción.
0
CITAR RESPONDER
Anónimo Hace 4 semanas
Victor y has logrado poner la informacion adicional debajo de la tabla de
detalle ?? asi como esta en el formato RIDE en la Pagina del
SRI
0
CITAR RESPONDER
Anónimo Hace 4 semanas
Victor y has logrado poner la informacion adicional debajo de la tabla de
detalle ?? asi como esta en el formato RIDE en la Pagina del SRI
0

CITAR RESPONDER

Anónimo Hace 2 semanas


Amigo y tienes de como se guarda el Archivo XML con el CDATA ??
0
CITAR RESPONDER
Cristhian Carreño Arce Hace 1 día
Soy el creador de este sitio, por favor alguien q haya tenido avances realizando el
proyecto en PHP, por favor que colabore con
información para poder publicarla, existen muchos colegas que tienen dudas,
gracias..
0
CITAR RESPONDER

Comentarios desarrollados por CComment


A USTED TAMBIÉN PODRÍA GUSTARLE:

Presentación Facturas en
La Web usando Vaadin
(Framework Java)

Consumo de Web
Services SRI - Envío de
Comprobantes .net ( C# )

Consumo de Web
Services SRI - Envío de
Comprobantes

SRI Firma Digital


XadES-BES en Java con
extensión .net,
C#(Corrección)

También podría gustarte