Recebimento de Entrega (DLR)

Recebimento de Entrega (DLR), também conhecido como Relatório de Status de Entrega de SMS. É um serviço para desenvolvedores obterem programaticamente o status da entrega de SMS, a Unimatrix suporta o envio proativo de relatórios de status de SMS via Webhook.

Configurações

Esta funcionalidade é um serviço de extensão e não está habilitada por padrão. Por favor, vá para Extensões - Recebimento de Entrega no Console para configurar de acordo com suas necessidades reais.

Defina a URL do Webhook para receber relatórios de status e especifique o formato de dados do corpo da solicitação que você precisa receber, suportando JSON ou XML, padrão é JSON. Isso completa a configuração básica e está pronto para acesso.

Integração

A Unimatrix enviará uma solicitação HTTP para a URL do Webhook que você definiu com o método POST, com o corpo da solicitação em formato JSON por exemplo.

Corpo da Solicitação

NomeTipoDescriçãoExemplo
idstringID da Mensagem78c038133e6ac2b6d8a0844c42f57dac
statusstringStatusentregue
tostringNúmero de telefone do destinatário (E.164)+12060000123
isostringCódigo do país (iso2)US
ccstringCódigo do país (Prefixo internacional)1
partsintegerNúmero de partes da mensagem1
pricestringQuantia consumida0.018900
currencystringMoeda de faturamentoUSD
errorCodestringCódigo de retornoDELIVRD
errorMessagestringMensagem de retornoEntregue
submitDatestringData de envio (ISO 8601)2021-08-29T00:19:17.702Z
doneDatestringData de conclusão (ISO 8601)2021-08-29T00:19:20.011Z

O conteúdo de exemplo é o seguinte:

{
  "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",
}

Resposta

Uma resposta com o Código de Status HTTP 200 é considerada um relatório de status bem-sucedido, e a Unimatrix não realiza verificações adicionais sobre a carga da resposta.

Verificação de assinatura

Para proteger ainda mais seus dados, a Unimatrix suporta a configuração de assinaturas para verificar que as solicitações de Webhook vêm da Unimatrix e que os dados não foram adulterados durante a transmissão. Basta habilitar "Verificação de Assinatura" na página de configurações e definir a chave de assinatura (Secret).

Quando a verificação de assinatura estiver habilitada, a Unimatrix incluirá o campo Authorization no cabeçalho da solicitação de Webhook com o valor construído no formato UNI1-HMAC-SHA256 Timestamp={unix_epoch}, Nonce={nonce_str}, Signature={signature}, conforme mostrado no exemplo a seguir:

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

Extraia os campos Timestamp, Nonce e converta seus nomes de campo para minúsculas e adicione-os à carga útil da solicitação, ordene-os em ordem alfabética (ASC) de acordo com a chave do parâmetro, conecte os Valores-Chave com = e os pares de parâmetros com & para formar o texto da string a ser assinada, exemplo é como segue:

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

Usando o algoritmo HmacSHA256, uma assinatura é gerada sobre o texto da string a ser assinada com a chave de assinatura definida (Secret), e a saída é uma string Base64, como mostrado no exemplo a seguir:

W7MNfb0bxRTfgPsxP9rOoZuNLm9+hkY68f/sq9TyHS8=

O valor Signature extraído de Authorization é comparado com a assinatura gerada, e a verificação é bem-sucedida se corresponder.

Teste simulado

Para integração rápida por desenvolvedores, a Unimatrix gentilmente forneceu funcionalidade de teste simulado. Você pode enviar solicitações de DLR construídas de forma simulada diretamente para o servidor alvo através do console.

Re-envio

Após a primeira tentativa falha de envio do relatório de status, a Unimatrix ainda re-enviará a mensagem para a URL alvo até que o envio seja bem-sucedido ou o número máximo de envios seja excedido. O intervalo de re-envio é de 1 minuto, 5 minutos, 10 minutos, 30 minutos, 1 hora.