Consulta Facturación Electrónica - Bravo

52 views
Skip to first unread message

Marcos Chicote

unread,
Sep 30, 2016, 10:01:26 AM9/30/16
to rub...@googlegroups.com
Buenas!
Tengo dos consultas cortitas y al pie sobre Bravo:
Muchas gracias!!

Mariano Matayoshi

unread,
Sep 30, 2016, 10:18:01 AM9/30/16
to rub...@googlegroups.com
Marcos! como va?

Creo q la de leanucci está más actualizada. En su momento me había forkeado la de leanucci para hacer unos cambios, porque vi que tenía unos errores y nunca le tire el PR, no se si fueron arreglados o no.

La gema te devuelve el CAE y la fecha de vencimiento del mismo. Queda en vos armar la factura en HTML o como mejor te parezca.

Saludos!



--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.


Mariano Matayoshi

Mariano Cruceño

unread,
Sep 30, 2016, 10:22:22 AM9/30/16
to rub...@googlegroups.com

Hola Marcos, yo use la versión de Mariano. La otra me parece que está más avanzada. Igual le hice algunos cambios funcionando un poco de ambas.
Lo que haces es generar tu factura, le pasas los parámetros que pide Bravo y te devuelve el cae junto a varios datos más. Esa factura podés generar un PDF (como una factura común, solo que es válida ya que el número te lo define el afip). Y ese PDF podés enviarlo al cliente. A la hora de definir los datos de la factura, si es responsable inscripto principalmente, es bueno considerar los datos que después piden en los citi venta.

Saludos y éxitos


--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.

Marcos Chicote

unread,
Sep 30, 2016, 11:46:42 AM9/30/16
to rub...@googlegroups.com
Buenísimo, gracias!
Y hay algo que me genere una factura estandar? Medio que tengo que implementar esto a los pedos. Cuanto tiempo lleva la burocracia con la AFIP?

Saludos!

Mariano Cruceño

unread,
Sep 30, 2016, 12:31:08 PM9/30/16
to rub...@googlegroups.com

No se si hay algo para la confección de la factura, para la gema armas los certificados como indica. Ahora afip cambio a certificados sha-2 estábamos usando sha-1. Seguís los pasos que te indican y listo. Lo que si una parte para habilitar el punto de venta electrónico y que funcione el certificado en producción lo hizo un contador. Es relativamente rápido.

Saludos

Marcos Chicote

unread,
Sep 30, 2016, 3:15:53 PM9/30/16
to rub...@googlegroups.com
Joya gracias!!

Marcos Chicote

unread,
Oct 13, 2016, 3:43:52 PM10/13/16
to rub...@googlegroups.com
Hola Mariano, Mariano,
Me está tirando un error de SSL cuando intenta obtener de la AFIP el próximo de factura. Simplemente se cierra el socket. Pasaba, dejó de pasar, y ahora volvió a pasar. Se les ocurre algo? Puede haber sido por intentar muchas veces o algo asi?

Gracias!

Mariano Cruceño

unread,
Oct 13, 2016, 3:47:00 PM10/13/16
to rub...@googlegroups.com

Hola el error es en el proceso de autenticación? A mi me dejaba generar un día y al siguiente nada. Salvo que reinicie la app.
No se si es lo mismo que te pasa.

Saludos

Marcos Chicote

unread,
Oct 13, 2016, 3:51:19 PM10/13/16
to rub...@googlegroups.com
Me falla aca: https://github.com/leanucci/bravo/blob/master/lib/bravo/reference.rb#L10
pero no la zafo ni reiniciando la app

Luis Lavena

unread,
Oct 13, 2016, 3:55:57 PM10/13/16
to rub...@googlegroups.com
2016-10-13 16:51 GMT-03:00 Marcos Chicote <totoc...@gmail.com>:
Me falla aca: https://github.com/leanucci/bravo/blob/master/lib/bravo/reference.rb#L10
pero no la zafo ni reiniciando la app


Call es el backtrace? cual es la exception/error exacto que esta generando? Algo en los logs? pueden reproducir el error directamente o solo pasa en el contexto de la aplicacion?

Podes conectate al server/port y establecer la conexion de SSL? (usando openssl s_client por ejemplo)

Entre mas detalles incluyan, mejor podran ser las respuestas y la ayuda.

Saludos,
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry

Marcos Chicote

unread,
Oct 13, 2016, 4:01:14 PM10/13/16
to rub...@googlegroups.com
Acá va el backtrace, el mundo de la AFIP es tan oscuro que no probé establecer la conexión directo, tendría que ver como.
Para mi es algún mambo de la AFIP.

D, [2016-10-13T16:59:04.941000 #1495] DEBUG -- : HTTPI GET request to wswhomo.afip.gov.ar (excon)
Excon::Error::Socket: Socket closed (OpenSSL::SSL::SSLError)
from org/jruby/ext/openssl/SSLSocket.java:220:in `connect_nonblock'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/excon-0.53.0/lib/excon/ssl_socket.rb:116:in `initialize'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/excon-0.53.0/lib/excon/connection.rb:403:in `socket'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/excon-0.53.0/lib/excon/connection.rb:100:in `request_call'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/excon-0.53.0/lib/excon/middlewares/mock.rb:48:in `request_call'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/excon-0.53.0/lib/excon/middlewares/instrumentor.rb:26:in `request_call'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/excon-0.53.0/lib/excon/middlewares/base.rb:16:in `request_call'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/excon-0.53.0/lib/excon/middlewares/base.rb:16:in `request_call'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/excon-0.53.0/lib/excon/middlewares/base.rb:16:in `request_call'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/excon-0.53.0/lib/excon/connection.rb:249:in `request'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/excon-0.53.0/lib/excon/connection.rb:313:in `get'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/httpi-2.4.2/lib/httpi/adapter/excon.rb:25:in `request'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/httpi-2.4.2/lib/httpi.rb:161:in `request'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/httpi-2.4.2/lib/httpi.rb:127:in `get'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/wasabi-3.3.0/lib/wasabi/resolver.rb:43:in `load_from_remote'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/wasabi-3.3.0/lib/wasabi/resolver.rb:33:in `resolve'
... 13 levels...
from org/jruby/RubyKernel.java:983:in `eval'
from org/jruby/RubyKernel.java:1290:in `loop'
from org/jruby/RubyKernel.java:1103:in `catch'
from org/jruby/RubyKernel.java:1103:in `catch'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/railties-4.2.0/lib/rails/commands/console.rb:110:in `start'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/railties-4.2.0/lib/rails/commands/console.rb:9:in `start'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:68:in `console'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top>'
from org/jruby/RubyKernel.java:944:in `require'
from /Users/mchicote/Documents/projects/tobuy/src/tobuy-api/bin/rails:1:in `<top>'
from org/jruby/debug/RubyDebugger.java:209:in `debug_load'
from /Users/mchicote/Documents/projects/tobuy/src/tobuy-api/bin/rails:8:in `(root)'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/ruby-debug-ide-0.6.0/lib/ruby-debug-ide.rb:1:in `<top>'
from org/jruby/RubyKernel.java:962:in `load'
from /Users/mchicote/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/ruby-debug-ide-0.6.0/lib/ruby-debug-ide.rb:88:in `<top>'

--

Luis Lavena

unread,
Oct 13, 2016, 4:08:08 PM10/13/16
to rub...@googlegroups.com
On Thu, Oct 13, 2016 at 5:01 PM, Marcos Chicote <totoc...@gmail.com> wrote:
Acá va el backtrace, el mundo de la AFIP es tan oscuro que no probé establecer la conexión directo, tendría que ver como.
Para mi es algún mambo de la AFIP.

D, [2016-10-13T16:59:04.941000 #1495] DEBUG -- : HTTPI GET request to wswhomo.afip.gov.ar (excon)
Excon::Error::Socket: Socket closed (OpenSSL::SSL::SSLError)
from org/jruby/ext/openssl/SSLSocket.java:220:in `connect_nonblock'

Es muy posible:

$ openssl s_client -connect wswhomo.afip.gov.ar:443
CONNECTED(00000003)
140291523217040:error:140790E5:SSL routines:ssl23_write:ssl handshake failure:s23_lib.c:177:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 315 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
---

Mariano Cruceño

unread,
Oct 13, 2016, 4:14:47 PM10/13/16
to rub...@googlegroups.com

Eso tiene que ver con los certificados? Acordate de tener certificados sha-2.


--

Marcos Chicote

unread,
Oct 13, 2016, 4:21:40 PM10/13/16
to rub...@googlegroups.com
Gracias Luis. Voy a los ganchos con la AFIP entonces?

Mariano, los certificados son sha-2 y ya los pasé por la AFIP así que si ellos los aceptaron deberían andar. Igual creo que falla incluso antes de usarlos.

Marcos Chicote

unread,
Oct 13, 2016, 4:47:52 PM10/13/16
to rub...@googlegroups.com
Luis, a mi me está devolviendo esto. 
Yo entiendo que lo que dice es que no está confiando en la cadena de issuers de los certificados. Por lo que guglié openssl no confía y hay que agregarlos a mano. Tiene sentido?

admin@ip-172-31-1-161:[~]:openssl s_client -connect wswhomo.afip.gov.ar:443
CONNECTED(00000003)
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/C=AR/postalCode=1086/ST=Ciudad Autonoma de Buenos Aires/L=Capital Federal/street=Hipolito Yrigoyen 370/O=ADMINISTRACION FEDERAL DE INGRESOS PUBLICOS/OU=Issued through ADMINISTRACION FEDERAL DE INGRESOS PUBLICOS E-PKI/OU=Unified Communications/CN=wsaahomo.afip.gov.ar
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
 1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
 2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGqTCCBZGgAwIBAgIQEePbOiG19JelHWREBGugrTANBgkqhkiG9w0BAQsFADCB
ljELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxPDA6BgNV
BAMTM0NPTU9ETyBSU0EgT3JnYW5pemF0aW9uIFZhbGlkYXRpb24gU2VjdXJlIFNl
cnZlciBDQTAeFw0xNTA0MDEwMDAwMDBaFw0xNzAzMzEyMzU5NTlaMIIBQTELMAkG
A1UEBhMCQVIxDTALBgNVBBETBDEwODYxKDAmBgNVBAgTH0NpdWRhZCBBdXRvbm9t
YSBkZSBCdWVub3MgQWlyZXMxGDAWBgNVBAcTD0NhcGl0YWwgRmVkZXJhbDEeMBwG
A1UECRMVSGlwb2xpdG8gWXJpZ295ZW4gMzcwMTQwMgYDVQQKEytBRE1JTklTVFJB
Q0lPTiBGRURFUkFMIERFIElOR1JFU09TIFBVQkxJQ09TMUkwRwYDVQQLE0BJc3N1
ZWQgdGhyb3VnaCBBRE1JTklTVFJBQ0lPTiBGRURFUkFMIERFIElOR1JFU09TIFBV
QkxJQ09TIEUtUEtJMR8wHQYDVQQLExZVbmlmaWVkIENvbW11bmljYXRpb25zMR0w
GwYDVQQDExR3c2FhaG9tby5hZmlwLmdvdi5hcjCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAJlt+/Lj1xlyzolltPFFrOAD3r6SxkvdsaLvJMuzGGppXQgJ
ynry/f6D8mQu7UXzelojQ3YliHOAYj4hRudesQnq5Mjo/6g5bU8rH+ZF2HCVH91F
+bpCtVm4phf6qABDFlocVm5zhjn5ZmIzhFtoTlW9G410O6Xe1IqNHv9QSZxlNg1s
eCVuBbgGINOWgLLiJJbwNMrf0ZXHawkdbQWZphUJVgQOlpZVxbGBrPqDFaoavZlU
Z70o5x8supQvz/YQ5Spwhel3u13EgkMwQTuCsnjjeaSU6HTallDrJvIEbx9T9Y7m
e9Gz8h596hkH42Tih2FNJyrxluAUXca6wrl/w9UCAwEAAaOCAkMwggI/MB8GA1Ud
IwQYMBaAFJrzK9rPrU+2L7sqSEgqErcbQsEkMB0GA1UdDgQWBBSmyXEPiee9wKDY
7coeUdnaG95LbTAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUE
FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwUAYDVR0gBEkwRzA7BgwrBgEEAbIxAQIB
AwQwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLmNvbS9DUFMw
CAYGZ4EMAQICMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwuY29tb2RvY2Eu
Y29tL0NPTU9ET1JTQU9yZ2FuaXphdGlvblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJD
QS5jcmwwgYsGCCsGAQUFBwEBBH8wfTBVBggrBgEFBQcwAoZJaHR0cDovL2NydC5j
b21vZG9jYS5jb20vQ09NT0RPUlNBT3JnYW5pemF0aW9uVmFsaWRhdGlvblNlY3Vy
ZVNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2Eu
Y29tMIGDBgNVHREEfDB6ghR3c2FhaG9tby5hZmlwLmdvdi5hcoIXYWNuaG9tby1l
eHQuYWZpcC5nb3YuYXKCGGF1dGhob21vLWV4dC5hZmlwLmdvYi5hcoIac2V0aXdl
YmhvbW9leHQuYWZpcC5nb2IuYXKCE3dzd2hvbW8uYWZpcC5nb3YuYXIwDQYJKoZI
hvcNAQELBQADggEBAGecntDxbucWl9l6mNv7ZxNMS2RQqBuVItl51xeATAsiMp9n
U1YeYv1c9GRSDrDk43xMLls2KOQmmoCEH3F0U7hnHbNvgKAvYwxAcab9KzbdAD9V
Vgl3zsd2PxSZXFkVl5273GD4M8tK5aoiFG7uGNcNgBKDsmWOxMQDeXyOjUGHG/3E
nfGlSADXgXCIb5Wi4lo00H03owCA+1L4hdjUz6ATI3JoVkkGMJbS1Q5+2Fn/urLy
ZpID/471UD1KJVz/lLc2Epqy3Ld/dz26XE7lqxqQR99fUk4MTyBcgrv1n0XgaQuy
nhSqPST1SASOWIVGsRzJEE+uhspUwpIPlc2LYpo=
-----END CERTIFICATE-----
subject=/C=AR/postalCode=1086/ST=Ciudad Autonoma de Buenos Aires/L=Capital Federal/street=Hipolito Yrigoyen 370/O=ADMINISTRACION FEDERAL DE INGRESOS PUBLICOS/OU=Issued through ADMINISTRACION FEDERAL DE INGRESOS PUBLICOS E-PKI/OU=Unified Communications/CN=wsaahomo.afip.gov.ar
issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Organization Validation Secure Server CA
---
No client certificate CA names sent
---
SSL handshake has read 4805 bytes and written 605 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-MD5
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : RC4-MD5
    Session-ID: 221A000083BBCAA9F315E9F8C329D9AD7DE03A495C6D0CF6141C08AB0D277DF3
    Session-ID-ctx: 
    Master-Key: E4471F6C9D3B6B56B89E7DF1D7CFCEB62F83EFD3370581BE18BA0CC560B45E17C1399B1B58F2145943C0568B56516C5C
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1476391458
    Timeout   : 300 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
---

--

Luis Lavena

unread,
Oct 13, 2016, 5:02:00 PM10/13/16
to rub...@googlegroups.com

Si el handshake funcionó en tu caso, entonces ya es problema del servicio de ellos en terminar la conexión.

Sorry for top posting, sent from mobile.

Sebastian Schuartzman

unread,
Dec 9, 2016, 1:53:28 AM12/9/16
to rub...@googlegroups.com
Se puede configurar distintos cuil para imprimir la factura o solo permite una unica configuracion la gema de bravo?

Nicolas Cerrini

unread,
Dec 12, 2016, 12:36:07 PM12/12/16
to rub...@googlegroups.com
Sebastián,


On Fri, Dec 9, 2016 at 3:53 AM, Sebastian Schuartzman <shua...@gmail.com> wrote:
Se puede configurar distintos cuil para imprimir la factura o solo permite una unica configuracion la gema de bravo?


Al menos la última vez que me fijé, no se podía, porque espera el archivo con el resultado de la autenticación en una única ruta.
Hace muuucho me hice un fork que soporta eso. Lo tengo funcionando desde 2011 de esta manera:


Son varios commits los que lo permiten, por ejemplo: https://github.com/ceneon/Bravo/commit/55ebaad3b54cffdc653d0be1bf661da938165391


Saludos!
 

Nicolás Cerrini
   

Sebastian Schuartzman

unread,
Dec 12, 2016, 6:16:20 PM12/12/16
to rub...@googlegroups.com
Joya gracias

--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages