Registreeri

Ico_big_info Kuidas Mobiilimakse nupp töötab?

Mobiilimaksenupp on kõik-ühes rahvusvaheline mobiilimakse funktsioon veebipõhistele äridele. Selle seadistamine on kiire, lihtne ja tasuta. See on ideaalne krediidi müümiseks veebipõhistes mängudes või ligipääsu maksustamiseks, jne... Alusta kohe!

Big_bullet Parameetrid

Kui klient on makse lõpetanud, annab Fortumo Sulle sellest teada, tehes HTTP GET päringu URL-le, mida oled teenuse konfiguratsioonis määranud(näiteks http://yourdomain.com/sms.php). See vastus loetakse õnnestunuks ja teavitus kohaletoimetatud kui Su server vastab koodiga 200, vastasel juhul korratakse päringut (kuni 10 korda). Sinu vastuse sisu ei töötletata ega edastata.

sender
Sõnumisaatja telefoninumber rahvusvahelises formaadis ilma plussmärgita. Näiteks, 4560123456 või 358401234567
country
Saatja mobiilioperaatori riigikood. Lähtuvalt ISO 3166-1 standardist kasutatakse kahetähelisi koode (SE- Rootsi, FI - Soome, NO - Norra, LT - Leedu, LV - Läti, EE - Eesti jne). Palun pane tähele, et see EI pruugi ilmtingimata olla saatja tegelik asukoht. Näiteks saatja Rootsi numbriga, võib sõnumi saata roamingu kaudu Norrast, ja Sul peab ikka olema SE riigi lahtris.
currency
Kohaliku valuuta sümbol lähtuvalt ISO 4217-le (EUR, SEK, NOK, DKK, LTL, LVL, EEK, USD, GBP jne).
amount
Ostetud krediidi hulk
price
Lõpp-kasutaja hind kohalikus valuutas, sh ka käibemaks.
user_share
Sinu tulu lõpp-kasutaja hinnast.
cuid
Sinu teenusepoolne ressursi ID (string - näiteks kasutajanimi), mille lisamine maksedialoogi URL lõppu võimaldab Sul ühendada konkreetse ressursi (kasutaja) ning makse.
payment_id
Unikaalne maksetunnus.
service_id
String, mis identifitseerib Sinu teenuse. Näiteks f7fa12b381d290e268f99e382578d64a. String muutub vajalikuks siis kui Sul on mitu teenust sama URL-ga, sellisel juhul saad oma teenuseid just selle stringi abil eristada.
operator
Sõnumi saatja mobiilioperaatori nimi
status
Maksestaatus, mis on lõpetatud (completed) eduka makse puhul või sisaldab fraasi failed.
test
See parameeter esineb siis, kui sõnum saadetakse Fortumo testimise funktsiooni kaudu ja selle väärtus on kas "ok" ja "fail".
sig
Päringu allkiri, et sa saaksid kontrollida, kas päring tuleb ikka Fortumolt. Vaata allpoolt Turvalisuse alt, et uurida, kuidas see käib.

Turvalisus

On väga tähtis, et teenuse skripti kutsuks välja ainult Fortumo, mitte keegi teine. Selleks on olemas mitmeid turvameetmeid, mis rahuldavad suurema osa teenusepakkujaid.:

  1. Vaata järele, kas päringut tegeva serveri IP aadress on ikka ühe Fortumo serveri oma. Meie praegused IP aadressid on 81.20.151.38, 81.20.148.122, 79.125.125.1 ja 209.20.83.207. Me anname sulle e-mailiga teada, kuid need muutuvad. PHP-s saad seda kontrollida $_SERVER["REMOTE_ADDR"] muutujaga.
  2. Ära vali väga ilmset ja lihtsat nime oma registrile või skriptile. Näiteks, http://yourdomain.com/sms.php ei ole nii hea kui http://yourdomain.com/go850g3oigjrtog/sms.php.
  3. Veendu, et kaasas olev allkiri kattuks. Kõik päringud on märgistatud ühiselt, mis on ainult teada Sulle ja Fortumole. Viimase õigsust saad kontrollida teenuse seadete vaatest. Allkiri lisatakse sig parameetrina ja arvutatakse md5 summana, kus päringu parameeter ja märge on kokku liidetud. Sa võid prooviks teha sama arvutuse ning veenduda kas sig parameeter päringus on sama, mille iseseisvalt said. Palun vaata allolevat PHP näidist, et näha kuidas arvutus täpselt käib.

Big_bullet Näidis 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);
  }
?>
Kopeeri kood