Полноценные пример работы Payments API

Если вы хотите получить что-то готовое и бесплатно, то пишите в этом разделе.
kahoxa
Сообщения: 59
Зарегистрирован: 10 фев 2012, 17:09

Re: Полноценные пример работы Payments API

Сообщение kahoxa »

Что теперь не так?
вот JS:

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

 <script type="text/javascript">  function order() {    var params = {      type: 'get_item',      item: 'item1'    };    VK.callMethod('showOrderBox', params);  }   var callbacksResults = document.getElementById('callbacks');   VK.addCallback('onOrderSuccess', function(order_id) {    callbacksResults.innerHTML += '<br />onOrderSuccess '+order_id;  });  VK.addCallback('onOrderFail', function() {    callbacksResults.innerHTML += '<br />onOrderFail';  });  VK.addCallback('onOrderCancel', function() {    callbacksResults.innerHTML += '<br />onOrderCancel';  });</script> 
вот php:

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

<?phpheader("Content-Type: application/json; encoding=utf-8"); $secret_key = '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)) {   $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' => 25,           'title' => '300 золотых монет',           'photo_url' => 'http://somesite/images/coin.jpg',           'price' => 5         );       } elseif ($item == 'item2') {         $response['response'] = array(           'item_id' => 27,           'title' => '500 золотых монет',           'photo_url' => 'http://somesite/images/coin.jpg',           'price' => 10         );       } else {         $response['error'] = array(           'error_code' => 20,           'error_msg' => 'Товара не существует.',           'critical' => true         );       }       break;  case 'get_item_test':       // Получение информации о товаре в тестовом режиме       $item = $input['item'];       if ($item == 'item1') {         $response['response'] = array(           'item_id' => 125,           'title' => '300 золотых монет (тестовый режим)',           'photo_url' => 'http://somesite/images/coin.jpg',           'price' => 5         );       } elseif ($item == 'item2') {         $response['response'] = array(           'item_id' => 127,           'title' => '500 золотых монет (тестовый режим)',           'photo_url' => 'http://somesite/images/coin.jpg',           'price' => 10         );       } else {         $response['error'] = array(           'error_code' => 20,           'error_msg' => 'Товара не существует.',           'critical' => true         );       }       break;  case 'order_status_change':       // Изменение статуса заказа       if ($input['status'] == 'chargeable') {         $order_id = intval($input['order_id']);  // Код проверки товара, включая его стоимость         $app_order_id = 1; // Получающийся у вас идентификатор заказа.  $response['response'] = array(           'order_id' => $order_id,           'app_order_id' => $app_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']);  $app_order_id = 1; // Тут фактического заказа может не быть - тестовый режим.  $response['response'] = array(           'order_id' => $order_id,           'app_order_id' => $app_order_id,         );       } else {         $response['error'] = array(           'error_code' => 100,           'error_msg' => 'Передано непонятно что вместо chargeable.',           'critical' => true         );       }       break;   } }  echo json_encode($response); ?> 
вроде все как сказали сделал.....
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

Re: Полноценные пример работы Payments API

Сообщение Fedya »

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

 type: 'get_item'
Это что?)

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

type: 'item'
kahoxa
Сообщения: 59
Зарегистрирован: 10 фев 2012, 17:09

Re: Полноценные пример работы Payments API

Сообщение kahoxa »

Fedya писал(а):

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

 type: 'get_item'
Это что?)

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

type: 'item'
это по примеру, потом в кейсе выбирается по значению этого параметра, вроде так.....

напиши мне в вк, помоги разобраться я тебе 10 голосов дам, только помогите( я замучился уже....
kahoxa
Сообщения: 59
Зарегистрирован: 10 фев 2012, 17:09

Re: Полноценные пример работы Payments API

Сообщение kahoxa »

Новая проблема:
Ответ в логах приходит такой:

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

{"response":{"item_id":1, "title":"300 золотых монет", "photo_url":"http://cs411228.userapi.com/v411228142/87e8/DwFFI5ye784.jpg", "price":5}}
но в диалоговом окне, не чего не отобразилось(

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

<script type="text/javascript">  function order() {    var params = {      type: 'item',      item: 'item1'    };    VK.callMethod('showOrderBox', params);  }   var callbacksResults = document.getElementById('callbacks');   VK.addCallback('onOrderSuccess', function(order_id) {    callbacksResults.innerHTML += '<br />onOrderSuccess '+order_id;  });  VK.addCallback('onOrderFail', function() {    callbacksResults.innerHTML += '<br />onOrderFail';  });  VK.addCallback('onOrderCancel', function() {    callbacksResults.innerHTML += '<br />onOrderCancel';  });</script>
Sergey1997
Сообщения: 53
Зарегистрирован: 31 дек 2012, 12:58

Re: Полноценные пример работы Payments API

Сообщение Sergey1997 »

Ребята,а какие поля в БД должны быть,если не сложно,дайте код,самого запроса
Serghter
Сообщения: 1
Зарегистрирован: 07 сен 2013, 20:18

Re: Полноценные пример работы Payments API

Сообщение Serghter »

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

 $result = mysql_query("SELECT orderid FROM orders WHERE orderid = ".$order_id);                         if(!mysql_num_rows($query)) // Такого заказа еще не было, надо добавить пользователю золотых или там еще чего            {                /**                 * Добавляем в базу заказ  
Fedya Могли бы подсказать что не правильно? контакт все время при получении инфы от сервака пишет, mysql_num_rows($query) в этой строке ошибку, может там нужно было как то fetch_array использовать? просто не понятен момент почему $query? пробовал поставить на $result, то либо пустой ответ,либо пишет что мол нельзя перепрыгнуть с 0 записи на N запись. Просто напрягает, что нибудь полетит не так,если я сам напишу запросы добавления\обновления, а вам я почему то доверяю :D
Ответить