CANCELANDO CDFI DE FEL

Para quienes programan Visual Basic aqui esta la solucion
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
cpedgarbm
Mensajes: 1
Registrado: Mar Ago 25, 2015 11:49 am

CANCELANDO CDFI DE FEL

Mensajepor cpedgarbm » Mié Ago 26, 2015 9:47 am

para cancelar un CFDI con FEL se requiere construir un XML y anexar el certificado en Base64 lo cual se puede hacer con OPEN SSL hasta obtener el archivo CertificadoPkcs12_base64 el contenido de este archivo es el que se anexa al XML de envío de cancelacion y se envía FEL.

El asunto es que estoy programando en visual Basic 6.0 y no encuentro la forma de anexar el contenido de ese archivo a mi XML, ¿alguien conoce la forma?

Gracias anticipadas por sus aportaciones.

jggtz
Mensajes: 313
Registrado: Lun Oct 10, 2011 12:50 pm
Ubicación: jggtz@hotmail.com

Re: CANCELANDO CDFI DE FEL

Mensajepor jggtz » Mié Ago 26, 2015 5:08 pm

Cuando desarrollo con VB6, Yo utilizo la libreria Microsoft XML v6.0 (msxml6.dll) para manipular archivos xml y
la libreria Microsoft SOAP type library v3.0 para armado de xml de envio

Pegales una estudiada...

danielperezvargas
Mensajes: 2
Registrado: Sab Oct 24, 2015 10:12 pm

Re: CANCELANDO CDFI DE FEL

Mensajepor danielperezvargas » Sab Oct 24, 2015 10:36 pm

Bueno apenas vi tu mensaje.

espero no sea muy tarde pero de todos modos te paso el código que empleo para cancelar en FEL.

Saludos.

1) Primero obtienes la cadena del certificado base 64 con el openssl sin tocar nada de visual studio:

ver archivo adjunto.

2) código en visual basic
donde:
UsuarioPAC = Dato proporcionado por FEL
PasswordPAC = Dato proporcionado por FEL
RFCEmisor = FRC del Emisor
ListaUUID.ToArray() = Lista de UUID's que se van a cancelar (funciona aunque envíes uno solo)
CSDCertificadoBase64 = texto obtenido tal cual como lo obtienes del "Archivo.pem" abriendolo con el block de notas.
CSDcontrasenaLlavePrivada = texto plano de la contraseña de la llave privada de tu CSD.

'Consumir el servicio (Para cancelar un CFDI).
RespuestaServicio_FEL = ServicioTimbrado_FEL.CancelarCFDI(UsuarioPAC, PasswordPAC, RFCEmisor, ListaUUID.ToArray(), CSDCertificadoBase64, CSDcontrasenaLlavePrivada)

'Se asigna la respuesta al objeto que contendrá la operación de todos los UUID a cancelar.
RespuestaCancelacionDetallada_FEL = RespuestaServicio_FEL.DetallesCancelacion.ToList()

'Se recorre el objeto para obtener la operacion independiente de cada CFDi.
For Each UUID As WSFel2015.DetalleCancelacion In RespuestaCancelacionDetallada_FEL

If UUID.CodigoResultado = "201" Or UUID.CodigoResultado = "202" Then

Dim doc As New System.Xml.XmlDocument
Try
doc.LoadXml(RespuestaServicio_FEL.XMLAcuse)
doc.Save("C:\Archivos de programa\xxxxxx\ArchivosCFDICancelados\" & ListaUUID(0) & ".xml")
Catch ex As Exception
End Try

'valores devueltos en caso de ser exitosa la cancelacion:
MsgBox(UUID.CodigoResultado)
MsgBox(UUID.MensajeResultado)
MsgBox(UUID.UUID)

Else

'valores devueltos en caso de ser erronea la cancelacion:
MsgBox(UUID.CodigoResultado)
MsgBox(UUID.MensajeResultado)
MsgBox(UUID.UUID)

MsgBox("Error al cancelar el recibo en el Sat, intente nuevamente. Error: " & UUID.CodigoResultado & ", " & UUID.MensajeResultado)
Return False

End If

Next


Saludos.
Adjuntos
Cancelación de CFDI con facturación FEL.docx
adjunto cancelación fel
(16.75 KiB) Descargado 184 veces


Volver a “Visual Basic”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado