Saltearse al contenido

Buscar información de envío

Cuando el envío de notificaciones se realiza con ReturnMode en RESUME, la respuesta será un RequestID que se puede utilizar para obtener los datos de las notificaciones.

Este servicio devolverá información sobre la cantidad de notificaciones enviadas, procesadas y las que aún se encuentran en proceso.

Variables POST

  • HASH: Hash de la empresa donde está registrado el template.
  • ANNAEXEC: El IV generado debe ser utilizado para encriptar los valores de otras variables.
  • SentId: El ID que se devuelve al enviar las notificaciones con ReturnMode = RESUME.

Respuesta

  • La respuesta es una cadena encriptada de la siguiente manera:
    • DatosEncriptados + IV + NuevoIvEncriptado
  • La estructura desencriptada será la siguiente:
    {
    "RequestId": 1,
    "RequestDate": "2023-06-05T16:00:00",
    "RequestStatus": "PROCESSED",
    "TotalNumberReceived": 4,
    "TotalNumberValid": 4,
    "TotalNumberSuccess": 4,
    "TotalNumberError": 0,
    "TotalNumberWaiting": 0,
    "TotalNumberCanceled": 0,
    "RequestResult": [
    {
    "RequestSeq": 1,
    "RequestPhoneNumber":"111111111",
    "RequestStatus":"sent",
    "RequestMessage":"OK",
    "RequestSentDatetime": "2024-08-05T16:00:00",
    "RequestDeliveryDatetime": "2024-08-05T16:00:00",
    "RequestReadDatetime": "2024-08-05T16:00:00",
    "RequestHasButton": true,
    "RequestUserAnswered": true,
    "RequestUserAnswer": "Sim",
    "SentKeys": [
    {
    "Description": "NOME",
    "Value": "Giuliano"
    }
    ],
    "SentParms": [
    {
    "Cod": "CPF",
    "Value": "11111111111"
    },
    {
    "Cod": "RG",
    "Value": "11111111-1"
    },
    ]
    },
    {
    "RequestSeq": 1,
    "RequestPhoneNumber": "222222222",
    "RequestStatus": "sent",
    "RequestMessage": "OK",
    "RequestSentDatetime": "2024-08-05T16:00:00",
    "RequestDeliveryDatetime": "2024-08-05T16:00:00",
    "RequestReadDatetime": "2024-08-05T16:00:00",
    "RequestHasButton": true,
    "RequestUserAnswered": true,
    "RequestUserAnswer": "Sim",
    "SentKeys": [
    {
    "Description": "NOME",
    "Value": "Giuliano"
    }
    ],
    "SentParms": [
    {
    "Cod": "CPF",
    "Value": "11111111111"
    },
    {
    "Cod": "RG",
    "Value": "11111111-1"
    },
    ]
    },
    {
    "RequestSeq": 2,
    "RequestPhoneNumber": "333333333",
    "RequestStatus": "sent",
    "RequestMessage": "OK",
    "RequestSentDatetime": "2024-08-05T16:00:00",
    "RequestDeliveryDatetime": "2024-08-05T16:00:00",
    "RequestReadDatetime": "2024-08-05T16:00:00",
    "RequestHasButton": true,
    "RequestUserAnswered": true,
    "RequestUserAnswer": "Sim",
    "SentKeys": [
    {
    "Description": "NOME",
    "Value": "Giuliano"
    }
    ],
    "SentParms": [
    {
    "Cod": "CPF",
    "Value": "11111111111"
    },
    {
    "Cod": "RG",
    "Value": "11111111-1"
    },
    ]
    },
    {
    "RequestSeq": 2,
    "RequestPhoneNumber": "444444444",
    "RequestStatus":"sent",
    "RequestMessage":"OK",
    "RequestSentDatetime": "2024-08-05T16:00:00",
    "RequestDeliveryDatetime": "2024-08-05T16:00:00",
    "RequestReadDatetime": "2024-08-05T16:00:00",
    "RequestHasButton": true,
    "RequestUserAnswered": true,
    "RequestUserAnswer": "Sim",
    "SentKeys": [
    {
    "Description": "NOME",
    "Value": "Giuliano"
    }
    ],
    "SentParms": [
    {
    "Cod": "CPF",
    "Value": "11111111111"
    },
    {
    "Cod": "RG",
    "Value": "11111111-1"
    },
    ]
    }
    ]
    }
  • Valores para el status de RequestStatus base:
    • CANCELED
    • QUEUED
    • PROCESSED
    • PROCESSING
  • Valores para el status de RequestResult:
    • canceled
    • waiting
    • sent
    • delivered
    • failed

Ejemplos

public static string Execute_WebService()
{
string DecKey = "DECRYPTION_KEY";
string EncKey = "ENCRYPTION_KEY";
string Hash = "COMPANY_HASH";
// Generate new IV
TripleDESCryptoServiceProvider auxTdes = new TripleDESCryptoServiceProvider();
auxTdes.GenerateIV();
byte[] IVArray = auxTdes.IV;
string IV = Convert.ToBase64String(IVArray);
string sentId = "NOTIFICATION_ID";
string sentIdEncriptado = Encrypt3DES(sentId, EncKey, IV);
string dadosPost = "HASH=" + Uri.EscapeDataString(Hash);
dadosPost += "&ANNAEXEC=" + Uri.EscapeDataString(IV);
dadosPost += "&sentId=" + Uri.EscapeDataString(sentIdEncriptado);
byte[] dados = Encoding.UTF8.GetBytes(dadosPost);
string url = "https://YOUR_ANNA_URL/aannagetnotificationdata.aspx";
WebRequest requisicaoWeb = WebRequest.Create(url);
requisicaoWeb.Method = "POST";
requisicaoWeb.ContentType = "application/x-www-form-urlencoded";
requisicaoWeb.ContentLength = dados.Length;
Stream dataStream = requisicaoWeb.GetRequestStream();
dataStream.Write(dados, 0, dados.Length);
dataStream.Close();
WebResponse response = requisicaoWeb.GetResponse();
using (dataStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
if (responseFromServer.Contains(IV))
{
string novoIVEncriptado = responseFromServer.Substring(responseFromServer.IndexOf(IV));
novoIVEncriptado = novoIVEncriptado.Replace(IV, "");
string retornoEncriptado = responseFromServer.Substring(0, responseFromServer.IndexOf(IV));
string novoIV = Decrypt3DES(novoIVEncriptado, EncKey, IV);
string retorno = Decrypt3DES(retornoEncriptado, DecKey, novoIV);
response.Close();
return retorno;
}
else
{
response.Close();
return responseFromServer;
}
}
}