或者  立即注册!
忘记密码?
 
 
  • 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。点击此处Fortumo FAQ阅读更多关于Billing类型的资讯。
    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