Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Pagalbos dėl paslaugų sistemos


Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1587 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, nežinau ar šitoje temoje rašau, jei ką perkelkit. Žodžiu klaida su paslaugų sistema, jog užsisakius valiutos (test mokėjimas arba paprastas) po kažkiek laiko gauni 2-4x daugiau valiutos. Buginasi valiuta_logs order id, meta klaidas užsakyme, niekaip neišsiaiškinu kaip sutvarkyti.

Ką rodo paysera: 

<BR /> <B>NOTICE</B>: UNDEFINED VARIABLE: CONN IN <B>/VAR/WWW/HTML/PASLAUGOS/CALLBACK.PHP</B> ON LINE <B>29</B><BR /> <BR /> <B>WARNING</B>: MYSQLI_QUERY() EXPECTS PARAMETER 1 TO BE MYSQLI, NULL GIVEN IN <B>/VAR/WWW/HTML/PASLAUGOS/CALLBACK.PHP</B> ON LINE <B>29</B><BR /> <BR /> <B>WARNING</B>: MYSQLI_NUM_ROWS() EXPECTS PARAMETER 1 TO BE MYSQLI_RESULT, NULL GIVEN IN <B>/VAR/WWW/HTML/PASLAUGOS/CALLBACK.PHP</B> ON LINE <B>31</B><BR /> OK
http://samp.sang.lt/paslaugos/callback.php?data=b3JkZXJpZD0yMDE5MzI1MTAxNTQ1JnBfZmlyc3RuYW1lPUphbWVzX0NyYXp5JnBfbGFzdG5hbWU9KyZhbW91bnQ9MTYwMCZjdXJyZW5jeT1FVVImY291bnRyeT1MVCZ0ZXN0PTEmdmFsaXV0YT00OCZ2ZXJzaW9uPTEuNiZwcm9qZWN0aWQ9MTUyNjE4Jm9yaWdpbmFsX3BheXRleHQ9JnR5cGU9RU1BJmxhbmc9bGl0JnBheW1lbnQ9d2FsbGV0JnBheXRleHQ9VSVDNSVCRXNha3ltbytuciUzQSsyMDE5MzI1MTAxNTQ1K2h0dHAlM0ElMkYlMkZzYW1wLnNhbmcubHQrcHJvamVrdGUuKyUyOFBhcmRhdiVDNCU5N2phcyUzQStJbmdhK0RvbWFya2llbiVDNCU5NyUyOSZwX2VtYWlsPWVydmluYXM1NDglNDBnbWFpbC5jb20mX2NsaWVudF9sYW5ndWFnZT1saXQmbV9wYXlfcmVzdG9yZWQ9Mjk5NDc1MjM0JnRyaWVkX2NoYW5naW5nX2VtYWlsPTEmYWNjb3VudD1URVNUMTIzNDU2Nzg5MCZzdGF0dXM9MSZwYXlhbW91bnQ9MTYwMCZwYXljdXJyZW5jeT1FVVImcmVxdWVzdGlkPTI5OTQ3NTIzNCZuYW1lPU5hbWUmc3VyZW5hbWU9TGFzdCtuYW1lJnBheWVyX2lwX2NvdW50cnk9TFQmcGF5ZXJfY291bnRyeT1MVA%3D%3D&ss1=5c89eb0b45be691f14cdb65a9964d36b&ss2=VB4HlJQ_jgO8y09igaqFqgt1jxJOvJqf9E4q194YnGQ33za90Qt5sjLbbjfY1pnGjV0LhBRHURbIk3itBlUXP2YnREDG7S3MmV1vSi-6rmehupHf0R4PKh3SHNEKGVjzUdeQNuh1yVwBzSMHb3qBszs_uDgBpkqh6UVDO2gBLgc%3D

valiuta_logs mysqele:

image.png.7c1bb628f1c87efef3d7be8688f8b82e.png

callback.php kodas:

<?php

    require_once('WebToPay.php');
    require_once('config.php');
    require_once('mysql.php');

    try {
        $response = WebToPay::checkResponse($_GET, array(
            'projectid'     => $pid,
            'sign_password' => $pPW,
        ));

        /*if ($response['test'] != '1') {
            throw new Exception('Ijungtas test rezimas');
        }

        if ($response['type'] != 'macro') {
            throw new Exception('Tik makro callback galimas');
        }*/

        $amount   = $response['amount'];
        $name     = $response['p_firstname'];
        $currency = $response['currency'];
        $valiuta  = $response['valiuta'];
        $orderId  = $response['orderid'];

        $mysql 	  = new mysqlfunctions();

        $sql = mysqli_query($conn, "SELECT `u_orderID` FROM `valiuta_logs` WHERE `u_orderID` = '$orderId'");

        if(mysqli_num_rows($sql) > 0) {
            echo 'OK';
            mysqli_free_result($sql);
        }
        else {
            $mysql->myQuery ("UPDATE `players` SET `Valiuta2` = (Valiuta2 + $valiuta) WHERE `Name` = '$name'");
            $mysql->myQuery ("INSERT INTO `valiuta_logs` (`u_name`, `u_quantity`, `u_orderID`) VALUES ('$name', '$valiuta', '$orderId')");
            
            echo 'OK';
        }
    } 

    catch (Exception $e) {
        echo get_class($e) . ': ' . $e->getMessage();
    } 

 

Nuoroda į komentarą
Dalintis per kitą puslapį

<?php

require 'WebToPay.php';
require 'config.php';
require 'mysql.php';

try {
	# Vietoj $_GET, turėtum naudoti $_POST (Paysera irgi atsinaujinti nustatymus).
	$response = WebToPay::checkResponse($_GET, array(
		'projectid' => $pid,
		'sign_password' => $pPW,
	));

	$order_id = (int) $response['orderid'];
	$amount = (int) $response['amount'] / 100;

	$name = htmlspecialchars(mysqli_real_escape_string($conn, $response['p_firstname'], ENT_QUOTES, 'UTF-8'));
	$currency = htmlspecialchars(mysqli_real_escape_string($conn, $response['currency']), ENT_QUOTES, 'UTF-8');

	$valiuta = (int) $response['valiuta'];

	if ($currency === 'EUR') { // && $amount == $prekeskaina -- turėtum dėl apsaugos patikrinti ar sumokėta suma atitinka su prekės.
		$mysqli_query = mysqli_query($conn, "UPDATE `players` SET `Valiuta2` = `Valiuta2` + '$valiuta' WHERE `Name` = '$name';");

		if ($mysqli_query) {
			mysqli_query($conn, "INSERT INTO `valiuta_logs` (`u_name`, `u_quantity`, `u_orderID`) VALUES ('$name', '$valiuta', '$order_id');");

			echo 'OK Užsakymas sėkmingai apmokėtas.';
		} else {
			echo 'ERROR Nepavyko atnaujinti duomenų bazės.';
		}
	} else {
		echo 'ERROR Nepalaikoma valiuta.';
	}
} catch (Exception $e) {
	echo get_class($e).':'.$e->getMessage();
}

mysqli_close($conn);

?>

 

Redaguota , nario NTQ
Nuoroda į komentarą
Dalintis per kitą puslapį

5 minutes prieš, NTQ parašė:

<?php

require 'WebToPay.php';
require 'config.php';
require 'mysql.php';

try {
	$response = WebToPay::checkResponse($_GET, array(
		'projectid' => $pid,
		'sign_password' => $pPW,
	));

	$order_id = (int) $response['orderid'];
	$amount = (int) $response['amount'] / 100;

	$name = htmlspecialchars(mysqli_real_escape_string($conn, $response['p_firstname'], ENT_QUOTES, 'UTF-8'));
	$currency = htmlspecialchars(mysqli_real_escape_string($conn, $response['currency']), ENT_QUOTES, 'UTF-8');

	$valiuta = (int) $response['valiuta'];

	if ($currency === 'EUR') { // && $amount == $prekeskaina -- turėtum dėl apsaugos patikrinti ar sumokėta suma atitinka su prekės.
		$mysqli_query = mysqli_query($conn, "UPDATE `players` SET `Valiuta2` = `Valiuta2` + '$valiuta' WHERE `Name` = '$name';");

		if ($mysqli_query) {
			mysqli_query($conn, "INSERT INTO `valiuta_logs` (`u_name`, `u_quantity`, `u_orderID`) VALUES ('$name', '$valiuta', '$order_id');");

			echo 'OK Užsakymas sėkmingai apmokėtas.';
		} else {
			echo 'ERROR Nepavyko atnaujinti duomenų bazės.';
		}
	} else {
		echo 'ERROR Nepalaikoma valiuta.';
	}
} catch (Exception $e) {
	echo get_class($e).':'.$e->getMessage();
}

mysqli_close($conn);

?>

 

ateik į dc dar.

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1587 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...