Вот как делал я:
Тут пользователь вводит вивер айди, и с этого айди снимаются голоса. После снятия голосов за каждый начисляется +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 = 'апи айди'; // id приложения$api_secret = 'апи секрет'; // Защищенный ключ СЃ вкладки "Платежи" $auth_key = $_POST['auth_key']; // auth_key РёР· FlashVars приложения$viewer_id = $_POST['viewer_id']; // 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";?>