Как вывести людей которые сделали платеж.

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Аватара пользователя
Deniska
Сообщения: 653
Зарегистрирован: 30 окт 2009, 00:07

Как вывести людей которые сделали платеж.

Сообщение Deniska »

Собственно вопрос в теме. Я так понял нужно того кто сделал пожертву занести в базу , но каК?
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: Как вывести людей которые сделали платеж.

Сообщение psix55 »

С помощью метода secure.withdrawVotes списываешь голоса со счета пользователя на счет приложения...
Если всё пройдет успешно, контакт тебе ответит примерно такое :
<?xml version="1.0" encoding="utf-8"?>
<response>
<transferred>350</transferred>
</response>
Ты должен вынуть "transferred", а потом я думаю всё понятно...

Код: Выделить всё

if($transferred >> 100){      //занести пользователя в БД (Это я думаю ты умеешь делать)}
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Как вывести людей которые сделали платеж.

Сообщение Александр »

Если каких-то других платежей в приложении нет, то можно использовать метод secure.getTransactionsHistory.
Аватара пользователя
Deniska
Сообщения: 653
Зарегистрирован: 30 окт 2009, 00:07

Re: Как вывести людей которые сделали платеж.

Сообщение Deniska »

Для secure.getTransactionsHistory требуется специальный серверный класс да? Где бы его найти?
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: Как вывести людей которые сделали платеж.

Сообщение psix55 »

Аватара пользователя
Deniska
Сообщения: 653
Зарегистрирован: 30 окт 2009, 00:07

Re: Как вывести людей которые сделали платеж.

Сообщение Deniska »

Оно. Ели нашел почему на сигнатуру ругалось. Разобрался.

Но теперь выводит информацию в таком виде: Array ( [response] => Array ( [0] => Array ( [id] => 137044564 [uid_from] => 9944676 [votes] => 100 [date] => 1295173102 ) ) )

Как отсюда выделить только нужную мне информацию? ( uid_from и votes)
Аватара пользователя
Doker
Модератор
Модератор
Сообщения: 1026
Зарегистрирован: 07 май 2010, 18:53

Re: Как вывести людей которые сделали платеж.

Сообщение Doker »

Я записываю каждую транзакция в базу данных.
Все очень хорошо и удобно.

Тоесть при нажатии кнопки "перевести голоса на счет приложения" записывает айди транзакции,айди юзера, время, успешность (если голосов небыло на счету то транзакция отклонена и ставится 0, если были и снялись то 1), кол-во голосов

если надо - могу скинуть скрипт
Аватара пользователя
Deniska
Сообщения: 653
Зарегистрирован: 30 окт 2009, 00:07

Re: Как вывести людей которые сделали платеж.

Сообщение Deniska »

Буду благодарен если можно.
НО все таки интересно как вывести нужную информацию.
Аватара пользователя
Doker
Модератор
Модератор
Сообщения: 1026
Зарегистрирован: 07 май 2010, 18:53

Re: Как вывести людей которые сделали платеж.

Сообщение Doker »

Код: Выделить всё

 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 ; 

Код: Выделить всё

<?phprequire('VkApi.class.php');  $db_host="localhost";       $db_user="sdfsdfsd";      $db_password="sdfsdfsdfs";      $db_name = "sdfsdfsd";$table_name = "sdfsdfsdf";     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 id'; $api_secret = 'secret'; $auth_key  = $_POST['auth_key'];  // auth_key из FlashVars приложения$UserID = $_POST['viewer_id']; // id просматривающего приложение$vote = $_POST['vote'];  // Кол-во голосов $real_key = md5($app_id."_".$UserID."_".$api_secret); if ($real_key == $auth_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($UserID);$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($UserID, $vote2)); $ok="1";$query3 = 'INSERT INTO logs_add_mattery  (`username`, `mattery`, `date`,`ok`,`votes`) VALUES ("'.$UserID.'","'.$scores.'","'.time().'","'.$ok.'","'.$vote.'")';    $sql3 = @mysql_query($query3); header("Location: index.php");exit();} else{ echo "На вашем счету недостаточно голосов <br />"; echo "На вашем счету: ";echo "not enough votes" + $user_balance->balance;echo " голосов";$vote000=$vote; $ok2="0";$query6 = 'INSERT INTO logs_add_mattery  (`username`, `mattery`, `date`,`ok`,`votes`) VALUES ("'.$UserID.'","'.$scores.'","'.time().'","'.$ok2.'","'.$vote000.'")';    $sql6 = @mysql_query($query6);}}?>
Аватара пользователя
Deniska
Сообщения: 653
Зарегистрирован: 30 окт 2009, 00:07

Re: Как вывести людей которые сделали платеж.

Сообщение Deniska »

спасибо.
Ответить