| Ralph_DiMarko |
23.12.2009 02:16 |
secure запросы из удаленного сервера.
hi all )
Делаю небольшое приложение, дошел до момента операций с secure запросами, и у меня возникла как и у многих проблема с составлением правильного запроса, во флеше
Код AS1/AS2:
function getAppBalance(){
var host = "http://www._.com.ua/vkontakte/getAppBalance.php";
var lv:LoadVars = new LoadVars();
var lv_in:LoadVars = new LoadVars();
lv_in.onLoad = function() {
delete this.onLoad;
tLog.text = unescape(this);
};
lv.sendAndLoad(host,lv_in,"POST");
}
в файле getAppBalance.php
PHP код:
<?php
$api_id = "0000";
$method = "secure.getAppBalance";
$secret = "код из платежей";
$version = "2.0";
$url = "http://api.vkontakte.ru/api.php?";
$timestamp = time();
$random = rand();
$sig = md5("api_id=".$api_id."method=".$method."random=".$random."timestamp=".$timestamp."v=".$version.$secret);
ini_set('default_charset','UTF-8');
$content = "api_id=".$api_id."&method=".$method."&random=".$random."×tamp=".$timestamp."&v=".$version."&sig=".$sig;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);// allow redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s
curl_setopt($ch, CURLOPT_POST, 1); // set POST method
curl_setopt($ch, CURLOPT_POSTFIELDS, $content); // add POST fields
$result = curl_exec($ch); // run the whole process
echo $result;
curl_close($ch);
?>
Это был рабочий код, а вот нерабочий:
во флеше аналогично, а в пхп:
PHP код:
<?php
$api_id = "0000";
$method = "secure.withdrawVotes";
$secret = "код из платежей";
$version = "2.0";
$url = "http://api.vkontakte.ru/api.php?";
$timestamp = time();
$random = rand();
$uid = "номер юзера";
$votes = "100";
$sig = md5("api_id=".$api_id."method=".$method."random=".$random."timestamp=".$timestamp."v=".$version."votes=".$votes."uid=".$uid.$secret);
ini_set('default_charset','UTF-8');
$content = "api_id=".$api_id."&method=".$method."&random=".$random."×tamp=".$timestamp."&v=".$version."&votes=".$votes."&uid=".$uid."&sig=".$sig;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);// allow redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s
curl_setopt($ch, CURLOPT_POST, 1); // set POST method
curl_setopt($ch, CURLOPT_POSTFIELDS, $content); // add POST fields
$result = curl_exec($ch); // run the whole process
echo $result;
curl_close($ch);
?>
Как видно из последнего кода, добавил и всего то две переменные и использую другой метод - хочу списать один голос со счета юзера на счет приложения, и получаю в ответ 4 ошибку все время, почему этот метод и порядок составления запроса какой то странный, постоянно приходится фантазировать в зависимости от нужного запроса, при составлении некоторых запросов заметил, что даже если не учитывать порядок, и не писать переменные по алфавиту то все нормально проходит, помогите пожалуйста разобраться, буду весьма благодарен.
На форуме все темы по поводу контакта пересмотрел, но к сожалению не помогло.
|