Вот как делал я:
Тут пользователь вводит вивер айди, и с этого айди снимаются голоса. После снятия голосов за каждый начисляется +1000 игровой валюты в базу данных. + Ведение статистики. Записываются все удачные и не удачные транзакции. Если успешно то все данные - сколько ввело, сколько добавило вводятся в бд. Если не успешно - в бд записываются вьювер айди и статус ok=0;
Делаем запрос в mysql:
Код
CREATE TABLE IF NOT EXISTS `logs_add_mattery` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` text NOT NULL,
`mattery` text NOT NULL,
`date` text NOT NULL,
`ok` text NOT NULL,
`votes` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Файл pay.html
Код
<div id="content" align="center">
<table width="668">
<tr>
<td style="text-align:left" class=b>
<form action = "http://site.ru/game2/pay.php" method = "post">
<center>Нажмите "Настройки" над приложением. Введите нужное кол-во голосов. Заполните поля ниже. Курс: 1 000 игровой валюты - 1 голос. <br /> <br />
<center><b>Кол-во голосов:</b><br />
<input name="vote" id="vote"><br>
<b>Ваш айди:</b><br />
<input name="viewer_id" id="viewer_id">
<input name="auth_key" id="auth_key" type="hidden">
<input type="submit" value="Купить">
</form>
</td>
</tr>
<table>
</div>
Файл pay.php
Код
<?
require('VkApi.class.php');
$db_host="localhost";
$db_user="dbuser";
$db_password="dbpass";
$db_name = "dbname";
$table_name = "tablename";
mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());
mysql_select_db($db_name) or die (mysql_error());
mysql_query("SET NAMES 'utf8'");
$app_id = 'апи айди';
$api_secret = 'апи секрет';
$auth_key = $_POST['auth_key'];
$viewer_id = $_POST['viewer_id'];
$vote = $_POST['vote'];
$real_key = md5($app_id."_".$viewer_id."_".$api_secret);
//if ($auth_key == $real_key){
function get_url($query) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $query);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
return curl_exec($ch);
curl_close($ch);
}
$api = new VkApiNode($app_id, $api_secret);
$query = $api->getBalance($viewer_id);
$user_balance = new SimpleXMLElement(get_url($query));
if($vote>0)
{
$vote2=$vote*100;
}
if ($user_balance->balance >=$vote2 && $vote>0) {
get_url($query = $api->withdrawVotes($viewer_id, $vote2));
$scores=1000*$vote;
$query2 = 'UPDATE название_таблицы_куда_мы_прибавим за каждый_голос_1000 SET score=score+"'.$scores.'" where `username` ="'.$viewer_id.'"';
$sql2 = @mysql_query($query2);
$ok="1";
$query3 = 'INSERT INTO logs_add_mattery (`username`, `mattery`, `date`,`ok`,`votes`) VALUES ("'.$viewer_id.'","'.$scores.'","'.time().'","'.$ok.'","'.$vote.'")';
$sql3 = @mysql_query($query3);
header("Location: /game.php?page=pay");
exit();
} else
{ echo "На вашем счету недостаточно голосов <br />";
echo "На вашем счету: ";
echo "not enough votes" + $user_balance->balance;
echo " голосов";
$ok2="0";
$query6 = 'INSERT INTO logs_add_mattery (`username`, `mattery`, `date`,`ok`) VALUES ("'.$viewer_id.'","'.$scores.'","'.time().'","'.$ok2.'")';
$sql6 = @mysql_query($query6);
}
//} else echo "incorrect sig";
?>