или  Запиши се!
Забравил сте паролата си?
 
 
  • Fortumo Premium SMS-свързаност - техническа спецификация

    Premium SMS-свързаност е най-гъвкавия вид услуга на Fortumo. На практика ви позволява да създадете всяка SMS услуга, за която се сетите, но изисква някои знания по програмиране и сървър, където можете да хоствате вашата програма (например под формата на PHP-скрипт).

    Когато се получи съобщение към услугата ви, Fortumo ще направи HTTP GET request към URL адреса, който сте указали в настройките на услугата (например http://yourdomain.com/sms.php). Съдържанието, което Fortumo получава от вашето URL (или, по-точно, първите 120 символа от него) се изпраща на клиента като отговор. Параметрите на този HTTP GET request указват телефонния номер на подателя, съдържанието на съобщението и т.н. Можете да използвате тази информация, за да генерирате съобщението за отговор.

  • Параметри

    message
    Съдържание на съобщението без ключови думи. Ако съобщението е било TXT KEY 123, то този параметър е 123. Параметърът е празен, ако е имало само ключовата дума и никакъв друг допълнителен текст.
    sender
    Телефонният номер на подателя на съобщението в международен формат, без знака плюс. Например 359888123456 или 40123456700.
    country
    Държавният код на оператора на подателя. Използват се дву-символни кодове, съгласно стандарта ISO 3166-1 (BG за България, RO за Румъния, SE за Швеция, FI - Финландия, NO - Норвегия, LT - Литва, LV - Латвия, EE - Естония и т.н). Моля, имайте предвид, че това НЕ задължително е истинското местонахождение на изпращача. Например, подателят с шведски телефон може да изпрати съобщение, докато е на роуминг в Норвегия, а вие пак ще имате SE в полето за държава.
    price
    Крайната клиентска цена на съобщението в местната валута с включен ДДС.
    currency
    Местният паричен символ, съгласно ISO 4217 (BGN, RON, EUR, SEK, NOK, DKK, LTL, LVL, EEK, USD, GBP и т.н).
    service_id
    Серия от символи(низ), която разпознава тази услуга на Fortumo. Например f7fa12b381d290e268f99e382578d64a. Ако имате много услуги с един и същи URL адрес, можете да използвате това поле, за да определите, за коя услуга е това съобщение.
    message_id
    Серия от символи(низ), която е уникална за всяко съобщение, което услугата ви получава.
    keyword
    Частта от съобщението, наречена ключова дума. Ако съобщението е TXT KEY 123, тогава параметърът е TXT KEY.
    shortcode
    Краткият номер, до който бе изпратено съобщението
    operator
    Име на мобилният оператор, с който работи клиента
    billing_type
    Може да е MO или MT. Научете повече за различните видове таксуване от ЧЗВ секцията наFortumo.
    status
    Платежен статус, който е pending, ok или failed.
    test
    Този параметър е наличен само когато съобщението се изпраща чрез тест интерфейса на Fortumo и стойността му винаги е 'true'.
    sig
    Поискайте подпис, който можете да проверите, за да сте сигурни, че заявката е произлязла от Fortumo. Погледнете по-долу в частта "Сигурност", за да разберете как.

    Обикновено, хората се нуждаят само от message и може би sender параметри, но за по-специални нужди сме добавили и други.

  • Security

    Важно е да се уверите, че скрипта на услугата е извикан от Fortumo, а не някой друг. Има няколко мерки за сигурност, които задоволяват повечето доставчици на услуги:

    1. Проверете дали IP адресът на сървърът за заявки, принадлежи към някои от сървърите на Fortumo. Текущите ни IP адреси са 81.20.151.38, 81.20.148.122 и 209.20.83.207. Ще ви уведомим по e-mail когато се променят. В PHP можете да проверите това чрез $_SERVER["REMOTE_ADDR"] променливата.
    2. Изберете не толкова очевидно име за диркеторията на скрипта. Например http://yourdomain.com/sms.php не е толкова добро като http://yourdomain.com/go850g3oigjrtog/sms.php.
    3. Проверете дали прикаченият подпис съвпада. Всички заявки са подписват със споделен ключ, известна само на вас и Fortumo. Може да видите ключа на страницата с настройки на услугите. Подписът се добавя като sig параметър и се изчислява като md5 резултата от избраните параметри и ключа, слети заедно. Може да направите същата сметка и да проверите дали параметърът sig , който отговаря на зададените критерии съвпада с този, който изчислихте. Вижте PHP примера долу, за да разберете как точно се прави изчислението.

  • Sample sms.php

    <?php
      // 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);
    
    
      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);
      }
    ?>
    
    Копирай в клипборда

Правила за ползване supportbg@fortumo.com