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.
Parámetros
messagesendercountrypricecurrencyservice_idmessage_idkeywordshortcodeoperatorbilling_typestatuspendiente(en la solicitud de entrega de mensaje), ok ó fallo(en el reporte de cobros).testsigLa gente normalmente sólo necesitan message y tal vez sender parámetros, pero para usos más avanzados, también hemos añadido otros.
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:
$_SERVER["REMOTE_ADDR"]variable.
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.
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 |