Register

Ico_big_info Como funciona el Widget de Pago-por-SMS?

Pago por SMS Widget es una solución todo-en-uno de pago por teléfonos móviles internacional para empresas, basados en la red. Su puesta en marcha es rápida, fácil y gratis. Es perfecto para la venta de créditos en los juegos en línea, las tarifas de acceso a los contenidos, etc .. Empieza ahora mismo!

Big_bullet Parámetros

Cuando alguien completa un pago, Fortumo le informará sobre esto por medio de una una solicitud GET HTTP a la URL que ha especificado en la configuración del servicio (por ejemplo http://yourdomain.com/sms.php). Esta respuesta se considera exitosa y la notificación de entrega si el servidor responde con el código 200, de lo contrario la solicitud será repetida (hasta 10 veces). El cuerpo de su respuesta no será procesada o reenviada.

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.
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.)
amount
Cantidad de créditos comprados
price
El precio al usuario final en el pago en la moneda local, incluido el IVA.
user_share
Su parte del precio de usuario final.
cuid
Un string que nos ha proporcionado como un ID de recurso en su sistema. Puede conectar el pago con de uno los recursos en particular (es decir, de usuario) de su sistema poniendo su ID al final del diálogo de URL de pago .
payment_id
Identificador único de pago.
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.
operator
Nombre del remitente del operador de redes móviles.
status
Estado de pago, el cual esta completado para el pago con éxito o contiene la frase Ha fallado.
test
Este parámetro sólo está presente cuando el mensaje se envía a través del interfaz de pruebas Fortumo y su valor es 'ok' o 'fallo'.
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.

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
  
  // 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'];//phone num.
  $amount = $_GET['amount'];//credit
  $cuid = $_GET['cuid'];//resource i.e. user
  $payment_id = $_GET['payment_id'];//unique id

  //hint: find or create payment by payment_id
  //additional parameters: operator, price, user_share, country
  
  if(preg_match("/failed/i", $_GET['status'])) {
   // mark payment as failed
  } else {
   // mark payment successful
  }

  // print out the reply
  echo('OK');
 
  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