或者  立即註冊!
忘記密碼?
 
 
  • fortumo開放加值簡訊平台技術說明

    開放加值簡訊平台是fortumo服務裏最具彈性的服務類別,您能自行開發幾乎任何您能想像到的應用方式,不過使用本服務必須具備編程技巧,且您會需要一個能存放您程式(如PHP編程等)的網路服務器。

    當您建立的服務收到一則簡訊時,fortumo會發出一道HTTP GET的指令到您在建立服務時所設定存放程式的位址(如,http://yourdomain.com/sms.php),而fortumo從您存放程式處所得到的內容(實際上fortumo只截取前120個字元或50個中文字),隨後會被發送回給用戶成為回復訊息。在fortumo送出的HTTP GET指令會包含傳送者的手機號碼及簡訊內容等,您只需將這些資訊加以處理轉換為您的回復訊息。詳細參數定義,請參考下表。

  • 設置說明

    message
    訊息內容不包括關鍵字。如訊息為X TXT KEY 123,那麼此條簡訊參數即為123。如果訊息中只有關鍵字而並無其他內容,那麼參數即為零。
    sender
    簡訊發送者的手機號碼均為無加號的國際通用模式。例如,8610123456789
    country
    國家代碼均為發送者電信公司所在國家代碼。根據ISO3166-1標準使用雙字元代碼(如,CN-中國,SE-瑞典,NO-挪威,EE-愛沙尼亞等),但此國家未必為發送者實際所在地。如,持有瑞典手機的簡訊發送者可於地處挪威時發送簡訊,但在“國家”一欄中代碼仍顯示為SE.
    price
    即為最終使用者以當地貨幣支付的簡訊資費(包含加值稅)。
    currency
    根據ISO4217標準,採用當代貨幣標識(如RMB, EUR等)。
    service_id
    即為識別Fortumo服務平台的串碼。如,f7fa12b381d290e268f99e382578d64a。如果您在同一網路位址中使用多個服務平台,那麼您可使用此串碼確認簡訊所對應的平台。
    message_id
    即為簡訊服務平台所收到的每條簡訊所對應的串碼。
    keyword
    即為簡訊內容中的關鍵字部分。如果簡訊內容為X TXT KEY 123,那麼此參數即為X TXT KEY.
    shortcode
    即為簡訊發送位址的號碼。
    operator
    Name of the sender's mobile network operator.
    billing_type
    可以是MO-或MT-Billing。閱讀更多關於billing類型:Fortumo FAQ.
    status
    Billing status, which is either pending(in message delivery request), ok or failed(in billing report).
    test
    This parameter is present only when message is sent through Fortumo testing interface by yourself and it's value is always 'true'.
    sig
    即為您需核實的請求簽名,以確保此請求來自Fortumo。具體環節參見下文Security部分。

    通常用戶只需messagesender設置,但我們也為進階使用項目增添了設置說明。

  • Security

    確保服務腳本命令由Fortumo而非其他機構發出尤為重要。目前大部分服務提供商較為滿意的幾種安全措施如下::

    1. 核實發出請求的伺服器IP位址是否屬於Fortumo伺服器之一。我們目前使用的IP位址為81.20.151.38, 81.20.148.122209.20.83.207。如有變更,我們會發送電子郵件告知。在PHP中,您可使用$_SERVER["REMOTE_ADDR"]變數進行核實。
    2. 不要選用過於明顯的名字作為網址或程式碼名稱。如http://yourdomain.com/go850g3oigjrtog/sms.php要好於http://yourdomain.com/sms.php
    3. 核查隨函簽名是否相符。所有獲取請求都簽有只有您和Fortumo瞭解的機密資訊。您可從服務設置頁面瞭解此資訊。此簽名作為“簽名設置”添加,並可通過計算md5總核請求設置和機密資訊。您可以進行同樣的計算來核實請求中的“簽名設置”是否與您的計算結果相相符。詳細計算過程請參見下文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);
      }
    ?>
    
    複製到剪貼板

服務條款 asia@fortumo.com