или  Запиши се!
Забравил сте паролата си?
 
 
  • Fortumo Мобилни плащания/ Premium SMS API техническа спецификация

    Мобилните плащания / Premium SMS API е най-гъвкавия вид услуга на Fortumo. На практика ви позволява да създадете всяка SMS услуга, за която се сетите, но изисква някои знания по програмиране и уеб-сървър, където можете да хоствате вашата програма (например под формата на PHP-скрипт). Взаимодействието между нашия сървър и вашия скрипт ще се извършва посредством HTTP GET заявки. Има три възможни типа HTTP заявки, които са описани по-долу. Параметрите представени в тези заявки са винаги едни и същи. Най-важният и задължителен е първият вид.

    Доставка на съобщенията

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

    Билинг репорти

    В страните с MT билинг (таксуване) операторите докладват, ако таксуването е било успешно или се е провалило при опит за отговор. Ако искате да получавате тази информация, трябва да разрешите билинг репортите в конфигурацията на вашата Премиум услуга. От наша страна, ние ще ви изпращаме билинг репорт след доставка на всяко съобщение. Всеки отговор на вашия скрипт ще се води за успешна доставка. Вашият отговор на билинг репорта няма да бъде препратен към оператора, затова не можете да използвате заявките за билинг репорт за да генерирате отговор към клиента. Вместо това, използвайте първата заявка.

    Тест на вашия скрипт

    Вашият акаунт има вградена тест функционалност. След като настроите URL адреса на вашия скрипт в акаунта си, можете да кликнете на таба "Тест" и да изпратите тест заявка от нашия сървър към скрипта ви. Параметъра "test" ще е включен в заявката и ще е с придадена стойност "true".

  • Параметри

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

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