mirror of
https://github.com/Znote/ZnoteAAC.git
synced 2025-04-30 03:09:22 +02:00
Paygol IPN works (Mobile payments).
This commit is contained in:
parent
1946d87911
commit
a236ec2db8
@ -69,7 +69,6 @@ if ($config['paygol']['enabled'] == true) {
|
|||||||
<input type="hidden" name="pg_price" value="<?php echo $paygol['price']; ?>">
|
<input type="hidden" name="pg_price" value="<?php echo $paygol['price']; ?>">
|
||||||
<input type="hidden" name="pg_return_url" value="<?php echo $paygol['returnURL']; ?>">
|
<input type="hidden" name="pg_return_url" value="<?php echo $paygol['returnURL']; ?>">
|
||||||
<input type="hidden" name="pg_cancel_url" value="<?php echo $paygol['cancelURL']; ?>">
|
<input type="hidden" name="pg_cancel_url" value="<?php echo $paygol['cancelURL']; ?>">
|
||||||
<input type="hidden" name="pg_notify" value="<?php echo $paygol['ipnURL']; ?>">
|
|
||||||
<input type="image" name="pg_button" src="http://www.paygol.com/micropayment/img/buttons/150/black_en_pbm.png" border="0" alt="Make payments with PayGol: the easiest way!" title="Make payments with PayGol: the easiest way!">
|
<input type="image" name="pg_button" src="http://www.paygol.com/micropayment/img/buttons/150/black_en_pbm.png" border="0" alt="Make payments with PayGol: the easiest way!" title="Make payments with PayGol: the easiest way!">
|
||||||
</form>
|
</form>
|
||||||
<?php }
|
<?php }
|
||||||
|
16
config.php
16
config.php
@ -386,17 +386,17 @@
|
|||||||
/// PAYGOL SMS ///
|
/// PAYGOL SMS ///
|
||||||
//////////////////
|
//////////////////
|
||||||
// !!! Paygol takes 60%~ of the money, and send aprox 40% to your paypal.
|
// !!! Paygol takes 60%~ of the money, and send aprox 40% to your paypal.
|
||||||
// You can configure paygol to send each month, then they will send money to you 1 month after recieving 50+ eur.
|
// You can configure paygol to send each month, then they will send money
|
||||||
|
// to you 1 month after recieving 50+ eur.
|
||||||
$config['paygol'] = array(
|
$config['paygol'] = array(
|
||||||
'enabled' => true,
|
'enabled' => true,
|
||||||
'serviceID' => 40339,// Service ID from paygol.com
|
'serviceID' => 86648,// Service ID from paygol.com
|
||||||
'currency' => 'EUR',
|
'currency' => 'SEK',
|
||||||
'price' => 5,
|
'price' => 20,
|
||||||
'points' => 25, // Remember to write same details in paygol.com!
|
'points' => 20, // Remember to write same details in paygol.com!
|
||||||
'name' => '25 points',
|
'name' => '20 points',
|
||||||
'returnURL' => "http://".$_SERVER['HTTP_HOST']."/success.php",
|
'returnURL' => "http://".$_SERVER['HTTP_HOST']."/success.php",
|
||||||
'cancelURL' => "http://".$_SERVER['HTTP_HOST']."/failed.php",
|
'cancelURL' => "http://".$_SERVER['HTTP_HOST']."/failed.php"
|
||||||
'ipnURL' => "http://".$_SERVER['HTTP_HOST']."/paygol_ipn.php",
|
|
||||||
);
|
);
|
||||||
|
|
||||||
////////////
|
////////////
|
||||||
|
104
paygol_ipn.php
104
paygol_ipn.php
@ -1,103 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
// Require the functions to connect to database and fetch config values
|
|
||||||
require 'config.php';
|
require 'config.php';
|
||||||
require 'engine/database/connect.php';
|
require 'engine/database/connect.php';
|
||||||
|
|
||||||
// Fetch paygol configurations
|
|
||||||
$paygol = $config['paygol'];
|
|
||||||
|
|
||||||
// check that the request comes from PayGol server
|
// check that the request comes from PayGol server
|
||||||
if(!in_array($_SERVER['REMOTE_ADDR'],
|
|
||||||
array('109.70.3.48', '109.70.3.146', '109.70.3.58', '31.45.23.9'))) {
|
|
||||||
header("HTTP/1.0 403 Forbidden");
|
|
||||||
die("Error: Unknown IP");
|
|
||||||
}
|
|
||||||
|
|
||||||
// get the variables from PayGol system
|
|
||||||
$message_id = $_GET['message_id'];
|
|
||||||
$service_id = $_GET['service_id'];
|
|
||||||
$shortcode = $_GET['shortcode'];
|
|
||||||
$keyword = $_GET['keyword'];
|
|
||||||
$message = $_GET['message'];
|
|
||||||
$sender = $_GET['sender'];
|
|
||||||
$operator = $_GET['operator'];
|
|
||||||
$country = $_GET['country'];
|
|
||||||
$custom = $_GET['custom'];
|
|
||||||
$points = $_GET['points'];
|
|
||||||
$price = $_GET['price'];
|
|
||||||
$currency = $_GET['currency'];
|
|
||||||
|
|
||||||
// FUNCTIONS
|
|
||||||
function sanitize($data)/* Security reasons */ {
|
|
||||||
return htmlentities(strip_tags(mysql_znote_escape_string($data)));
|
|
||||||
}
|
|
||||||
function user_data($user_id)/* account data */ {
|
|
||||||
$data = array();
|
|
||||||
$user_id = sanitize($user_id);
|
|
||||||
|
|
||||||
$func_num_args = func_num_args();
|
|
||||||
$func_get_args = func_get_args();
|
|
||||||
|
|
||||||
if ($func_num_args > 1) {
|
|
||||||
unset($func_get_args[0]);
|
|
||||||
|
|
||||||
$fields = '`'. implode('`, `', $func_get_args) .'`';
|
|
||||||
$data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `accounts` WHERE `id` = $user_id;"));
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Since only paygol.com is able to communicate with this script, we will blindly trust them until proven othervise.
|
|
||||||
if ($service_id == $paygol['serviceID']) {
|
|
||||||
$new_points = (int)$paygol['points'];
|
|
||||||
|
|
||||||
$data = user_data($custom, 'name');
|
|
||||||
if ($data['name']) {
|
|
||||||
// Sanitize all data: (ok, we do not completely trust them blindly. D:)
|
|
||||||
$message_id = sanitize($message_id);
|
|
||||||
$service_id = sanitize($service_id);
|
|
||||||
$shortcode = sanitize($shortcode);
|
|
||||||
$keyword = sanitize($keyword);
|
|
||||||
$message = sanitize($message);
|
|
||||||
$sender = sanitize($sender);
|
|
||||||
$operator = sanitize($operator);
|
|
||||||
$country = sanitize($country);
|
|
||||||
$custom = sanitize($custom);
|
|
||||||
$points = sanitize($points);
|
|
||||||
$price = sanitize($price);
|
|
||||||
$currency = sanitize($currency);
|
|
||||||
|
|
||||||
// Update logs:
|
|
||||||
$log_query = mysql_query("INSERT INTO `znote_paygol` VALUES ('', '$custom', '$price', '$new_points', '$message_id', '$service_id', '$shortcode', '$keyword', '$message', '$sender', '$operator', '$country', '$currency')")or die("Log paygol SQL ERROR");
|
|
||||||
|
|
||||||
// Give points to user
|
|
||||||
$old_points = mysql_result(mysql_query("SELECT `points` FROM `znote_accounts` WHERE `account_id`='$custom';"), 0, 'points');
|
|
||||||
echo 'Custom: '. $custom .'<br>';
|
|
||||||
echo "Query: SELECT `points` FROM `znote_accounts` WHERE `account_id`='$custom';<br>";
|
|
||||||
echo 'Old points: '. $old_points .'<br>';
|
|
||||||
$new_points += $old_points;
|
|
||||||
echo 'New points: '. $new_points .'<br>';
|
|
||||||
$update_account = mysql_query("UPDATE `znote_accounts` SET `points`='$new_points' WHERE `account_id`='$custom'")or die(mysql_error());
|
|
||||||
echo 'Account id 2 shold be updated now!';
|
|
||||||
|
|
||||||
} else echo ' character data false';
|
|
||||||
|
|
||||||
} else echo 'service id wrong';
|
|
||||||
?>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<?php
|
|
||||||
/* TODO: FIX THIS FOR 1.5
|
|
||||||
require_once 'engine/init.php';
|
|
||||||
include 'layout/overall/header.php';
|
|
||||||
|
|
||||||
if(!in_array($_SERVER['REMOTE_ADDR'],
|
if(!in_array($_SERVER['REMOTE_ADDR'],
|
||||||
array('109.70.3.48', '109.70.3.146', '109.70.3.58'))) {
|
array('109.70.3.48', '109.70.3.146', '109.70.3.58'))) {
|
||||||
header("HTTP/1.0 403 Forbidden");
|
header("HTTP/1.0 403 Forbidden");
|
||||||
die("Error: Unknown IP");
|
die("Error: Unknown IP");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// get the variables from PayGol system
|
// get the variables from PayGol system
|
||||||
$message_id = $_GET['message_id'];
|
$message_id = $_GET['message_id'];
|
||||||
$service_id = $_GET['service_id'];
|
$service_id = $_GET['service_id'];
|
||||||
@ -112,11 +23,16 @@ $points = $_GET['points'];
|
|||||||
$price = $_GET['price'];
|
$price = $_GET['price'];
|
||||||
$currency = $_GET['currency'];
|
$currency = $_GET['currency'];
|
||||||
|
|
||||||
// Here you can do whatever you want with the variables, for instance inserting or updating data into your Database
|
$paygol = $config['paygol'];
|
||||||
|
$new_points = $paygol['points'];
|
||||||
|
|
||||||
|
// Update logs:
|
||||||
|
mysql_insert("INSERT INTO `znote_paygol` VALUES ('', '$custom', '$price', '$new_points', '$message_id', '$service_id', '$shortcode', '$keyword', '$message', '$sender', '$operator', '$country', '$currency')");
|
||||||
|
|
||||||
$query = mysql_query("UPDATE `znote_accounts` SET `points` = `points` + ".$points." WHERE `account_id` = ".$custom);
|
// Fetch points
|
||||||
|
$account = mysql_select_single("SELECT `points` FROM `znote_accounts` WHERE `account_id`='$custom';");
|
||||||
include 'layout/overall/footer.php';
|
// Calculate new points
|
||||||
*/
|
$new_points = $account['points'] + $new_points;
|
||||||
|
// Update new points
|
||||||
|
mysql_update("UPDATE `znote_accounts` SET `points`='$new_points' WHERE `account_id`='$custom'");
|
||||||
?>
|
?>
|
Loading…
x
Reference in New Issue
Block a user