Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- ###############################
- #
- # Platnosci-Online.pl
- #
- # skrypt obslugujacy
- # SMSShop do gry Minecraft
- #
- # wersja 3.0
- #
- # 06-07-2013
- #
- ###############################
- include 'config/config.php';
- $config_sms=array();
- include 'config/polacz.php';
- $zapytanie = mysql_query("SELECT * FROM `services` WHERE `aktywny` = '1' ORDER BY `order` ASC ;");
- $_SESSION['komunikat'] = '';
- while($rekord = mysql_fetch_array($zapytanie)) {
- $config_sms[] = array(
- "numer"=>$rekord['numer'],
- "tresc"=>$rekord['tresc'],
- "opis"=>$rekord['opis'],
- "netto"=>$rekord['netto'],
- "usluga"=>$rekord['ID'],
- "image"=>$rekord['image'],
- "aktywny"=>$rekord['aktywny']
- );
- }
- $code = substr($_POST['code'],0,10);
- $nick = substr($_POST['nick'],0,20);
- $err = 0;
- if($code!='' && $nick!='') {
- if(!preg_match("/^[A-Za-z0-9]{8}$/",$code)) {
- echo '<div class="gz">niepoprawny format kodu - musi być 8 znakowy.</div>';
- $err = 1;
- }
- if(!preg_match("/^[A-Za-z0-9_]+$/",$nick)) {
- echo '<div class="gz">Login jest nieprawidłowy.</div>';
- $err = 1;
- }
- #####################################
- # parametry z formularza
- # w którym Klient wpisuje
- # otrzymany kod SMS
- # Wartość netto SMS wyrażona w groszach
- $amount = intval($_GET['value_sms']);
- # sufiks usługi SMS (dla MPA.TEST będzie to słowo TEST).
- $sufix = $_POST['sufiks_sms'];
- # kod SMS wprowadzony w formularzu
- $sms_code = $_POST['code'];
- $id_uslugi = 0;
- foreach($config_sms as $c){
- $suffiks = explode('.', $c['tresc']);
- if ( $amount == $c['netto'] && $sufix == $suffiks[1]) {
- $id_uslugi = $c['usluga'];
- }
- }
- if ($id_uslugi == '0') {
- // nie ma takiej usługi
- $err = 1;
- }
- if ($err == '0') {
- require('config/rcon_config.php');
- require('include/MinecraftRcon.class.php');
- // sprawdz, czy gracz jest zalogowany
- $a = do_rcon_cmd("xp ".$nick." ");
- if (eregi('Nie odnaleziono gracza', $a[1])) {
- $_SESSION['komunikat'] = '<font color="red">Gracz nie jest zalogowany. Zaloguj się do gry i ponów próbę.</font>';
- $err = 1;
- }
- if ($a[0]=='1') {
- // wystapił jakis blad w Minecrafcie
- $err = 1;
- }
- }
- if ($err == 0) {
- #####################################
- # Platnosci-Online
- # parametry stałe
- # klucz w formie binarnej
- $bkey = pack('H*' , $klucz_transakcyjny);
- # ID Partnera w systemie Płatności
- # Ta wartość jest dla każdego Partnera inna.
- # Znajdziesz ją w Panelu Administracyjnym w ustawieniach konta.
- ######################################
- # Zasadnicza część skryptu.
- #
- # Wygenerowanie zapytania
- # do serwera Płatności
- #
- # skompletowanie danych do zapytania serwera Platnosci-Online.pl :
- $tablica = array();
- $tablica['code'] = $sms_code;
- $tablica['id'] = $posid;
- $tablica['sufix'] = $sufix;
- $sms_server = 'https://platnosci-online.pl/sms_check.php';
- # utworzenie uchwytu do sesji cURL
- $opch = curl_init();
- curl_setopt ($opch, CURLOPT_URL, $sms_server);
- curl_setopt ($opch, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt ($opch, CURLOPT_SSL_VERIFYHOST, 2);
- curl_setopt ($opch, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt ($opch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt ($opch, CURLOPT_TIMEOUT, 100);
- curl_setopt ($opch, CURLOPT_POST, 1);
- curl_setopt ($opch, CURLOPT_POSTFIELDS, $tablica);
- # wywołanie sesji cURL i wpisanie
- # odpowiedzi serwera Płatności do zmiennej $wynik
- $wynik = curl_exec ($opch);
- # zamknięcie sesji cURL
- curl_close ($opch);
- # zapisz wynik zapytania do tablicy $dane
- $dane = explode("\n", $wynik);
- # wartości danych odpowiedzi z serwera Płatności:
- $status = $dane[0]; # Status transakcji. 1 - OK, 0 - błąd
- $amount = $dane[1]; # Kwota w groszach za przesłanie SMS lub kod błędu jeśli wartość status jest równa 0
- $control = $dane[2]; # Podpis transakcji przekazany z serwera Płatności
- # oblicz podpis transakcji
- $control_test = md5($posid . $sufix . $sms_code . $bkey);
- # Kody błędów jeśli wartość $status jest równa 0
- # 1 - kod już był sprawdzony przez formularz Partnera więc jest nieważny
- # 2 - kod jest niewłaściwy
- # 3 - SUFIKS nie należy do użytkownika
- # 4 - niewłaściwy tryb sprawdzania kodów (np. sprawdzany sufiks dotyczy listy generowanych kodów zamiast kodów automatycznych)
- if ($status == '1') {
- if ($control_test == $control) {
- # podpisy są zgodne
- # transakcja jest prawidłowa
- $sql_kwerenda = mysql_query("SELECT komenda FROM services WHERE usluga = '".$id_uslugi."' ; ");
- $komendy = Array();
- while ($sql_komendy = mysql_fetch_array($sql_kwerenda)) {
- $komenda = $sql_komendy['komenda'];
- $komenda = str_replace('GRACZ', 'gracz' , $komenda);
- $komendy[] = str_replace('gracz', $nick , $komenda);
- }
- // wykonaj komendy dla danej uslugi
- foreach($komendy AS $cmd){
- $a = do_rcon_cmd($cmd);
- }
- $_SESSION['komunikat'] = '<font color="#00ff66">Gratulacje, kod jest poprawny!</font></br>';
- $_SESSION['komunikat_tick'] = 1;
- }elseif($status == '0'){
- # Kod niepoprawny
- $_SESSION['komunikat'] = 'Wysłany kod SMS jest nieprawidłowy lub wcze¶niej wykorzystany.';
- $kod_bledu = $amount;
- $_SESSION['komunikat'] .= 'Kod błędu: ' . $kod_bledu;
- }else{
- # nic nie rób
- # zmienna $status ma niezdefiniowaną wartość
- }
- }else{
- // status transakcji !+ 1
- $_SESSION['komunikat'] = '<font color="red">Nieprawidłowe dane.</font>';
- }
- }else{
- // err = 1
- }
- }else{
- // brak kodu z formularza
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment