-
SMS-connectivité Premium Fortumo: spécifications technique
SMS-Connectivité Premium est le type de service Fortumo le plus flexible. Il vous permet de créer pratiquement tout les services SMS que vous pouvez imaginer, mais il est nécessaire d'avoir des connaissances en programmation et un serveur web ou vous pouvez héberger votre programme(Comme par exemple un script PHP). L'interaction entre notre serveur et votre script se fait avec des requêtes HTTP GET. Il y a trois type possible de requêtes HTTP, qui sont décrites ci dessous. Les paramètres présent dans ces requêtes seront toujours les mêmes. Le plus important et obligatoire dans le traitement des messages est le premier type.
Remise des messages
Quand votre service reçoit un message, Fortumo va créer une requête HTTP GET vers le lien que vous avez spécifié dans la configuration du service (Par exemple http://votredomaine.com/sms.php). Le contenu que Fortumo reçoit depuis votre URL (ou en fait les 120 premiers caractères) est envoyé à l'utilisateur comme réponse. Les paramètres de cette requête HTTP GET spécifie le numéro de téléphone de l'expéditeur, le contenu du message etc. Donc vous pouvez utiliser toute les informations pour générer votre message de réponse.Rapports de facturation
Dans les pays avec une facturation MT, les opérateurs rapportent si la facture a été réussi ou bien échouée après la tentative d'envois du message de réponse. Si vous souhaitez recevoir ces informations, vous devez activer les rapports de facturation dans la configuration de votre service Premium. Nous vous enverrons un rapport de facturation à l'URL indiqué une fois que le message sera envoyer. Toutes les réponses depuis le script seront comptées comme envois réussi. Votre réponse au rapports de facturation ne sera pas transmise à l'opérateur, donc vous ne pouvez pas utiliser de rapport de facturation pour envoyer de message de réponse. Utilisez la première requête.Tester votre script
Votre compte à une fonctionnalité de test intégrée. Après avoir configuré l'URL de votre script sur votre compte, vous pouvez aller à l'onglet "Test" et commencer une requête de test depuis notre serveur vers votre script. Le paramètre test va être présent dans la requête et test et sa valeur sera "true"(=vrai).



-
Paramètres
message- Le contenu du message moins les mots clés. Ainsi, si le message a été TXT KEY 123, alors ce paramètre est 123. Le paramètre est vide si il n'y a que le mot-clé et aucun autre texte dans le message.
sender- Le numéro de téléphone de l'expediteur au format international sans le signe plus. Par exemple, 4560123456 ou 358401234567.
country- Le code du pays de l'opérateur de téléphonie mobile de l'expéditeur. Deux codes de caractères sont utilisés selon la norme ISO 3166-1 (SE pour la Suède, FI - Finlande, NO - Norvège, LT - Lituanie LV - Lettonie, EE - Estonie, etc.) Veuillez noter également que ce n'est pas nécessairement la localisation réelle de l'expéditeur. Par exemple, l'expéditeur avec un téléphone suédois, peut être à l'origine de l'envoi d'un message en étant en Norvège, vous aurez quand même SE dans le champs "pays".
price- Prix pour l'utilisateur final du message dans la monnaie locale, TVA comprise.
currency- Le symbole de la monnaie locale selon la norme ISO 4217 (EUR, SEK, NOK, DKK, LTL, LVL, EEK, USD, GBP, etc.)
service_id- Une chaîne de caractères qui identifie ce service Fortumo . Par exemple f7fa12b381d290e268f99e382578d64a. Si vous avez beaucoup de services avec la même URL, vous pouvez utiliser ce champ pour déterminer à quel service le message est destiné.
message_id- Une chaîne de caractères qui est unique pour chaque message que reçoit votre service.
keyword- Le mot clé fait partie du message. Ainsi, si le message a été TXT KEY 123, alors ce paramètre est TXT KEY.
shortcode- Le short code auquel le message a été envoyé.
operator- Nom de l'opérateur mobile de l'expéditeur
billing_type- Peut être MO ou MT. En savoir plus sur les type de facturation dans laFAQ Fortumo.
status- Le statut de la facturation, est soit
en attente(dans la demande de remise de message), soitokou bienéchoué(dans le rapport de facture). test- Ce paramètre est présent uniquement lorsque le message est envoyé par le biais de l'interface de test Fortumo, par vous-même. Il a toujours la valeur 'true'.
sig- Demande de signature que vous pouvez vérifier, afin de s'assurer que la requête est originaire de Fortumo. Voir ci-dessous comment faire de la manière la plus sûre possible.
Habituellement, les gens utilisent les paramètres
messageetsender, mais pour les utilisations plus avancées, nous en avons ajoutés d'autres.


-
Security
Il est important de s'assurer que le script de service est appelé par Fortumo et non pas quelqu'un d'autre. Il existe plusieurs mesures de sécurité, qui satisferont la plupart des fournisseurs de service.:
-
Vérifiez si l'adresse IP du serveur qui fait la demande appartient à l'un des serveurs de Fortumo. Nos adresses IP sont 81.20.151.38, 81.20.148.122 et 209.20.83.207 . Nous vous informerons par e-mail lors de leur changement. En PHP, vous pouvez vérifier cela avec la variable$_SERVER["REMOTE_ADDR"] -
Ne choisissez de ne nom si évident pour votre répertoire ou votre script. Par exemple http://yourdomain.com/sms.php n'est pas aussi bien que http://yourdomain.com/go850g3oigjrtog/sms.php. -
Vérifiez que les signatures ci jointes correspondent. Toutes les demandes sont signées avec un secret seulement connu de vous et de Fortumo. Vous pouvez voir le secret dans la page des paramètres de service (Settings). La signature est ajoutée commesiget le paramètre est calculé comme la somme de contrôle MD5 des paramètres de la requête et du secret concaténés ensemble . Vous pouvez faire le même calcul et de vérifier si le paramètresigdans la requête correspond à celui que vous avez calculé. Voir l'exemple ci-dessous PHP pour savoir exactement comment le calcul est effectué.
-


-
Sample sms.php
<?php //set true if you want to use script for billing reports //first you need to enable them in your account $billing_reports_enabled = false; // check that the request comes from Fortumo server if(!in_array($_SERVER['REMOTE_ADDR'], array('81.20.151.38', '81.20.148.122', '209.20.83.207'))) { die("Error: Unknown IP"); } // check the signature $secret = ''; // insert your secret between '' if(!empty($secret) && !check_signature($_GET, $secret)) { die("Error: Invalid signature"); } $sender = $_GET['sender']; $message = $_GET['message']; // do something with $sender and $message $reply = "Thank you $sender for sending $message"; // print out the reply echo($reply); //customize this according to your needs if($billing_reports_enabled && preg_match("/Failed/i", $_GET['status']) && preg_match("/MT/i", $_GET['billing_type'])) { // find message by $_GET['message_id'] and suspend it } function check_signature($params_array, $secret) { ksort($params_array); $str = ''; foreach ($params_array as $k=>$v) { if($k != 'sig') { $str .= "$k=$v"; } } $str .= $secret; $signature = md5($str); return ($params_array['sig'] == $signature); } ?>
Copier dans le presse-papier





