Описание API

Данное руководство предназначено для ознакомления и создания контроллеров на стороне контрагентов для дальнейшей интеграции на сайте Афиша-Квесты

Получение расписания на 2 недели

Сервер Афиша-Квесты посылает GET запрос по указанному вами адресу с параметрами без строгой типизации.

  • id - идентификатор квеста на вашей стороне (пример id=4)

Пример запроса: GET http://#YOUR_SITE#/schedule/?id=4

Результатом ответа должен быть JSON вида

{
    "#DATE#": {
        "#TIME#": {
            "FREE": "#FREE_VALUE#",
            "PRICE": "PRICE_VALUE"
        },
        ...
        "#TIME#": {
            "FREE": "#FREE_VALUE#",
            "PRICE": "PRICE_VALUE"
        }
    },
    ...
    "#DATE#": {
        "#TIME#": {
            "FREE": "#FREE_VALUE#",
            "PRICE": "PRICE_VALUE"
        },
        ...
        "#TIME#": {
            "FREE": "#FREE_VALUE#",
            "PRICE": "PRICE_VALUE"
        }
    }
}

  • #DATE# (string) - дата в формате DD.MM.YYYY (пример 08.03.2017)
  • #TIME# (string) - время слота (пример 12:00)
  • #FREE_VALUE# (boolean) - показывает свободно/занято ли это время (пример true)
  • #PRICE_VALUE# (int) - указывает цену на это время (пример 2500)

Расписание необходимо возвращать на 14 дней вперед.

Пример результирующего JSON:

    {
        "08.03.2017": {
            "01:30":{
                "FREE":true,
                "PRICE":3500
             },
            "18:00":{
                "FREE":true,
                "PRICE":3500
            },
            "21:00":{
                "FREE":false,
                "PRICE":3500
            }
        },
        "09.03.2017": {
            "01:30":{
                "FREE":true,
                "PRICE":3500
             },
            "18:00":{
                "FREE":true,
                "PRICE":3500
            },
            "21:00":{
                "FREE":false,
                "PRICE":3500
            }
        },
        "10.03.2017": {
            "01:30":{
                "FREE":true,
                "PRICE":3500
             },
            "18:00":{
                "FREE":true,
                "PRICE":3500
            },
            "21:00":{
                "FREE":false,
                "PRICE":3500
            }
        }
    }

Бронирование времени

Сервер Афиша-Квесты посылает POST запрос по указанному вами адресу с параметрами без строгой типизации.

  • id - идентификатор квеста на вашей стороне (пример id=4)
  • date - дата, на которую необходимо забронировать время (пример date=15.01.2016)
  • time - выбранное пользователем время (пример time=00:15)
  • email - почта пользователя (пример email=test@user.ru)
  • phone - номер телефона пользователя (пример phone=79061111111)
  • name - имя пользователя (пример name=Антон)
  • price - цена квеста на выбранное время (пример price=3500)
  • persons - количество человек (пример persons=3)
  • comment - комментарий пользователя (пример comment=комментарий)
  • api_key - секретный ключ

Пример запроса: POST http://#YOUR_SITE#/booking/

Результатом ответа должен быть JSON вида

    {
        "success": "#SUCCESS_VALUE#",
        "message": "#MESSAGE#",
        "booking_id": "#BOOKING_ID#"
    }

  • #SUCCESS_VALUE# (boolean) - принимает значение true/false. Если true - #MESSAGE# необязательное
  • #MESAGE# (string) - текст возвращаемого сообщения об ошибке
  • #BOOKING_ID# (int) - идентификатор брони, необходим для отмены брони

Пример результирующего JSON в случае успеха:

    {
        "success": true,
        "message": "Игра успешно забронирована",
        "booking_id": 1997
    }

Пример результирующего JSON в случае ошибки:

    {
        "success": false,
        "message": "Время уже забронировано"
    }

Подтверждение оплаты

Сервер Афиша-Квесты посылает POST запрос по указанному вами адресу с параметрами без строгой типизации.

  • id - идентификатор брони на вашей стороне (пример id=1997)

Пример запроса: POST http://#YOUR_SITE#/pay/

Результатом ответа должен быть JSON вида

    {
        "success": "#SUCCESS_VALUE#",
        "message": "#MESSAGE#"
    }

  • #SUCCESS_VALUE# (boolean) - принимает значение true/false. Если true - #MESSAGE# необязательное
  • #MESAGE# (string) - текст возвращаемого сообщения об ошибке

Пример результирующего JSON в случае успеха:

    {
        "success": true,
        "message": "Оплата подтверждена",
    }

Пример результирующего JSON в случае ошибки:

    {
        "success": false,
        "message": "Бронь не существует"
    }

Отмена бронирования

Сервер Афиша-Квесты посылает POST запрос по указанному вами адресу с параметрами без строгой типизации.

  • id - идентификатор брони на вашей стороне (пример id=1997)

Пример запроса: POST http://#YOUR_SITE#/cancel/

Результатом ответа должен быть JSON вида

    {
        "success": "#SUCCESS_VALUE#",
        "message": "#MESSAGE#"
    }

  • #SUCCESS_VALUE# (boolean) - принимает значение true/false. Если true - #MESSAGE# необязательное
  • #MESAGE# (string) - текст возвращаемого сообщения об ошибке

Пример результирующего JSON в случае успеха:

    {
        "success": true,
        "message": "Бронь успешно отменена",
    }

Пример результирующего JSON в случае ошибки:

    {
        "success": false,
        "message": "Бронь не существует"
    }
..., Промокод
Секундочку, загружаем расписание…
Не удалось загрузить расписание
Проверьте подключение к интернету или повторите попытку
Не удалось загрузить расписание
Вы можете забронировать игру по телефону
+7 (ХХХ) ХХХ-..
Не удалось загрузить расписание
Проверяем доступность сеанса...
Не удалось загрузить стоимость сеанса
Не удалось загрузить стоимость. Вы можете забронировать
игру по телефону.
+7 (ХХХ) ХХХ-..
Не удалось загрузить стоимость сеанса
Проверяем стоимость сеанса…
Итого
Требуется обязательная предоплата
Мои игры
+7 (ХХХ) ХХХ-..
+7 (ХХХ) ХХХ-..
Оплата игры
Мои игры
Написать отзыв
Атмосфера
Сюжет
Задачи
Сервис
Общая оценка 9
Спасибо за ваше мнение!
Ваш отзыв появится на сайте, как только администратор подтвердит его (обычно в течение 2–3 дней)
В разделе «Мои игры» хранятся все забронированные квесты, добавленные в избранное, а также квесты, которые вы прошли.