vb6

Daniel
Daniel

Hola. Alguien on un proyecto vb6. Necesito conectarme a Arca para obtener el CAE. Documentación?

CeSeery
CeSeery

Hola, buenas noches. Con el tema del qr que hay que imprimir, tienen algún metodo

y por otro lado, como recupero la respuesta, ya me logre conectar y recibir el cae, pero tengo que pasarlo a una variable para guardar

CeSeery
CeSeery

Set objJson = JsonConverter.ParseJson(strResponse) ss = objJson("FECAESolicitarResult")("CAE")

en strResponse esta la respuesta, es un texto. Definis este objeto Set objJson = JsonConverter.ParseJson(strResponse), hay algun metodo para salarlo, como en el caso del ultimo numero o es leer el txt, buscando "CAE" Y VTOCAE

CeSeery CeSeery en strResponse esta la respuesta, es un texto. Definis este objeto Set objJson = JsonConverter.ParseJson(strResponse), hay algun metodo para salarlo, como en e
Ivan
Ivan

Esta en el objeto el CAE cuando haces Set objJson = ParseJson(strResponse) el objJson podes accederlo como objeto

objJson("FECAESolicitarResult")("FeDetResp")("FECAEDetResponse").Item(1)("CAE")

Roberto
Roberto

Buen dia. Hasta semana pasada usaba el ejemplo en visual basic 6 para obtener ticket de acceso y todo perfecto . A partir de noviembre quiero hacerlo y me da error 401 necesita token de acceso ??? Me pueden ayudar

Roberto Roberto Buen dia. Hasta semana pasada usaba el ejemplo en visual basic 6 para obtener ticket de acceso y todo perfecto . A partir de noviembre quiero hacerlo y me da er
Ivan
Ivan

Lo obtenes desde https://app.afipsdk.com/ y en tu codigo agregas el header Authorization en las llamadas a la API

' Reemplazar con tu access_token obtenido de https://app.afipsdk.com
Dim accessToken As String
accessToken = "TU_TOKEN_AQUI"

With objHttp
    .Open "POST", strAuthUrl, False
    .setRequestHeader "Content-Type", "application/json"
    .setRequestHeader "Authorization", "Bearer " + accessToken
    .Send strAuthData
    
    If .Status <> 200 Then
        MsgBox "Error en la autorización: " & .Status
        MsgBox "Respuesta: " & .responseText
        Exit Sub
    End If
    
    strResponse = .responseText
End With
Roberto
Roberto

Hola Ivan Mil gracias . Te consulto otra cosa ese Token de acceso que obuve desde https://app.afipsdk.com/ , es dinamico y debo ir cambiandolo siempre ???

Roberto
Roberto

Ok gracias de nuevo

Roberto
Roberto

Ivan Buen dia , estoy probando distintops tipos de factura con los ejemplos en visual Basic , quisera saber si mer podes pasar un ejemplo en visual basic para emitir Ticket Factura C y para emitir Ticket a Consumidor Final . Gracias

Roberto
Roberto

Buen dia Ivan . Cuando digo Ticket me equivoque. Seria Factura B .

De nuevo la consulta que te hago es esta . Supongo qu el cuit del ejemplo de Visual basic 6 es un Monitributista , si le tengo que facturar a un Consumidor Final como me quedaria esta parte :

' FECAEDetRequest Dim dictDetReq As Dictionary Set dictDetReq = New Dictionary With dictDetReq .Add "Concepto", 1 .Add "DocTipo", 99 .Add "DocNro", 0 .Add "CbteDesde", nextVoucher .Add "CbteHasta", nextVoucher .Add "CbteFch", Format$(Date, "yyyymmdd") .Add "ImpTotal", 121 .Add "ImpTotConc", 0 .Add "ImpNeto", 100 .Add "ImpOpEx", 0 .Add "ImpIVA", 21 .Add "ImpTrib", 0 .Add "MonId", "PES" .Add "MonCotiz", 1 .Add "CondicionIVAReceptorId", 5 End With

' Iva
Dim dictIva As Dictionary
Set dictIva = New Dictionary


' Array Alic Iva
Dim colAlicIva As Collection
Set colAlicIva = New Collection


Dim dictIvaItem As Dictionary
Set dictIvaItem = New Dictionary
With dictIvaItem
    .Add "Id",       5
    .Add "BaseImp",  100
    .Add "Importe",  21
End With
Visual6.0
Visual6.0

Buen día...

Como integro en un Formulario esta parte : Private Sub GetAuthorization() Dim objHttp As Object Dim strResponse As String Dim strAuthUrl As String Dim strAuthData As String Dim dictAuthData As Dictionary

' Crear objeto XMLHTTP
Set objHttp = CreateObject("WinHttp.WinHttpRequest.5.1")

strAuthUrl = "https://app.afipsdk.com/api/v1/afip/auth"

' Preparamos la data para pedir el TA
Set dictAuthData = New Dictionary
dictAuthData.Add "environment", "dev"
dictAuthData.Add "tax_id", "20409378472"
dictAuthData.Add "wsid", "wsfe"

strAuthData = JsonConverter.ConvertToJson(dictAuthData)

With objHttp
    .Open "POST", strAuthUrl, False
    .setRequestHeader "Content-Type", "application/json"
    .setRequestHeader "Authorization", "Bearer TU_ACCESS_TOKEN"
    .Send strAuthData
    
    If .Status <> 200 Then
        MsgBox "Error en la autorización: " & .Status
        MsgBox "Respuesta: " & .responseText
        Exit Sub
    End If
    
    strResponse = .responseText
End With

' Parsear respuesta JSON (requiere función auxiliar ParseJson)
Dim objJson As Object
Set objJson = JsonConverter.ParseJson(strResponse)

' Guardar token y sign
gstrToken = objJson("token")
gstrSign = objJson("sign")

Debug.Print "Token: " & gstrToken
Debug.Print "Sign: " & gstrSign

End Sub

Visual6.0
Visual6.0

Buen día, ya puse esas lineas en un boton, pero cuando lo ejecuto me da error de autorizacion 401, y cuando acepto el mensaje me sale otro mensaje de error que dice que el token proporcionado es invalido

Visual6.0
Visual6.0

Buen día a todos, paso a explicarles lo que necesito. Yo tengo un Software que imprime remitos y todo Tipo de presupuesto. Si la empresa necesita facturar, le hacia comprar la Controladora Fiscal y a partir de eso programaba para que salgan los tiquet de CF, la facturas C, A, B, dependiendo la categoría en la que se encontrara el  Negocio. Ahora nadie quiere comprar la CF, primero porque sale un dineral y segundo porque quieren aprovechar las otras impresoras ya sean termicas o láser e imprimir en ellas. Yo necesito el modulo para hacer la factura electrónica. La pregunta es si ustedes me pueden desarrollar esos módulos y a que precio lo harían.  Para mejor comunicación mi número de celular es 3735-405879, soy de la ciudad de Villa Angela, Provincia del Chaco. Atentamente Adolfo Roda

Marcelo Dominguez
Marcelo Dominguez

Buenas tardes @user , como estas?

Hoy desarrolle en vb6 una app, para consultar la constancia de incripcion, me llegan los datos bien, pero yo necesitaria ademas obtener el PDF, como sale de la pagina. Estuve viendo de agregar el control OrdoWebView, que soporta edge, para abrir https://seti.afip.gob.ar/padron-puc-constancia-internet/ConsultaConstanciaAction.do y desde ahi consulte y puede bajar la constancia, pero el CAPTCHA queda girando sin respuesta. SO: Win7 Actualmente se usaba el control WebBrowser, pero se ve al actualizar el https://seti.afip.gov.ar/padron-puc-constancia-internet/js/Constancia.js, ahora no es compatible. Muchas gracias

Marcelo Dominguez Marcelo Dominguez Buenas tardes @user , como estas?
Ivan
Ivan

Hola Marcelo, como te puedo ayudar?

Marcelo Dominguez
Marcelo Dominguez

Buen dia, saber como obtener la constancia de incripcion en PDF. Y si no se puede si tienen un modelo en HTML como para despues volcar los datos. Como te comente antes lo obteniemos desde https://seti.afip.gob.ar/padron-puc-constancia-internet/ConsultaConstanciaAction.do , que la cargabamos en un control de vb6, pero dejo de funcionar.

Marcelo Dominguez Marcelo Dominguez Buen dia, saber como obtener la constancia de incripcion en PDF. Y si no se puede si tienen un modelo en HTML como para despues volcar los datos. Como te coment
Ivan
Ivan

No tenemos un modelo de HTML, es cuestion de armarlo similar a la pagina si queres uno igual

Roberto
Roberto

Buenas tardes , estoy tratando de obtener un tikect de acceso desde el ejemplo de visual basic 6 en modo desarrollo , pongo el token de acceso correspondiente y me da como respuesta que nop puede conectarse con el servidor en tiempo de ejecucion (error 2147012867) . Podrias ayudarme ??

Roberto Roberto Buenas tardes , estoy tratando de obtener un tikect de acceso desde el ejemplo de visual basic 6 en modo desarrollo , pongo el token de acceso correspondiente y
Ivan
Ivan

Hola Roberto, en que sistema operativo lo estas usando? Fijate de tener las actualizaciones con los ultimos service pack, en sistemas viejos suele dar ese problema por falta de los nuevos protocolos ssl

Roberto
Roberto

estoy con windows 7 ultimate , pero hasta hace 3 meses funcionaba perfecto

Roberto
Roberto

aqui es donde me da el error : With objHttp .Open "POST", strAuthUrl, False .SetRequestHeader "Content-Type", "application/json" .SetRequestHeader "Authorization", "Bearer " + accessToken .Send strAuthData

Ivan
Ivan

Tambien puede ser algo de conexion o firewall

Roberto
Roberto

Ok, lamentablemnete no conecta . Gracias de todos modos

Roberto
Roberto

Buen dia Ivan . Solucionado , se ve que hay protocolos que ya no van mas en Window 7 . Te hago otra consulta que no encontre documentacion del nro asignado alos distintos tipos de IVA . Te paso el ejemplo donde dice al llenar el array de IVA , QUE EL CODIGO 5 , corresponde al IVA 21% . Primera pregunta cuales condigos corresponde a IVA 0% y a IVA 10,5% y Segunda pregunta si en una misma factura tengo productos con distinto IVA , como lo integro en el codigo . Desde ya muchas gracias

Roberto
Roberto

bien gracias . Otra consulta , esta todo bien armado en visual basic pero no me da el cae , me tira el error 10016

donde no me autoriza el CAE , porque dice que el nro de comprobante no es el ultimo a autorizar o la fecha no corresponde . Que puede ser ????

Roberto
Roberto

Consulta : estoy trabajando con mi propio cuit en modo desarrollo , tengo el certificado y la key y no puedo integrarlos al body , en VB6 , las cadenas son muy largas y realmente no se como integrar tanto el certificado como la key . Te paso el lugar donde estoy trabado .

dictAuthData.Add "cert", "-----BEGIN CERTIFICATE-----MIIDRzC..." dictAuthData.Add "key", "-----BEGIN RSA PRIVATE KEY-----MIIEowIBAAKCA..."

gracias

Roberto Roberto dictAuthData.Add "cert", "-----BEGIN CERTIFICATE-----MIIDRzC..." dictAuthData.Add "key", "-----BEGIN RSA PRIVATE KEY-----MIIEowIBAAKCA..."
Ivan
Ivan

No hace falta ponerlo en el codigo directamente, podes leer el certificado y key desde el archivo y poner el contenido en esas variables o una base de datos

Algo como:

Dim filePath As String
Dim fileContent As String
Dim fileNum As Integer

filePath = "C:\cert.crt"
fileNum = FreeFile

Open filePath For Input As #fileNum
fileContent = Input$(LOF(fileNum), fileNum)
Close #fileNum

dictAuthData.Add "cert", fileContent

Igual para la key

Roberto
Roberto

Perdon pero estoy un poco perdido , si uso la automatizacion de afipsdk en VB6 para obtener el certificado de desarrollo , en que lugar genero el archivo cert.crt y la clave privada.key ?? , porque la automatizacion termina en ; debug.print JsonConverter.ConvertToJson(objJson, Whitespace:=2)

y solo tengo una cadena tipo string de respuesta

Roberto Roberto y solo tengo una cadena tipo string de respuesta
Ivan
Ivan

en ese caso no te deja usar esa cadena?

Roberto
Roberto

No , me da error . Te paso la cadena que me envia :

Voy a probar sin usar la automatizacion a ver si puedo obtener los archivos

Roberto Roberto Voy a probar sin usar la automatizacion a ver si puedo obtener los archivos
Ivan
Ivan

Esa misma cadena de key o cert podes guardarla sola cada una en un archivo

Roberto
Roberto

Hola Ivan , listo solucionado . Ya estoy para pedir el modulo de produccion

Roberto
Roberto

Buen dia , Consulta ? . Cuando emito una factura A que tiene articulos con distintos Iva , como armo el diccionario de Iva . Te paso un ejemplo donde tengo articulos exentos , articulos con iva 10,5 y articulos con iva 21 , yo lo estoy haciendo asi pero me da error de "clave"

Dim dictIvaItem As Dictionary Set dictIvaItem = New Dictionary

MsgBox "ARMO DICCIONARIO IVA"

With dictIvaItem
    .Add "Id", 3
    .Add "BaseImp", impneto0Dble '100
    .Add "Importe", 0
    .Add "Id", 4
    .Add "BaseImp", impneto105Dble '100
    .Add "Importe", impIVA105Dble '10.5
    .Add "Id", 5
    .Add "BaseImp", impneto21Dble '100
    .Add "Importe", impIVA21Dble '21
End With

colAlicIva.Add dictIvaItem

dictIva.Add "AlicIva", colAlicIva
dictDetReq.Add "Iva", dictIva

dictFeDetReq.Add "FECAEDetRequest", dictDetReq
dictFeCAEReq.Add "FeDetReq", dictFeDetReq
dictParamsInv.Add "FeCAEReq", dictFeCAEReq
Roberto Roberto Dim dictIvaItem As Dictionary Set dictIvaItem = New Dictionary MsgBox "ARMO DICCIONARIO IVA" With dictIvaItem .Add "Id", 3
Ivan
Ivan

Siguiendo el ejemplo de https://afipsdk.com/docs/api-reference/web-services/wsfe/FECAESolicitar/dev/vb6/ deberias de agregar el item al array de AlicIva, algo asi:

Dim AlicIva0 As Dictionary Set AlicIva0 = New Dictionary AlicIva.Add AlicIva0 AlicIva0.Add "Id", 1 AlicIva0.Add "BaseImp", 1.5 AlicIva0.Add "Importe", 1.5

Dim AlicIva1 As Dictionary Set AlicIva1 = New Dictionary AlicIva.Add AlicIva1 AlicIva1.Add "Id", 1 AlicIva1.Add "BaseImp", 1.5 AlicIva1.Add "Importe", 1.5

Dim AlicIva2 As Dictionary Set AlicIva2 = New Dictionary AlicIva.Add AlicIva2 AlicIva2.Add "Id", 1 AlicIva2.Add "BaseImp", 1.5 AlicIva2.Add "Importe", 1.5