Función VirtualXML_MasivaVerifica VirtualXML
Esta función realiza la verificación del estado de las peticiones de descarga de información realizadas al SAT previamente con las funciones correspondientes:
  1. Solicitud de Metadata de XML Emitidos (VirtualXML_MasivaSolicitaEmitidoMetadata())
  2. Solicitud de Metadata de XML Recibidos (VirtualXML_MasivaSolicitaRecibidoMetadata())
  3. Solicitud de descarga masiva de XML Emitidos (VirtualXML_MasivaSolicitaEmitidoXML())
  4. Solicitud de descarga masiva de XML Recibidos(VirtualXML_MasivaSolicitaRecibidoXML())
Si el resultado de la ejecución de estas funciones es exitoso, el resultado se almacena en un archivo .INI que contiene una entrada llamada IDSOLICITUD, es este valor el que servirá para validar el estado de la petición.

Namespace:
 VirtualXML®
Aplicación: CFDI ver. 3.3
Sintaxis

public static long VirtualXML_MasivaVerifica(
String Usuario,
String ArchivoCerFiel,
String ArchivoKeyFiel,
String PwdKey,
String IdSolicitud,
String ArchResultado,
String ArchLog,
String Reservado)

Parametros

Usuario
Tipo: System  String
Nombre del usuario VirtualPAC (el mismo que se utiliza en el portal de asignación de timbres)
ArchivoCerFiel
 Tipo: System  String
Ubicación (ruta y nombre del archivo) del Archivo .CER correspondiente a la FIEL del emisor.
ArchivoKeyFiel
Tipo: System  String
Ubiación (ruta y nombre del archivo) del Archivo .KEY correspondiente a la FIEL del emisor.
PwdKey
Tipo: System  String
Password del Archivo .KEY de la FIEL del emisor.
IdSolicitud
Tipo: System  String
Parámetro para indicar la IDSOLICITUD obtenida previamente mediante el uso de las funciones de petición. Este valor se encuentra en el archivo .INI que generan las funciones de petición cuando la petición es recibida correctamente por el SAT.
ArchResultado
Tipo: System  String
El resultado de la petición será devuelto en un archivo con el formato INI cuyo nombre se debe indicar en este parámetro (indicar la extensión ".INI" en el nombre).
En este archivo se encuentra un segundo identificador que nos indicara cuantos "paquetes" de información recibimos como resupuesta a la petición en la entrada PAQUETES. Cabe mencionar que, dependiendo del volumen de información obtenida, una sola petición puede generar mas de 1 paquete de información para descarga, el numero de paquete se identifica por los dos ultimos digitos del valor de la entrada:
	[VirtualXML]
IDSOLICITUD = fef63edl-1041-402f-b678-b42126b9f66d

PAQUETES = FEF63ED1-1041-402F-B678-B42126B9F66D_01

FUNCTIONCALL = VirtualXML_MasivaSolicitaEmitido
ArchLog
Tipo: System  String
Nombre del archivo que guardará la bitácora de la petición (necesario para depurar errores).
Reservado
Tipo: System  String
Parmetro sin valor para usos futuros.

Valor retornado:

Tipo: Int32


La función puede devolver los siguientes valores:

  • 0 la verificación se realizó con éxito, revise el archivo .INI para obtener el ID y el numero de paquetes resultado de la petición.
  • 1,2 ó 4 petición en proceso de ser atendida, verifique nuevamente mas tarde
  • 5 ó 6 La verificación no arroja resultado ya sea porque la solicitud esta vencida o fue rechazada, no es necesario volver a verificar, si lo desea puede generar otra petición nueva con menos datos, quizá reduciendo el rango de fechas de recuperación
  • Cualquier otro valor: Errores varios, error de comuncacion, error de certficados, etc, verifique sus datos y vuelva a verificar mas tarde.

Ejemplo

private void ValidaPeticionDescarga(Int error)
{
// Iniciamos solicitud de XMLs emitidos de todo el año 2020 para todos los receptores
    int nResultado = VirtualXML_MasivaSolicitaRecibidoXml("cibertec","archivo.cer","archivo.key","password","","2020-01-01T00:00:00","2020-12-31T23:59:59","Resultado.INI","bitacora.log","");

if
( nResultado != 0 )
{
// Ocurrio un Error
MsgBox("Error en la solicitud de descarga" );
}
else
{
// Todo correcto procede a recuperar el ID de la peticion
  MsgBox("Solicitud generada con exito, revise el archivo Resultado.INI para obtener el ID de la peticion" ); 
// Obtenemos del archivo .INI el identificador de solicitud    
// ....
// Procedemos a verificar si la descarga esta lista, suponiendo que el valor en el INI de la entrada IDSOLICITUD = fef63edl-1041-402f-b678-b42126b9f66d

int nVerifica = VirtualXML_MasivaVerifica("cibertec","archivo.cer","archivo.key","password","fef63edl-1041-402f-b678-b42126b9f66d","Verifica.INI","bitacoraverifica.log","");

// Validamos la respuesta

switch ( nVerifica )
{
case 0:
// Se ha verificado la peticion satisfactoriamente
MsgBox("Peticion validada correctamente, revise el archivo Verifica.INI para obtener el listado de paquetes");
break;
case 1:
// Peticion en Proceso
MsgBox("Peticion en proceso de ser atendida, intente mas tarde");
break;
case 2:
// Peticion en Proceso
MsgBox("Peticion en proceso de ser atendida, intente mas tarde");
break;
case 4:
  // Peticion en Proceso
MsgBox("Peticion en proceso de ser atendida, intente mas tarde");
break;
case 5;
// Peticion vencida
MsgBox("Su peticion a expirado sin respuesta, genere una nueva solicitud");
break;
case 6:
// Peticion rechazada
MsgBox("Su peticion ha sido rechazada por el SAT, genere una nueva solicitud");
break;
}
}
Veáse También:


                                   VirtualXML_MasivaSolicitaEmitidoMetadata()
                                   VirtualXML_MasivaSolicitaEmitidoXML()
                                   VirtualXML_MasivaSolicitaRecibidoMetadata()
                                   VirtualXML_MasivaSolicitaRecibidoXML()
                                   VirtualXML_MasivaDescarga()