Aunque los lenguajes NET pueden acceder facilmente a los Web Services de la AFIP puede usar la inteface COM del control para trabajar en una forma más rapida y cómoda sin conocer en profundidad los detalles de la implementación de la AFIP.
Este ejemplo usa el identificador "1" como 3°er argumento del método registrar. Debe usar un identificador único y diferente para obtener CAE diferentes en cada ejecución. Después de probar el ejemplo lea toda la documentación referente a "identificador" y "reproceso" para una explicación detallada sobre la función de este argumento.
En un proyecto aplicación de NET cree un formulario y agregue una referencia a la interface COM WSAFIPFE siguiendo estos pasos:
Seleccionar "Proyects\Add Reference"
Seleccionar la solapa "Browse".
Localizar el archivo "WSAFIPFE.DLL" (por defecto en la carpeta c:\archivos de programs\SC"
En el evento click de un control tipo botón insertar el siguiente código.
Dim fe As New WSAFIPFE.factura
Dim lResultado As Boolean
lResultado = fe.iniciar(0, "aqui cuit del certificado sin separador", "aqui ruta del certificado *.pfx", "")
If lResultado Then
lResultado = fe.bObtenerTicketAcceso()
If lResultado Then
fe.bTipo_Doc = 80
fe.bNro_Doc = "aqui cuit del cliente sin separador"
fe.bZona = 0
fe.btipo_cbte = 1
fe.bpunto_vta = 2
fe.bImp_total = 121
fe.bimp_neto = 100
fe.bimpto_liq = 0
fe.bimpto_liq_rni = 0
fe.bimp_op_ex = 0
fe.bImp_perc = 0
fe.bimp_iibb = 0
fe.bImp_internos = 0
fe.bImp_moneda_id = 1
fe.bImp_moneda_ctz = 1
fe.bFecha_cbte = "20090608"
fe.bZona = 1
fe.bitemCantidad = 1
fe.bIndiceItem = 0
fe.bITEMpro_codigo_sec = "0"
fe.bITEMpro_codigo_ncm = "7308.10.00"
fe.bITEMpro_ds = "articulo"
fe.bITEMpro_precio_uni = 100
fe.bITEMpro_qty = 1
fe.bITEMpro_UMed = 7
fe.bITEMIva_id = 1
fe.bITEMimp_total = 100
fe.bITEMimp_bonif = 0
If fe.bRegistrar(2, 1, "41") Then
MsgBox("CAE: " + fe.bRespuestaCAE + Chr(10) + "REPROCESO " + fe.bRespuestaReproceso + Chr(10) + "Evento " + fe.bEventMsg + Chr(10) + "Observacion: " + fe.bRespuestaOBS)
Else
MsgBox("ERROR " + fe.berrmsg + Chr(10) + "OBS: " + fe.bRespuestaOBS + Chr(10) + "ERROR " + fe.bRespuestaOBS + Chr(10) + fe.berrmsg + "ERROR " + Chr(10) + fe.UltimoMensajeError + Chr(10) + "Reproceso: " + fe.bRespuestaReproceso)
End If
Else
MsgBox("Fallo al obtener ticket acceso: " + Chr(10) + fe.UltimoMensajeError)
End If
Else
MsgBox("Control no iniciado")
End If