Validación de Factura Electrónica SAT
Hola,voy iniciando en la programación y tengo varias dudas y espero me puedan ayudar.
estoy realizando un proyecto para la validación de la factura electrónica de una compañía, lo que ellos requieren es extraer un xml de X BD y enviarlo al web Service del SAT para que responda a la solicitud del estatus de la factura.
Ya cree el proyecto en Java y al poner la ruta del WSDL del SAT me crea varias clases, pero mi pregunta es, ¿Como Hago para que extraiga el xml, y lo mande para su validación? Y por otro lado no genera el Protocolo SOAP mas sin en cambio genera uno llamado BasicHttpBinding_IConsultaCFDIServiceStub.java, el cual por lo que eh leído es parecido pero no se como usarlo, espero me puedan apoyar, y les pido una disculpa si mi pregunta es muy abierta, pero cualquier aporte me seria de mucha ayuda les agradezco su tiempo.
les dejo el código de la clase que contiene los métodos principales
/**
* Acuse.java
*
* This file was auto-generated from WSDL
* by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
*/
package org.datacontract.schemas._2004._07.Sat_Cfdi_Negocio_ConsultaCfdi_Servicio;
public class Acuse implements java.io.Serializable {
private java.lang.String codigoEstatus; //Private
private java.lang.String estado; //Private
public Acuse() {
}
public Acuse(
java.lang.String codigoEstatus,
java.lang.String estado) {
this.codigoEstatus = codigoEstatus;
this.estado = estado;
}
/**
* Gets the codigoEstatus value for this Acuse.
*
* @return codigoEstatus
*/
public java.lang.String getCodigoEstatus() {
return codigoEstatus;
}
/**
* Sets the codigoEstatus value for this Acuse.
*
* @param codigoEstatus
*/
public void setCodigoEstatus(java.lang.String codigoEstatus) {
this.codigoEstatus = codigoEstatus;
}
/**
* Gets the estado value for this Acuse.
*
* @return estado
*/
public java.lang.String getEstado() {
return estado;
}
/**
* Sets the estado value for this Acuse.
*
* @param estado
*/
public void setEstado(java.lang.String estado) {
this.estado = estado;
}
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof Acuse)) return false;
Acuse other = (Acuse) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
__equalsCalc = obj;
boolean _equals;
_equals = true &&
((this.codigoEstatus==null && other.getCodigoEstatus()==null) ||
(this.codigoEstatus!=null &&
this.codigoEstatus.equals(other.getCodigoEstatus()))) &&
((this.estado==null && other.getEstado()==null) ||
(this.estado!=null &&
this.estado.equals(other.getEstado())));
__equalsCalc = null;
return _equals;
}
private boolean __hashCodeCalc = false;
public synchronized int hashCode() {
if (__hashCodeCalc) {
return 0;
}
__hashCodeCalc = true;
int _hashCode = 1;
if (getCodigoEstatus() != null) {
_hashCode += getCodigoEstatus().hashCode();
}
if (getEstado() != null) {
_hashCode += getEstado().hashCode();
}
__hashCodeCalc = false;
return _hashCode;
}
// Type metadata
private static org.apache.axis.description.TypeDesc typeDesc =
new org.apache.axis.description.TypeDesc(Acuse.class, true);
static {
typeDesc.setXmlType(new javax.xml.namespace.QName("http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio", "Acuse"));
org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("codigoEstatus");
elemField.setXmlName(new javax.xml.namespace.QName("http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio", "CodigoEstatus"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setMinOccurs(0);
elemField.setNillable(true);
typeDesc.addFieldDesc(elemField);
elemField = new org.apache.axis.description.ElementDesc();
elemField.setFieldName("estado");
elemField.setXmlName(new javax.xml.namespace.QName("http://schemas.datacontract.org/2004/07/Sat.Cfdi.Negocio.ConsultaCfdi.Servicio", "Estado"));
elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
elemField.setMinOccurs(0);
elemField.setNillable(true);
typeDesc.addFieldDesc(elemField);
}
/**
* Return type metadata object
*/
public static org.apache.axis.description.TypeDesc getTypeDesc() {
return typeDesc;
}
/**
* Get Custom Serializer
*/
public static org.apache.axis.encoding.Serializer getSerializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanSerializer(
_javaType, _xmlType, typeDesc);
}
/**
* Get Custom Deserializer
*/
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanDeserializer(
_javaType, _xmlType, typeDesc);
}
}
- Inicie sesión o regístrese para enviar comentarios
Re: Validación de Factura ...
Según hay un manual [PDF] pero es como si no tuvieras nada.
Por lo pronto, he aquí un pequeño ejemplo:
~~~
Validación de Factura Electrónica SAT
Muchas gracias compañero el ejemplo que me proporcionas me a generado un gran avance, ya que genera los estatus de respuesta del acuse, de nueva cuenta gracias