Списание голосов.
Re: Списание голосов.
psix55
Куда вынуть? Смотри код на первой странице.
curl_exec($ch) - это ответ на запрос.
В коде на 5ой странице, я записываю в $result полученный ответ, преобразовав его в SimpleXMLElement, для последующей обработки.
Куда вынуть? Смотри код на первой странице.
curl_exec($ch) - это ответ на запрос.
В коде на 5ой странице, я записываю в $result полученный ответ, преобразовав его в SimpleXMLElement, для последующей обработки.
Re: Списание голосов.
Александр, я попытался проверить Ваше приложение по списанию голоса, но почему-то ничего не вышло... те файлы которые нужно было закинуть на сервак закинул, всё что нужно поменял в withdrawvotes.php, закинул приложение в контакт... но голос не списывается... можете подсказать что я сделал не так?
Re: Списание голосов.
пробовал голоса не списывает Александр напишите пожалуйсто весь код проверки есть ли у пользователя голоса и как это реализовать в приложении - буду благодарен!!
Re: Списание голосов.
kobl
Не знаю где у тебя ошибка. Проверь поддержку cURL на хостинге http://flapps.ru/forum/topic144.html
Попробуй проанализировать сниффером взаимодействие твоего приложения с сервером.
VIP
Где у тебя возникает проблема? Напиши код, который написал и протестировал ты.
На прошлой странице я написал часть кода. Додумай логически и протестируй. Мне сейчас это не надо и у меня нет на это времени.
Не знаю где у тебя ошибка. Проверь поддержку cURL на хостинге http://flapps.ru/forum/topic144.html
Попробуй проанализировать сниффером взаимодействие твоего приложения с сервером.
VIP
Где у тебя возникает проблема? Напиши код, который написал и протестировал ты.
На прошлой странице я написал часть кода. Додумай логически и протестируй. Мне сейчас это не надо и у меня нет на это времени.
Re: Списание голосов.
Код: Выделить всё
<?
require('VkApi.class.php');
$app_id = 'id; // id приложения
$api_secret = 'yxaxaxaxaxaxaxa'; // Защищенный ключ с вкладки "Платежи"
$auth_key = $_POST['auth_key']; // auth_key из FlashVars приложения
$viewer_id = $_POST['viewer_id']; // id просматривающего приложение
// Рассчитывается ключ авторизации
$real_key = md5($app_id."_".$viewer_id."_".$api_secret);
if ($auth_key == $real_key){
// Создание запроса
$api = new VkApiNode($app_id, $api_secret);
$uid = $viewer_id; // id просматривающего приложение
$votes = 100; // Количество голосов (1 голос = 100)
$query = $api->withdrawVotes($uid, $votes);
// Выполнение запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $query);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_exec($ch);
$votes = new SimpleXMLElement(curl_exec($ch));
curl_close($ch);
}
if ($votes->transferred>0) {
echo 'Голос списан';
}
else {
switch($votes->error_code)
{
case 502:
echo 'На вашем балансе недостаточно голосов!';
break;
default:
echo 'Произошла ошибка!';
}
}
?>
во флеш пишу
Код: Выделить всё
btn.addEventListener(MouseEvent.CLICK,btnClick);
function btnClick(e:MouseEvent):void {
var params:Object=LoaderInfo(root.loaderInfo).parameters;
var loader:URLLoader = new URLLoader();
var request:URLRequest=new URLRequest("http://адрес скрипта.php"); // адрес вашего скрипта
request.method=URLRequestMethod.POST;
var vars:URLVariables = new URLVariables();
vars['auth_key']=wrapper.application.parameters.auth_key; // auth_key из FlashVars
vars['viewer_id']=wrapper.application.parameters.viewer_id; // ID просматривающего приложение
request.data=vars;
loader.addEventListener(Event.COMPLETE,onComplete);
loader.load(request);
}
//Вывожу всё в текстовое поле
function onComplete(event:Event):void {
result_tf.text=loader.data;
}
Re: Списание голосов.
Так вот когда я на прямую обращаюсь к скрипту то пишет "Произошла ошибка!" но во флеш даже это не выводит!!!!
Re: Списание голосов.
VIP
Почему ты делаешь это
за пределами этого?
crossdomain.xml на сервере есть?
Используешь контейнер?
Если нет, то тебе надо получать auth_key и viewer_id по другому.
Скачать какой-нибудь сниффер и проанализируй как взаимодействует твое приложение с сервером.
Почему ты делаешь это
Код: Выделить всё
if ($votes->transferred>0) {
echo 'Голос списан';
}
else {
switch($votes->error_code)
{
case 502:
echo 'На вашем балансе недостаточно голосов!';
break;
default:
echo 'Произошла ошибка!';
}
}
Код: Выделить всё
if ($auth_key == $real_key)
Используешь контейнер?
Если нет, то тебе надо получать auth_key и viewer_id по другому.
Скачать какой-нибудь сниффер и проанализируй как взаимодействует твое приложение с сервером.
Re: Списание голосов.
Именно использую контейнер всё описано и он работает! То ест никаких возражений с боку флеш нет?