Что ни делаю, пишет в "Лог платежных уведомлений" такое сообщение каждый раз
02:51:32 Тестовый Ответ 7: couldn't connect to host
02:51:32 Тестовый Запрос app_id=4625867&item=item1&lang=ru_RU¬ification_type=get_item_test&order_id=677104&
receiver_id=276364480&user_id=276364480
Что это может быть? Вот код для коллбэка, взят был из примера с этого же сайта, убрала только проверку ключа, но это тоже не помогает.
Код: Выделить всё
<?php header("Content-Type: application/json; encoding=utf-8"); $secret_key = ''; // Защищенный ключ приложения $input = $_POST; // Проверка подписи $sig = $input['sig']; unset($input['sig']); ksort($input); $str = ''; foreach ($input as $k => $v) { $str .= $k.'='.$v; } if (/*$sig != md5($str.$secret_key)*/false) { $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' => '10 монеток', //наименование 'photo_url' => '', //фотография товара,если оставить поле пустым,то будет выведена иконка приложения 'price' => 1 //цена товара в голосах ); } break; case 'get_item_test': // Получение информации о товаре в тестовом режиме $item = $input['item']; if ($item == 'item1') { $response['response'] = array( 'item_id' => 1, //id товара 'title' => '10 монеток(test mode)', //наименование '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); ?>
В лог не пишет вообще, такое ощущение, что контакт даже не вызывает мой коллбэк.