Список методов API

Использование интерфейсного метода showOrderBox требует обмена данными с сервером приложения.

Все запросы выполняются методом POST в кодировке UTF-8 по адресу обратного вызова.

Адрес обратного вызова задается владельцем приложения в настройках приложения.

Все ответы должны являться объектом в формате JSON, содержание ответа должно находится в свойстве response.

Последовательность выполнения запроса:

  1. Приложение инициирует покупку в игре, передавая идентификатор покупки item в метод showOrderBox.
  2. JS-API выполняет запрос информации о покупке(get_item) и отображает информацию о ней пользователю.
  3. Пользователь подтверждает покупку.
  4. JS-API выполняет запрос на оформление покупки(buy_item) и отправляет приложению информацию о результате.

Общие параметры:

							   action - Тип запроса, может принимать значения "get_item" или "buy_item"
							   app_id - Идентификатор приложения на сервере EXE.RU
							   item - Текстовый идентификатор покупки, который был передан при запросе метода showOrderBox
							   user_id - Идентификатор пользователя, который осуществляет покупку
							   sig - Подпись параметров запроса.
							

get_item - запрос информации о покупке:

Параметры запроса:

Дополнительные параметры запроса отсутствуют. Используются только общие параметры.

Параметры ответа, все параметры обязательны:

							   {
							      title:'', // Название покупки
							      photo_url:'', // Абсолютная ссылка на изображение на сервере приложения
							      price:'', // Цена во внутренних единицах EXE.RU, только целое число
							      item_id:'' // Идентификатор покупки на сервере приложения.
								}
							   

Пример запроса, для формирования подписи использовался секретный ключ "W7kVvxVxZ4":

http://application.org/callback?action=get_item&app_id=15&item=1&user_id=1&sig=9d137106ad2cff9d7ad4babaf5ce13fa

Где:

							       action = get_item // Тип запроса
                                   app_id = 15 // Идентификатор приложения на сервере EXE.RU
                                   user_id = 1 // Идентификатор покупателя на сервере EXE.RU
                                   item = 1 // Идентификатор покупки на сервере приложения, был
                                            // передан приложением при обращении к методу showOrderBox
                                   sig = 9d137106ad2cff9d7ad4babaf5ce13fa // Подпись запроса
							

Пример ответа, покупка есть в продаже:

{
                                   "response":{
                                      "title":"200 \u0444\u0438\u0448\u0435\u043a",
                                      "photo_url":"\/\/static.application.org\/icons\/black_chips.png",
                                      "price":"2",
                                      "item_id":"1"
                                   }
                            }
							

Пример ответа, такой покупки нет в продаже:

{
                                   "response":{
                                      "error":{
                                         "code": "", // Код ошибки
                                         "text": "" // Текст сообщения об ошибке
                                      }
                                   }
                            }
							

buy_item - оформление покупки в игре

Параметры запроса:

При запросе данного метода, кроме общих параметров, используются также следующие дополнительные:

                                   date - UNIX-timestamp
                                   order_id - идентификатор покупки на сервере EXE.RU
                                   status - всегда принимает значение "complete".
                            

Параметры ответа:

                            {
                                   order_id:'', // Обязательный параметр, идентификатор покупки на
                                                // сервере EXE.RU. Был передан в запросе от сервера.
                                   app_order_id:'' // Необязательный параметр, идентификатор покупки
                                                   // на сервере приложения.
                            }
                            

Пример запроса, для формирования подписи использовался секретный ключ "W7kVvxVxZ4":

http://application.org/callback?action=buy_item&app_id=15&date=1455708422&item=1&order_id=1 &status=complete&user_id=1&sig=184c2c3395e474b2911ff5a2587cc4f0

Где:

                               action = buy_item // Тип запроса
                               app_id = 15 // Идентификатор приложения на сервере EXE.RU
                               user_id = 1 // Идентификатор покупателя на сервере EXE.RU
                               item = 1 // Идентификатор покупки на сервере приложения, был передан
                                        // приложением при обращении к методу showOrderBox
                               date = 1455708422 // Unix-timestamp
                               order_id = 1 // идентификатор покупки на сервере EXE.RU
                               status = complete
                               sig = 184c2c3395e474b2911ff5a2587cc4f0 // Подпись запроса
                            

Обратите внимание, для формирования подписи запроса используются все поля.

Пример ответа, успешно куплено:

{
                               "response":{
                                  "order_id":"1",
                                  "app_order_id":"258"
                               }
                            }

Пример ответа, не удалось выполнить покупку:

{
                                   "response":{
                                      "error":{
                                         "code": "", // Код ошибки
                                         "text": "" // Текст сообщения об ошибке
                                      }
                                   }
                            }
							

Формирование подписи запроса

Параметр sig равен md5 от конкатенации всех пар параметр=значение, расположенных в порядке возрастания имени параметра (по алфавиту) и секретной подписи api_secret, указанной в настройках Вашего приложения.

Пример формирования подписи с секретным ключом W7kVvxVxZ4:

$appKey = 'W7kVvxVxZ4';
  
                            $params = [
                               'name_2' => 'value_2',
                               'name_1' => 'value_1'
                            ];
  
                            ksort($params);

                            $queryString = http_build_query($params, null, '');

                            $paramsString = urldecode($queryString) . $appKey;
                            // name_1=value_1name_2=value_2W7kVvxVxZ4
 
                            $sig = md5($paramsString);