Visual Basic 6

Aprendé cómo usar Afip SDK con Visual Basic 6

Básicos

Para usar los Web Services de ARCA, vamos a utilizar la API de Afip SDK.

En la documentación de la API podés consultar todos los parámetros del endpoint.


1. Instalación

Vamos a usar https://github.com/VBA-tools/VBA-JSON/blob/master/JsonConverter.bas para trabajar con JSON.

Para esto debemos descargar descargar JsonConverter.bas, y agregarlo a nuestro proyecto.

Y agregar la referencia "Microsoft Scripting Runtime"

2. Obtener el Ticket de Acceso (TA)

Antes de llamar a los Web Services de ARCA, necesitás un ticket de acceso (TA), también llamado Token Authorization.

Este TA expira tras un tiempo, pero no tenés que preocuparte por renovarlo: Afip SDK lo cachea y solicita uno nuevo automáticamente si es necesario. Solo llamá a la API y Afip SDK te devuelve el TA correspondiente.

Para obtener el TA se necesita un certificado digital, pero con Afip SDK podés empezar en modo desarrollo usando el CUIT 20-40937847-2 sin necesidad de uno.

Si preferís usar tu propio certificado, al final te mostramos cómo.

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("MSXML2.XMLHTTP")
    
    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"
        .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

gstrToken y gstrSign corresponden el TA que nos da ARCA. Debemos enviar estos datos en el body de cada solicitud a los Web Services. En el manual de cada Web Service verás dónde colocarlos.

3. Llamar al método del Web Service que necesites

Con el TA ya podés realizar las llamadas a los Web Services que necesites.

Es similar al código para obtener el TA, pero debés cambiar la URL y el body de la request.

Podés encontrar las URLs y los body correspondientes en las pestañas API de la documentación de cada Web Service.

Web services

Si el Web Service que necesitás no se encuentra en la lista de la documentación, podés llamarlo siguiendo esta guía:

Otro web service

También podés usar las guías del blog de Afip SDK para Visual Basic 6:


Usar tu propio certificado (Opcional)

Primero, obtenemos el certificado siguiendo esta guía.

Al pedir la autorización agregamos cert y key en el body

dictAuthData.Add "environment", "dev"
dictAuthData.Add "tax_id", "20111111112"
dictAuthData.Add "wsid", "wsfe"
dictAuthData.Add "cert", "-----BEGIN CERTIFICATE-----MIIDRzC..."
dictAuthData.Add "key", "-----BEGIN RSA PRIVATE KEY-----MIIEowIBAAKCA..."

Última actualización

¿Te fue útil?