Accusé de Réception (DLR)
L'accusé de réception, également connu sous le nom de rapport de statut de livraison SMS. C'est un service pour les développeurs pour obtenir de manière programmatique le statut de la livraison des SMS, Unimatrix prend en charge la poussée proactive des rapports de statut SMS via Webhook.
Paramètres
Cette fonctionnalité est un service d'extension et n'est pas activée par défaut. Veuillez aller dans Extensions - Accusé de Réception dans la Console pour configurer selon vos besoins réels.
Définissez l'URL Webhook pour recevoir les rapports de statut et spécifiez le format de données du corps de la requête que vous souhaitez recevoir, en soutenant JSON
ou XML
, par défaut c'est JSON
. Cela complète la configuration de base et est prêt pour l'accès.
Intégration
Unimatrix enverra une requête HTTP à l'URL Webhook que vous avez définie avec la méthode POST
, avec le corps de la requête au format JSON
par exemple.
Corps de la Requête
Nom | Type | Description | Exemple |
---|---|---|---|
id | string | ID du message | 78c038133e6ac2b6d8a0844c42f57dac |
status | string | Statut | delivered |
to | string | Numéro de téléphone du destinataire (E.164) | +12060000123 |
iso | string | Code de pays (iso2) | US |
cc | string | Code de pays (Indicatif international) | 1 |
parts | integer | Nombre de parties du message | 1 |
price | string | Montant de la consommation | 0.018900 |
currency | string | Devise de facturation | USD |
errorCode | string | Code de retour | DELIVRD |
errorMessage | string | Message de retour | Delivered |
submitDate | string | Date de soumission (ISO 8601) | 2021-08-29T00:19:17.702Z |
doneDate | string | Date de fin (ISO 8601) | 2021-08-29T00:19:20.011Z |
Le contenu de l'exemple est le suivant :
{
"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",
}
Réponse
Une réponse avec le code d'état HTTP 200
est considérée comme un rapport de statut réussi, et Unimatrix ne réalise pas de vérifications supplémentaires sur la charge de réponse.
Vérification de signature
Pour sécuriser davantage vos données, Unimatrix prend en charge la configuration des signatures pour vérifier que les requêtes Webhook proviennent d'Unimatrix et que les données n'ont pas été altérées pendant la transmission. Activez simplement "Vérification de signature" dans la page des paramètres et définissez la clé de signature (Secret).
Lorsque la vérification de signature est activée, Unimatrix portera le champ Authorization
dans l'en-tête de la requête Webhook avec la valeur construite au format UNI1-HMAC-SHA256 Timestamp={epoch_unix}, Nonce={nonce_str}, Signature={signature}
, comme montré dans l'exemple suivant :
Authorization: UNI1-HMAC-SHA256 Timestamp=1630196360, Nonce=84100f131d7096ee, Signature=W7MNfb0bxRTfgPsxP9rOoZuNLm9+hkY68f/sq9TyHS8=
Extrayez les champs Timestamp
, Nonce
et convertissez leurs noms de champs en minuscules et ajoutez-les à la charge utile de la requête, triez-les dans l'ordre du dictionnaire (ASC) selon la clé du paramètre, connectez les valeurs-clés avec =
et les paires de paramètres avec &
pour former la chaîne de texte à signer, l'exemple est le suivant :
cc=1¤cy=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×tamp=1630196360&to=%2B12060000123
En utilisant l'algorithme HmacSHA256, une signature est générée sur la chaîne de texte à signer avec la clé de signature définie (Secret), et la sortie est une chaîne Base64, comme montré dans l'exemple suivant :
W7MNfb0bxRTfgPsxP9rOoZuNLm9+hkY68f/sq9TyHS8=
La valeur Signature
extraite de Authorization
est comparée à la signature générée, et la vérification est réussie si elle correspond.
Test Simulé
Pour une intégration rapide par les développeurs, Unimatrix a gentiment fourni une fonctionnalité de test simulé. Vous pouvez envoyer des requêtes DLR simulées directement au serveur cible via la console.
Repousser
Après l'échec du premier rapport de statut poussé, Unimatrix repoussera toujours le message à l'URL cible jusqu'à ce que la poussée soit réussie ou que le nombre maximum de poussées soit atteint. L'intervalle de repoussée est de 1 minute
, 5 minutes
, 10 minutes
, 30 minutes
, 1 heure
.