Stránka 1 z 1

Script sms platby prosím pomoc!!

Napsal: 13 led 2014, 17:20
od Grepy
Zdravím, prosim vás já už nevím čím to může být.Když tento script testuju na mobilniplatby.cz přes emulátor tak mi to přičte mince uplně normálně.A když odešlu sms PM název brány a ID účtu na který chci přičíst mince.Tak mi to prostě žádný mince nepřičte a sebere mi to peníze a napíše:Litujeme, ale zadali jste neplatne ID. Kod transakce:335498432 přitom když to testuju tak to funguje.


Kód: Vybrat vše

<?php
// Skript pro příjem premium SMS z mobilniplatby.cz
// Navrženo pro Metin 2
// Autor: Vojtěch 'Heretiiik' M.
// Poslední úprava: 11.1.2014
//
// SQL pro vytvoření logu
/*
CREATE TABLE `sms_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` varchar(128) DEFAULT NULL,
  `country` varchar(32) DEFAULT NULL,
  `operator` varchar(32) DEFAULT NULL,
  `phone` varchar(64) DEFAULT NULL,
  `shortcode` varchar(32) DEFAULT NULL,
  `sms` varchar(128) DEFAULT NULL,
  `pokus` int(11) DEFAULT NULL,
  `timestamp` varchar(128) DEFAULT NULL,
  `vysledek` varchar(128) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;
*/
//
//
// Načtení proměnných z URL do proměnných
$timestamp = $_GET['timestamp'];
$phone = $_GET['phone'];
$text = $_GET['sms'];
$shortcode = $_GET['shortcode'];
$country = $_GET['country'];
$operator = $_GET['operator'];
$pokus = $_GET['att'];
$uid = $_GET['id'];

// Připojení k databázi, údaje jsou v přiloženém souboru
include ('db_info.php');
mysql_connect($dbserver, $dbuser, $dbpw);
mysql_select_db($dbname);

// Zapsání do logu
$log_query = "INSERT INTO sms_log (uid, country, operator, phone, shortcode, sms, pokus, timestamp) VALUES ('$uid', '$country', '$operator', '$phone', '$shortcode', '$text', '$pokus', '$timestamp')";
$result1 = mysql_query($log_query);

// Kontrola zda SMS přišla ze správného čísla
$allowed_shortcode = array('9033350', '9033379', '9033399', '90333');
if (in_array($shortcode,$allowed_shortcode)) {
 
  // Získání ID účtu
  //$sms = substr($text, 18);
 
  // Kontola zda id existuje
  $sql_id_exist = "SELECT login as ident FROM player.account";
  $existence = mysql_query($sql_id_exist);
  $existujici = array();
  while($row=mysql_fetch_assoc($existence)) {
     $existujici[]=$row['ident'];
  }

  // Připsání mincí pokud ID existovalo
  if(in_array($sms, $existujici)) {
    // Spočítání počtu nových mincí
    $get_mince_query = "SELECT * FROM player.account WHERE login='$sms' LIMIT 1";
    $mince_a_query = mysql_query($get_mince_query);
    while($row2 = mysql_fetch_array($mince_a_query)) {
       $mince_a = $row2['coins'];
    }
    // Vypočítání přičítaných mincí dle shortcode
    switch($shortcode) {
      case '9033350':
        $mince_b = 50;
        break;
      case '9033379':
        $mince_b = 80;
        break;
      case '9033399':   
        $mince_b = 100;
        break;
      case '90333':   
        $mince_b = 300;
        break;
      default:
        $mince_b = 0;
    }
    $mince_c = $mince_a + $mince_b;

    // Vložení mincí
    $mince_update = "UPDATE player.account SET coins='$mince_c' WHERE login='$sms'";
    $result2 = mysql_query($mince_update);
   
    //Napsání odpovědí, vše proběhlo správně
    $response = "Dekujeme za Vas dar. Kod transakce: $uid"; 
    Header ("Content-type:text/plain");
    Header ("Content-length".strlen($response));
    echo $response;
    $vysledek = "OK";
  } else {
    // Odpověd při špatně zadeném ID
    $response = "Litujeme, ale zadali jste neplatne ID. Kod transakce: $uid"; 
    Header ("Content-type:text/plain");
    Header ("Content-length".strlen($response));
    echo $response;
    $vysledek = "BAD ID";   
  }
} else {
  // Odpověd při nepovolém čísle
  $response = "Litujeme, ale pouzil jste spatne cislo. Kod transakce: $uid"; 
  Header ("Content-type:text/plain");
  Header ("Content-length".strlen($response));
  echo $response;
  $vysledek = "WRONG NUMBER";   
}
// Zapsání výsledku do logu
$post_log = "UPDATE sms_log SET vysledek='$vysledek' WHERE uid='$uid'";
$result3 = mysql_query($post_log);
?>

Re: Script sms platby prosím pomoc!!

Napsal: 13 led 2014, 17:39
od zdenda204
Zkontroluj si komentáře, jeden ti zakomentoval proměnnou.
A jsme podpora pro servery hostované u hostingu FakaHeda.
Pokud se nepletu tak Metin se tu nehostuje a tudíž nemáš právo na podporu.

//LOCK