-
Fortumo Premium-SMS-Verbindungen technische Spezifikation
Premium SMS-Verbindungen ist der flexibelste Dienst in Fortumo. Er ermöglicht Ihnen praktisch jeden SMS-Dienst zu erstellen an den Sie denken können. Er erfordert einige Programmierkenntnisse und einen Web-Server auf dem Sie Ihr Programm (zum Beispiel als ein PHP-Skript) hosten können.
Wenn Ihr Dienst eine Nachricht empfängt wird Fortumo eine HTTP-GET-Request an die von Ihnen, in der Dienst-Spezifikation, genannte URL senden (z. B. http://yourdomain.com/sms.php). Der Inhalt, den Fortumo von Ihrer URL (oder eigentlich die ersten 120 Zeichen davon) erhält wird dann als Antwort zurück an den Benutzer gesandt. Die Parameter des HTTP-GET-Request geben die Telefonnummer des Absenders, Inhalt der Nachricht etc. an. So können Sie all diese Informationen benutzen um die Antwort-Nachricht zu generieren.



-
Parameter
message- Inhalt der Nachricht minus Keywords. Demzufolge ist der Parameter 123 wenn die Nachricht aus TXT KEY 123 besteht. Der Parameter ist leer, wenn es nur das Keyword und kein weiterer Text in der Nachricht steht.
sender- Telefonnummer des Absenders im internationalen Format, ohne Pluszeichen. Zum Beispiel: 4560123456 oder 358401234567.
country- Der Code des Mobilfunkbetreibers des Absenders. Zwei-Zeichen-Codes werden nach ISO-Norm 3166-1 (SE für Schweden, FI - Finnland, NO - Norwegen, LT - Litauen, LV - Lettland, EE - Estland usw.)verwendet. Bitte beachten Sie auch, dass dies nicht unbedingt der tatsächlichen Standort des Absenders ist. Zum Beispiel kann der Absender mit einem schwedischen Telefon mit Hilfe von Roaming eine Nachricht in Norwegen versenden und Sie würden weiterhin SE im Feld für das Land stehen sehen.
price- Die Endverbraucherpreises der Nachricht in der lokalen Währung, inklusive Mehrwertsteuer.
currency- Dielokale Währungsabkürzung wird gemäß ISO 4217 (EUR, SEK, NOK, DKK, LTL, LVL, EEK, USD, GBP, usw.) dargestellt.
service_id- Eine Zeichenfolge, welche diesen Fortumo-Dienst beschreibt. Zum Beispiel f7fa12b381d290e268f99e382578d64a. Falls Sie viele Dienste mit der gleichen URL haben, dann können Sie dieses Feld nutzen um festzulegen für welchen Dienst die Nachricht ist.
message_id- Eine Zeichenfolge, die einmalig ist für jede Nachricht, welche Ihr Dienst erhält.
keyword- Das Keyword ist ein Teil der Nachricht. Deshalb, wenn die Nachricht TXT KEY 123 war, ist dieser Parameter TXT KEY.
shortcode- Kurzwahl, an welche die Nachricht gesendet wurde.
operator- Name des Mobilfunkbetreibers des Absenders.
billing_type- Can be MO or MT. Read more about billing types in Fortumo FAQ.
status- Rechnungs-Status, die entweder
pending okoderfailedsind test- Dieser Parameter ist nur sichtbar wenn die Nachricht durch Sie selbst über die Fortumo Test-Schnittstelle verschickt wird. Deren Wert ist immer 'true'.
sig- Fordern Sie eine überprüfbare Signatur an um sicherzustellen, dass die Anfrage wirklich von Fortumo kommt. Sehen Sie unter Sicherheit um herauszufinden wie es funktioniert.
Die Nutzer müssen in der Regel nur
messageund vielleichtsenderParameter. Für die fortgreschrittenen Nutzer haben wir auch andere Parameter hinzugefügt.


-
Security
Es ist wichtig sicherzustellen, dass das Skript des Dienstes von Fortumo kommt und nicht von jemand anderem. Darin gibt es mehrere Sicherheitsmaßnahmen, welche die meisten der Service Provider zufriedenstellen.:
-
Prüfen Sie, ob die IP-Adresse des Servers welcher die Anfrage gesendet hat zu einem Fortumo-Server gehört. Unsere aktuellen IP-Adressen sind 81.20.151.38, 81.20.148.122 und 209.20.83.207. Wir lassen Sie per E-Mail wissen, wenn sie sich ändern. In PHP können Sie dies mit der$_SERVER["REMOTE_ADDR"]Variable überprüfen. -
Wählen Sie einen nicht so offensichtlichen Namen für Ihr Verzeichnis oder ein Skript. Zum Beispiel ist http://yourdomain.com/sms.php nicht so gut wie http://yourdomain.com/go850g3oigjrtog/sms.php. -
Prüfen Sie, ob die beigefügte Signatur übereinstimmt. Alle Anfragen werden mit den gemeinsamen geheimen Schlüssel, der nur Ihnen und Fortumo bekannt ist, unterzeichnet. Sie können den Schlüssel auf der Einstellungsseite des Dienstes sehen. Die Signatur wird alssigParameter hinzugefügt und wird als MD5-Prüfsumme aus dem Request-Parameter und dem Schlüssel berechnet. Sie können die gleiche Berechnung durchführen und prüfen ob dersigParameter in der Anfrage mit dem den Sie berechnet haben übereinstimmt. Um genau herauszufinden wie die Berechnung erfolgt sehen Sie sich bitte das unten stehende PHP-Beispiel an.
-


-
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); } ?>
Kopieren in die Zwischenablage





