Guest User

Platnosci-online

a guest
Aug 5th, 2013
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.54 KB | None | 0 0
  1. <?php
  2.  
  3. ###############################
  4. #
  5. # Platnosci-Online.pl
  6. #
  7. # skrypt obslugujacy
  8. # SMSShop do gry Minecraft
  9. #
  10. # wersja 3.0
  11. #
  12. # 06-07-2013
  13. #
  14. ###############################
  15.  
  16. include 'config/config.php';
  17.  
  18. $config_sms=array();
  19. include 'config/polacz.php';
  20.  
  21. $zapytanie = mysql_query("SELECT * FROM `services` WHERE `aktywny` = '1' ORDER BY `order` ASC ;");
  22.  
  23. $_SESSION['komunikat'] = '';
  24.  
  25. while($rekord = mysql_fetch_array($zapytanie)) {
  26.     $config_sms[] = array(
  27.     "numer"=>$rekord['numer'],
  28.        
  29.     "tresc"=>$rekord['tresc'],
  30.        
  31.     "opis"=>$rekord['opis'],
  32.        
  33.     "netto"=>$rekord['netto'],
  34.        
  35.     "usluga"=>$rekord['ID'],
  36.     "image"=>$rekord['image'],
  37.     "aktywny"=>$rekord['aktywny']
  38.     );
  39. }
  40.  
  41. $code = substr($_POST['code'],0,10);
  42. $nick = substr($_POST['nick'],0,20);
  43.  
  44. $err = 0;
  45.  
  46. if($code!='' && $nick!='') {
  47.     if(!preg_match("/^[A-Za-z0-9]{8}$/",$code)) {
  48.         echo '<div class="gz">niepoprawny format kodu - musi być 8 znakowy.</div>';
  49.         $err = 1;
  50.     }
  51.  
  52.     if(!preg_match("/^[A-Za-z0-9_]+$/",$nick)) {
  53.         echo '<div class="gz">Login jest nieprawidłowy.</div>';
  54.         $err = 1;
  55.     }
  56.  
  57.     #####################################
  58.     # parametry z formularza
  59.     # w którym Klient wpisuje
  60.     # otrzymany kod SMS
  61.  
  62.     # Wartość netto SMS wyrażona w groszach
  63.     $amount = intval($_GET['value_sms']);
  64.  
  65.     # sufiks usługi SMS (dla MPA.TEST będzie to słowo TEST).
  66.     $sufix = $_POST['sufiks_sms'];
  67.  
  68.     # kod SMS wprowadzony w formularzu
  69.     $sms_code = $_POST['code'];
  70.  
  71.     $id_uslugi = 0;
  72.  
  73.     foreach($config_sms as $c){
  74.         $suffiks = explode('.', $c['tresc']);
  75.         if ( $amount == $c['netto'] && $sufix == $suffiks[1]) {
  76.             $id_uslugi = $c['usluga'];
  77.         }
  78.     }
  79.     if ($id_uslugi == '0') {
  80.         // nie ma takiej usługi
  81.         $err = 1;
  82.     }
  83.    
  84.     if ($err == '0') {
  85.  
  86.         require('config/rcon_config.php');
  87.         require('include/MinecraftRcon.class.php');
  88.  
  89.         // sprawdz, czy gracz jest zalogowany
  90.         $a = do_rcon_cmd("xp ".$nick." ");
  91.  
  92.         if (eregi('Nie odnaleziono gracza', $a[1])) {
  93.             $_SESSION['komunikat'] = '<font color="red">Gracz nie jest zalogowany. Zaloguj się do gry i ponów próbę.</font>';
  94.             $err = 1;
  95.         }
  96.         if ($a[0]=='1') {
  97.             // wystapił jakis blad w Minecrafcie
  98.             $err = 1;
  99.         }
  100.     }
  101.  
  102. if ($err == 0) {
  103.  
  104.     #####################################
  105.     # Platnosci-Online
  106.     # parametry stałe
  107.  
  108.     # klucz w formie binarnej
  109.     $bkey = pack('H*' , $klucz_transakcyjny);
  110.  
  111.     # ID Partnera w systemie Płatności
  112.     # Ta wartość jest dla każdego Partnera inna.
  113.     # Znajdziesz ją w Panelu Administracyjnym w ustawieniach konta.
  114.  
  115.     ######################################
  116.     # Zasadnicza część skryptu.
  117.     #
  118.     # Wygenerowanie zapytania
  119.     # do serwera Płatności
  120.     #
  121.  
  122.     # skompletowanie danych do zapytania serwera Platnosci-Online.pl :
  123.     $tablica = array();
  124.     $tablica['code'] = $sms_code;
  125.     $tablica['id']   = $posid;
  126.     $tablica['sufix'] = $sufix;
  127.  
  128.     $sms_server = 'https://platnosci-online.pl/sms_check.php';
  129.  
  130.     # utworzenie uchwytu do sesji cURL
  131.     $opch = curl_init();
  132.  
  133.     curl_setopt ($opch, CURLOPT_URL, $sms_server);
  134.     curl_setopt ($opch, CURLOPT_SSL_VERIFYPEER, FALSE);
  135.     curl_setopt ($opch, CURLOPT_SSL_VERIFYHOST, 2);
  136.     curl_setopt ($opch, CURLOPT_FOLLOWLOCATION, 1);
  137.     curl_setopt ($opch, CURLOPT_RETURNTRANSFER, 1);
  138.     curl_setopt ($opch, CURLOPT_TIMEOUT, 100);
  139.     curl_setopt ($opch, CURLOPT_POST, 1);
  140.     curl_setopt ($opch, CURLOPT_POSTFIELDS, $tablica);
  141.  
  142.     # wywołanie sesji cURL i wpisanie
  143.     # odpowiedzi serwera Płatności do zmiennej $wynik
  144.  
  145.     $wynik = curl_exec ($opch);
  146.  
  147.     # zamknięcie sesji cURL
  148.     curl_close ($opch);
  149.  
  150.     # zapisz wynik zapytania do tablicy $dane
  151.     $dane = explode("\n", $wynik);
  152.  
  153.     # wartości danych odpowiedzi z serwera Płatności:
  154.     $status = $dane[0]; # Status transakcji. 1 - OK, 0 - błąd
  155.     $amount = $dane[1]; # Kwota w groszach za przesłanie SMS lub kod błędu jeśli wartość status jest równa 0
  156.     $control = $dane[2]; # Podpis transakcji przekazany z serwera Płatności
  157.  
  158.     # oblicz podpis transakcji
  159.     $control_test = md5($posid . $sufix . $sms_code . $bkey);
  160.  
  161.     # Kody błędów jeśli wartość $status jest równa 0
  162.     # 1 - kod już był sprawdzony przez formularz Partnera więc jest nieważny
  163.     # 2 - kod jest niewłaściwy
  164.     # 3 - SUFIKS nie należy do użytkownika
  165.     # 4 - niewłaściwy tryb sprawdzania kodów (np. sprawdzany sufiks dotyczy listy generowanych kodów zamiast kodów automatycznych)
  166.  
  167.     if ($status == '1') {
  168.             if ($control_test == $control) {
  169.                     # podpisy są zgodne
  170.                     # transakcja jest prawidłowa
  171.  
  172.                     $sql_kwerenda = mysql_query("SELECT komenda FROM services WHERE usluga = '".$id_uslugi."' ; ");
  173.                    
  174.                     $komendy = Array();
  175.                     while ($sql_komendy = mysql_fetch_array($sql_kwerenda)) {
  176.                         $komenda = $sql_komendy['komenda'];
  177.                         $komenda = str_replace('GRACZ', 'gracz' , $komenda);
  178.                         $komendy[] = str_replace('gracz', $nick , $komenda);
  179.                     }
  180.  
  181.                     // wykonaj komendy dla danej uslugi
  182.                     foreach($komendy AS $cmd){
  183.                         $a = do_rcon_cmd($cmd);
  184.                     }
  185.                     $_SESSION['komunikat'] = '<font color="#00ff66">Gratulacje,  kod jest poprawny!</font></br>';
  186.                     $_SESSION['komunikat_tick'] = 1;
  187.             }elseif($status == '0'){
  188.                     # Kod niepoprawny
  189.                     $_SESSION['komunikat']  = 'Wysłany kod SMS jest nieprawidłowy lub wcze¶niej wykorzystany.';
  190.                     $kod_bledu = $amount;
  191.                     $_SESSION['komunikat']  .= 'Kod błędu: ' . $kod_bledu;
  192.             }else{
  193.                     # nic nie rób
  194.                     # zmienna $status ma niezdefiniowaną wartość
  195.             }
  196.         }else{
  197.             // status transakcji !+ 1
  198.             $_SESSION['komunikat'] = '<font color="red">Nieprawidłowe dane.</font>';
  199.         }
  200.     }else{
  201.         // err = 1
  202.     }
  203. }else{
  204.     // brak kodu z formularza
  205. }
  206. ?>
Advertisement
Add Comment
Please, Sign In to add comment