Timbrado con Diverza

Todo lo que no cabe en los demas foros........
Moises_F
Mensajes: 8
Registrado: Lun Oct 09, 2017 9:44 pm

Re: Timbrado con Diverza

Mensajepor Moises_F » Mié Oct 11, 2017 2:34 pm

Por nada Juan Gilberto, suerte.

Saludos.

Moisés Fabro.

mixer
Mensajes: 9
Registrado: Dom Sep 26, 2010 5:19 am

Re: Timbrado con Diverza

Mensajepor mixer » Jue Oct 19, 2017 2:53 am

Buen dia, saben si ya esta funcionando la cancelacion de CFDI con Diverza V3.3?

techsjll63
Mensajes: 9
Registrado: Vie Oct 20, 2017 2:09 pm

Re: Timbrado con Diverza

Mensajepor techsjll63 » Vie Oct 20, 2017 3:29 pm

Buenas tardes todos, tengo varios años ya timbrando con diverza, mi desarrollo esta hecho en vb6 y hasta la versión 3.2 del XML no había tenido problemas, pero con este cambio tan drástico no he podido hacer que me acepte el archivo XML en base64, lo curioso es que estoy utilizando la misma rutina que uso en la versión 3.2
Lo que he visto en este foro es que todos están usando vb net, ojala haya alguien que este programando igual en vb6

Esta es la respuesta que obtengo:

Código: Seleccionar todo

{"stage":"content_reading","request_headers":[{"host":"10.223.80.42:4012"},{"accept":"*/*"},{"accept-language":"es-mx"},{"x-auth-token":"ABCD1234"},{"content-type":"application/json"},{"accept-encoding":"gzip, deflate"},{"user-agent":"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)"},{"cache-control":"no-cache"},{"cookie":"_ga=GA1.2.1900153654.1486992001"},{"x-forwarded-for":"189.162.119.26"},{"x-forwarded-host":"serviciosdemo.diverza.com"},{"x-forwarded-server":"serviciosdemo.diverza.com"},{"connection":"Keep-Alive"},{"content-length":"5928"}],"message":"The request content in body is not valid","level":5,"error_id":4095262,"error_details":"[{\"document.content\":\"is invalid, it must be in base64\"}]","comp_error_details":[{"document.content":"is invalid, it must be in base64"}],"code":4352}

jggtz
Mensajes: 357
Registrado: Lun Oct 10, 2011 12:50 pm

Re: Timbrado con Diverza

Mensajepor jggtz » Vie Oct 20, 2017 7:00 pm

Me paso lo mismo en un paquete que he venido actualizando desde hace algunos ayeres...
Tuve que cambiar todas las rutinas de generacion cfdi , sellado, armado de request, etc.

Actualmente estoy utilizando la libreria de Chilkat para armar request y response... hice que el cliente comprara chilkat ... creo que la parte de convertir a base64 es libre uso...

techsjll63
Mensajes: 9
Registrado: Vie Oct 20, 2017 2:09 pm

Re: Timbrado con Diverza

Mensajepor techsjll63 » Sab Oct 21, 2017 7:38 am

Saludos jggtz, tu ya pudiste timbrar todos las variantes que tiene el XML 3.3???,
Me podrias decir de donde descargar el Chilkat para ver si asi ya puedo generar el archivo en base 64.

jggtz
Mensajes: 357
Registrado: Lun Oct 10, 2011 12:50 pm

Re: Timbrado con Diverza

Mensajepor jggtz » Sab Oct 21, 2017 8:29 am

https://www.chilkatsoft.com/

Con esas librerias puedes armar tambien el json del request

techsjll63
Mensajes: 9
Registrado: Vie Oct 20, 2017 2:09 pm

Re: Timbrado con Diverza

Mensajepor techsjll63 » Sab Oct 21, 2017 11:33 am

Gracias jjgtz por el link, aunque déjame comentarte que ya lo había visto, pero como vi que solo te funcionaba por 30 días, por eso no lo utilice, aunque si me intereso cuando lei tu mensaje donde comentabas que esa función puede ser gratuita.
En cuanto al archivo JSON, ya lo tengo generado, el problema que tengo es que el XML en base64 no me lo acepta, esta es la rutina que utilizo:

Código: Seleccionar todo

Private Function encodeBase64(ByRef arrData() As Byte) As String
    Dim objXML As MSXML2.DOMDocument
    Dim objNode As MSXML2.IXMLDOMElement
   
    Set objXML = New MSXML2.DOMDocument
   
    Set objNode = objXML.createElement("b64")
    objNode.DataType = "bin.base64"
    objNode.nodeTypedValue = arrData
    encodeBase64 = objNode.Text
 
    Set objNode = Nothing
    Set objXML = Nothing
End Function


Lo mas curioso es que es la misma rutina que utilizo para versión 3.2, y ahí nunca tuve problemas.

jggtz
Mensajes: 357
Registrado: Lun Oct 10, 2011 12:50 pm

Re: Timbrado con Diverza

Mensajepor jggtz » Sab Oct 21, 2017 1:19 pm

Es el mismp codigo que yo tengo para 3.2
Probablemente deje pasar CR o LF o headers o trailers...
Ahora los PAC estan mas estrictos
Ademas, en mi opinion, Diverza mando maquilar todo lo relacionado con CFDI 3.3...y es completamente nuevo

El codigo que actualmente utilizo para convertir a base64 es el siguiente:

Código: Seleccionar todo

'Declaration
Private Declare Function WideCharToMultiByte Lib "kernel32" ( _
    ByVal CodePage As Long, _
    ByVal dwFlags As Long, _
    ByVal lpWideCharStr As Long, _
    ByVal cchWideChar As Long, _
    ByVal lpMultiByteStr As Long, _
    ByVal cbMultiByte As Long, _
    ByVal lpDefaultChar As Long, _
    ByVal lpUsedDefaultChar As Long) As Long
   
'CodePage constant for UTF-8
Private Const CP_UTF8 = 65001


'Return byte array with VB "Unicode" string encoded in UTF-8
Public Function Utf8BytesFromString(strInput As String) As Byte()
   
    Dim nBytes      As Long
    Dim abBuffer()  As Byte
   
    'Get length in bytes *including* terminating null
    nBytes = WideCharToMultiByte(CP_UTF8, 0&, ByVal StrPtr(strInput), -1, vbNull, 0&, 0&, 0&)
   
    'We don't want the terminating null in our byte array, so ask for `nBytes-1` bytes
    ReDim abBuffer(nBytes - 2)  ' NB ReDim with one less byte than you need
   
    nBytes = WideCharToMultiByte(CP_UTF8, 0&, ByVal StrPtr(strInput), -1, ByVal VarPtr(abBuffer(0)), nBytes - 1, 0&, 0&)
    Utf8BytesFromString = abBuffer
   
End Function


'My Code
'   XMLFactura.XML is the xml string

    'Convert XML to ByteArray (UTF-8)
    Dim MyByte()    As Byte
    MyByte = Utf8BytesFromString(XMLFactura.XML)
   
   
    'Convert to Base64
    Dim MyBase64    As String
    Dim lo_CkCrypt  As New Chilkat_v9_5_0.ChilkatCrypt2
    With lo_CkCrypt
        .Charset = "unicode"
        .CryptAlgorithm = "none"
        .EncodingMode = "base64"
    End With
    MyBase64 = lo_CkCrypt.EncryptBytesENC(MyByte)
    Set lo_CkCrypt = Nothing
   

'add xml in base64 to json request
    success = document.AddStringAt(-1, "content", MyBase64)
   


Baja el Chilkat Crypt aunque sea trial de 30... instala... prueba... creo que ese modulo (y otros) son libres

techsjll63
Mensajes: 9
Registrado: Vie Oct 20, 2017 2:09 pm

Re: Timbrado con Diverza

Mensajepor techsjll63 » Lun Oct 23, 2017 9:46 am

Buenos dias jggtz, te agradezco tu ayuda, ya pude generar el XML en base64, me sacaste del hoyo en el que estaba
De verdad muchísimas gracias.
Ahora a continuar con las validaciones de diverza.

jggtz
Mensajes: 357
Registrado: Lun Oct 10, 2011 12:50 pm

Re: Timbrado con Diverza

Mensajepor jggtz » Lun Oct 23, 2017 10:51 am

De nada techsjll63

A la orden, cuando se pueda ayudar...
Por aqui andaremos

Juan Gilberto Gutierrez


Volver a “Otros”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados