Register

Ico_big_custom Pagos Moviles Fortumo / Especificación técnica Premium SMS API

Pagos móviles / Premium SMS API es el el tipo de servicio más flexible de Fortumo. Le permite crear prácticamente cualquier servicio SMS, que usted podría pensar, pero requiere algunos conocimientos de programación y un servidor web donde se pueda alojar su programa (por ejemplo, un script PHP).

Cuando el servicio recibe un mensaje, Fortumo hará una petición HTTP GET a la URL que ha especificado en la configuración de servicios (por ejemplo http://yourdomain.com/sms.php). El contenido que recibe de su URL de Fortumo (en realidad los 120 primeros caracteres del mismo) va a ser reenviado al usuario como un mensaje de respuesta. Los parámetros de la solicitud HTTP GET que especificar el número de teléfono del remitente, el contenido del mensaje, etc. Así,usted puede utilizar toda esa información para generar el mensaje de respuesta.

Reporte de cobros

En países con cobro MT los operadores reportan si el cobro fue exitoso o fallo al responder al intento de envío de mensaje. Si usted desea recibir esta información, debe activar los reportes de pago en su configuración de servicio Premium. Le enviaremos un reporte de cobro a la URL indicada después del envío del mensaje.Cualquier respuesta de su script sera tomado como un envío exitoso. Su respuesta a los reportes de cobros no sera reenviada al operador, así que no puede usar los reportes de cobro para enviar el mensaje respuesta. Use primero la solicitud.

Probando su script

Su cuenta tiene instalada una funcionalidad de prueba. Después de configurar el URL de su script en su cuenta, ustedes puede ir a la pestaña de "Test" o "Prueba" e iniciar una solicitud de prueba de nuestro servidor a su script. El parámetro de la prueba sera presenta en solicitud de prueba y dispuestas a ser ciertas.

Big_bullet Parámetros

message
El contenido de los mensajes, menos palabras clave. Por lo tanto, si el mensaje fue CLAVE TXT 123, entonces este parámetro es 123. El parámetro está vacío, si sólo había la palabra clave y no un texto adicional en el mensaje.
sender
Mensaje de número de teléfono del remitente en formato internacional sin el signo más. Por ejemplo, 358401234567 o 4560123456. En algunos países, debido las reglas de privacidad de usuario final, este parámetro puede estar en blanco o encriptado por el operador de telefonía móvil.
country
El código del país del remitente del operador móvil. Dos códigos de caracteres se usan de acuerdo a la norma ISO 3166-1 (SE para Suecia, FI - Finlandia, NO - Noruega, LT - Lituania, LV - Letonia, EE - Estonia, etc.) Por favor, también tenga en cuenta que este no es necesariamente la ubicación real del remitente. Por ejemplo, el remitente con un teléfono sueco, podría estar enviando el mensaje durante su itinerancia en Noruega, y usted todavía vería el país SE en dicho campo.
price
El precio del usuario final del mensaje en la moneda local, incluido el IVA.
currency
El símbolo de moneda local de acuerdo a la norma ISO 4217 (en euros, coronas suecas, coronas noruegas, coronas danesas, litai, LVL, EEK, USD, GBP, etc.)
service_id
Una cadena que identifica este servicio Fortumo . Por ejemplo f7fa12b381d290e268f99e382578d64a. Si usted tiene muchos servicios con la misma URL, entonces puede utilizar este campo para determinar qué servicio es para el mensaje.
message_id
Una cadena que es única para cada mensaje que reciba su servicio.
keyword
La palabra clave del mensaje. Por lo tanto, si el mensaje fue CLAVE TXT 123, entonces este parámetro es TXT CLAVE.
shortcode
El código abreviado que el mensaje fue enviado a.
operator
Nombre del remitente del operador de redes móviles.
billing_type
Puede ser MO y MT. Lea más acerca de los tipos de facturación en Fortumo FAQ.
status
Estatus de facturación, que és o pendiente(en la solicitud de entrega de mensaje), ok ó fallo(en el reporte de cobros).
test
Este parámetro sólo está presente cuando envía usted el mensaje a través de pruebas de interfaz Fortumo y su valor siempre es "verdadero".
sig
Solicitud de la firma que usted puede comprobar, para asegurarse de que la solicitud es procedente de Fortumo. Véase más adelante, debajo de Seguridad, para averiguar cómo.

La gente normalmente sólo necesitan message y tal vez sender parámetros, pero para usos más avanzados, también hemos añadido otros.

Seguridad

Es importante asegurarse de que la secuencia de comandos de servicio es operado por Fortumo y no otra persona. Existen varias medidas de seguridad, que satisfacen a la mayoría de los proveedores de servicios:

  1. Compruebe si la dirección IP del servidor que hace la solicitud corresponde a uno de los servidores de Fortumo. Nuestros actuales direcciones IP son ip1% () y (% IP2). Le avisaremos por e-mail cuando cambien. En PHP usted puede verificar esto con $_SERVER["REMOTE_ADDR"]variable.
  2. Optar por un nombre no obvio para el directorio o el script. Por ejemplo http://yourdomain.com/sms.phpno es tan buena como http://yourdomain.com/go850g3oigjrtog/sms.php.
  3. Compruebe que la firma adjunta coincide. Todas las solicitudes se firman con el secreto compartido que sólo conoce usted y Fortumo. Usted puede ver el secreto en la página de configuración de servicios. La firma se añadirá como sig parámetro y se calcula como suma de control md5 de la solicitud y secreto junto a parámetros vinculados. Usted puede hacer el mismo cálculo y comprobar si sig el parámetro de la petición coincide con el que calcula. Véase el siguiente ejemplo PHP para saber exactamente cómo se hace el cálculo.

Big_bullet 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', '79.125.125.1', '209.20.83.207'))) {
    header("HTTP/1.0 403 Forbidden");
    die("Error: Unknown IP");
  }

  // check the signature
  $secret = ''; // insert your secret between ''
  if(empty($secret) || !check_signature($_GET, $secret)) {
    header("HTTP/1.0 404 Not Found");
    die("Error: Invalid signature");
  }

  $sender = $_GET['sender'];
  $message = $_GET['message'];
  $message_id = $_GET['message_id'];//unique id
  //hint:use message_id to log your messages
  //additional parameters: country, price, currency, operator, keyword, shortcode 
  // 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);
  }
?>
Copiar al portapapeles
Condiciones del servicio    support@fortumo.com