Consumir Comunicaciones de Ventanilla Electrónica


Solicitud
LOCAL loHttp, loUrl, loData, loResponse

* Deben cambiar los datos de "params" por los que correspondan. 
* Esta request de ejemplo incluye todos posibles valores para 
* llamar al metodo consumirComunicacion, puede que algun valor sea opcional.
LOCAL loDataObject
loDataObject = CREATEOBJECT("JSONObject")
    loDataObject.set("environment", "prod")
    loDataObject.set("method", "consumirComunicacion")
    loDataObject.set("wsid", "veconsumerws")
    LOCAL params
    params = CREATEOBJECT("JSONObject")
    loDataObject.set("params", params)
        LOCAL authRequest
        authRequest = CREATEOBJECT("JSONObject")
        params.set("authRequest", authRequest)
            authRequest.set("token", "string")
            authRequest.set("sign", "string")
            authRequest.set("cuitRepresentada", 1)
        params.set("idComunicacion", 1)
        params.set("incluirAdjuntos", .T.)

* Convertimos el objeto en JSON
loData = json_encode(loDataObject)

* Creamos un cliente HTTP para llamar a la API
loHttp = CREATEOBJECT("Msxml2.XMLHTTP")
loUrl = "https://app.afipsdk.com/api/v1/afip/requests"

* Realizamos la llamada a la API
loHttp.Open("POST", loUrl, .F.)
loHttp.setRequestHeader("Content-Type", "application/json")

* Reemplazar con tu access_token obtenido de https://app.afipsdk.com
LOCAL accessToken
accessToken = "TU_TOKEN_AQUI"
loHttp.setRequestHeader("Authorization", "Bearer " + accessToken)

loHttp.Send(loData)

* En caso de error lo mostramos por pantalla
IF loHttp.Status <> 200
    ? STR(loHttp.responseText)
    RETURN
ENDIF

* Convertimos la respuesta en un objeto
loResponse = json_decode(loHttp.responseText)

* Mostramos la respuesta por pantalla
? loHttp.responseText
Respuesta
{
    "Comunicacion": {
        "idComunicacion": "long",
        "cuitDestinatario": "long",
        "fechaPublicacion": "string",
        "fechaVencimiento": "string",
        "sistemaPublicador": "long",
        "sistemaPublicadorDesc": "string",
        "estado": "integer",
        "estadoDesc": "string",
        "asunto": "string",
        "prioridad": "integer",
        "tieneAdjunto": "bool",
        "referencia1": "string",
        "referencia2": "string",
        "mensaje": "string",
        "tiempoDeVida": "integer",
        "adjuntos": {
            "adjunto": [
                "string"
            ]
        }
    }
}