
Код AS3:
private function paymentsGo(e:MouseEvent):void {
VK.callMethod('showOrderBox', {type:'votes', item:'Алмаз', votes:golosa});
}
private function onSuccess(data:Object):void {
var uv:URLVariables = new URLVariables();
uv["votes"] = golosa;
uv["id"] = Main.id;
uv["hash"] = Main.auth_key;
uv["action"] = 12;
uv["hash1"] = MD5.encrypt(Main.id + "_" + golosa);
var req:REQ = new REQ(uv);
req.addEventListener(REQ.COMPLETE, completeReqHandler);
}
private function completeReqHandler(e:Event):void {
e.currentTarget.removeEventListener(REQ.COMPLETE, completeReqHandler);
var ur:URLVariables = new URLVariables(e.currentTarget.data);
if (ur.req == "true") {
Main.diamond = Main.diamond + (golosa * 15);
}else {
Main.setMessage(Main.write("errors", "unknown_error"));
}
}
private function onError(data: Object):void {
paySet.resultTxt.text = data.error_msg;
Main.setMessage(Main.write("errors", "unknown_error"));
}
private function onCanc(data:Object):void {
Main.setMessage(Main.write("errors", "unknown_error"));
}
Вот as3 код. Однако, через раз не присылает ответ

PHP код:
$sig = $input['sig'];
unset($input['sig']);
ksort($input);
$str = '';
foreach ($input as $k => $v) {
$str .= $k.'='.$v;
}
if ($sig != md5($str.$secret_key)) {
$response['error'] = array(
'error_code' => 10,
'error_msg' => 'Несовпадение вычисленной и переданной подписи запроса.',
'critical' => true
);
} else {
// Подпись правильная
switch ($input['notification_type']) {
case 'get_item':
// Получение информации о товаре
$item = $input['item']; // наименование товара
if ($item == 'item1') {
$response['response'] = array(
'item_id' => 1, //id товара
'title' => 'Алмаз', //наименование
'photo_url' => '', //фотография товара,если оставить поле пустым,то будет выведена иконка приложения
'price' => 1 //цена товара в голосах
);
}
break;
case 'get_item':
// Получение информации о товаре в тестовом режиме
$item = $input['item'];
if ($item == 'item1') {
$response['response'] = array(
'item_id' => 1, //id товара
'title' => 'Алмаз', //наименование
'photo_url' => '', //фотография товара,если оставить поле пустым,то будет выведена иконка приложения
'price' => 1 //цена товара в голосах
);
}
break;
case 'order_status_change':
// Изменение статуса заказа
if ($input['status'] == 'chargeable') {
$order_id = intval($input['order_id']);
$user_id = intval($input['user_id']);
// Код проверки товара, включая его стоимость
//Вконтакте может несколько раз отправлять уведомления типа Изменения статуса заказа
//(с тем же order_id) и ответ должен в точности повторять ответ для исходного уведомления.
$handle = fopen("file.txt","a+"); // ОТкрываем фаил,чтобы записать туда ид плтельщика и ид покупки
fwrite($handle,"\n".user_id."\n".$order_id); // Записываем
fclose($handle); // Закрываем фаил
$response['response'] = array(
'order_id' => $order_id,
);
} else {
$response['error'] = array(
'error_code' => 100,
'error_msg' => 'Передано непонятно что вместо chargeable.',
'critical' => true
);
}
break;
case 'order_status_change_test':
// Изменение статуса заказа в тестовом режиме
if ($input['status'] == 'chargeable') {
$order_id = intval($input['order_id']);
$user_id = intval($input['user_id']);
$handle = fopen("file.txt","a+"); // ОТкрываем фаил,чтобы записать туда ид плтельщика и ид покупки
fwrite($handle,"\n".$user_id."\n".$order_id); // Записываем
fclose($handle); // Закрываем фаил
$response['response'] = array(
'order_id' => $order_id,
);
} else {
$response['error'] = array(
'error_code' => 100,
'error_msg' => 'Передано непонятно что вместо chargeable.',
'critical' => true
);
}
break;
}
}
echo json_encode($response);
?>
вот php