Recibo de Entrega (DLR)

El Recibo de Entrega (DLR), también conocido como Informe de Estado de Entrega de SMS. Es un servicio para que los desarrolladores obtengan programáticamente el estado de la entrega de SMS, Unimatrix soporta el envío proactivo de informes de estado de SMS a través de Webhook.

Configuraciones

Esta característica es un servicio de extensión y no está habilitada por defecto. Por favor, vaya a Extensiones - Recibo de Entrega en la Consola para configurar según sus necesidades reales.

Establezca la URL del Webhook para recibir los informes de estado y especifique el formato de datos del cuerpo de la solicitud que necesita recibir, soportando JSON o XML, siendo el predeterminado JSON. Esto completa la configuración básica y está listo para el acceso.

Integración

Unimatrix enviará una solicitud HTTP a la URL del Webhook que configuró con el método POST, con el cuerpo de la solicitud en formato JSON como ejemplo.

Cuerpo de la Solicitud

NombreTipoDescripciónEjemplo
idstringID del mensaje78c038133e6ac2b6d8a0844c42f57dac
statusstringEstadodelivered
tostringNúmero de teléfono del destinatario (E.164)+12060000123
isostringCódigo de país (iso2)US
ccstringCódigo de país (prefijo de llamada internacional)1
partsintegerNúmero de partes del mensaje1
pricestringMonto de consumo0.018900
currencystringMoneda de facturaciónUSD
errorCodestringCódigo de retornoDELIVRD
errorMessagestringMensaje de retornoDelivered
submitDatestringFecha de envío (ISO 8601)2021-08-29T00:19:17.702Z
doneDatestringFecha de finalización (ISO 8601)2021-08-29T00:19:20.011Z

El contenido de ejemplo es el siguiente:

{
  "id": "78c038133e6ac2b6d8a0844c42f57dac",
  "status": "delivered",
  "to": "+12060000123",
  "iso": "US",
  "cc": "1",
  "parts": 1,
  "price": "0.018900",
  "currency": "USD",
  "errorCode": "DELIVRD",
  "errorMessage": "Delivered",
  "submitDate": "2021-08-29T00:19:17.702Z",
  "doneDate": "2021-08-29T00:19:20.011Z",
}

Respuesta

Una respuesta con el Código de Estado HTTP 200 se considera un informe de estado exitoso, y Unimatrix no realiza comprobaciones adicionales sobre la carga de la respuesta.

Verificación de firma

Para asegurar aún más sus datos, Unimatrix soporta la configuración de firmas para verificar que las solicitudes de Webhook provengan de Unimatrix y que los datos no hayan sido alterados durante la transmisión. Simplemente habilite "Verificación de firma" en la página de configuración y establezca la clave de firma (Secret).

Cuando la verificación de firma está habilitada, Unimatrix llevará el campo Authorization en el encabezado de la solicitud de Webhook con el valor construido en el formato UNI1-HMAC-SHA256 Timestamp={unix_epoch}, Nonce={nonce_str}, Signature={signature}, como se muestra en el siguiente ejemplo:

Authorization: UNI1-HMAC-SHA256 Timestamp=1630196360, Nonce=84100f131d7096ee, Signature=W7MNfb0bxRTfgPsxP9rOoZuNLm9+hkY68f/sq9TyHS8=

Extraiga los campos Timestamp, Nonce y convierta sus nombres de campo a minúsculas y agréguelos a la carga útil de la solicitud, ordénelos en orden diccionario (ASC) según la clave del parámetro, conecte los Valores-Clave con = y los pares de parámetros con & para formar el texto string a firmar, el ejemplo es el siguiente:

cc=1&currency=USD&doneDate=2021-08-29T00%3A19%3A20.011Z&errorCode=DELIVRD&errorMessage=Delivered&id=78c038133e6ac2b6d8a0844c42f57dac&parts=1&nonce=84100f131d7096ee&price=0.018900&iso=US&status=delivered&submitDate=2021-08-29T00%3A19%3A17.702Z&timestamp=1630196360&to=%2B12060000123

Usando el algoritmo HmacSHA256, se genera una firma sobre el texto string a firmar con la clave de firma establecida (Secret), y la salida es una cadena Base64, como se muestra en el siguiente ejemplo:

W7MNfb0bxRTfgPsxP9rOoZuNLm9+hkY68f/sq9TyHS8=

El valor de Signature extraído de Authorization se compara con la firma generada, y la verificación es exitosa si coincide.

Pruebas simuladas

Para la rápida integración por parte de los desarrolladores, Unimatrix ha proporcionado amablemente funcionalidad de pruebas simuladas. Puede enviar solicitudes de DLR simuladas directamente al servidor objetivo a través de la consola.

Reenvío

Después de que el primer informe de estado falla, Unimatrix seguirá reenviando el mensaje al URL objetivo hasta que el envío sea exitoso o se exceda el número máximo de envíos. El intervalo de reenvío es de 1 minuto, 5 minutos, 10 minutos, 30 minutos, 1 hora.