PHP интеграция c API (wordpress)
Настроить интеграцию Pinpoint Booking System Версия 2.0.8 http://demo-admin.wordpressbooking.systems/wp-login.php с API сайта mir-kvestov.ru
Разработать 2 модуля:
1. Получение расписания (json) из бд пинпоинт Версия 2.0.8
2. Добавление бронирования в бд пинпоинт Версия 2.0.8
Описание API сайта mir-kvestov.ru
1. Получение расписания квеста
Для каждого вашего квеста необходимо сформировать уникальный URL, GET запросом на который мы будем получать расписание на 2 недели в формате json.
Ожидаемые поля:
date: дата, в формате YYYY-MM-DD
time: время, в формате HH:MM (24 часа)
is_free: boolean, где true означает доступность для бронирования. Если время игры прошло - то необходимо возвращать false
price: цена в рублях в формате целого числа
Также, вы можете передавать нам дополнительные параметры, которые мы вернем вам при бронировании.
Пример
# GET http://YOUR_WEBSITE/api/quests/timetable/4.json
[
{
"date": "2016-05-05",
"time": "18:30"
"is_free": true,
"price": 3000,
"your_slot_id": 123,
},
{
"date": "2016-05-05",
"time": "20:00"
"is_free": false,
"price": 3500,
"your_slot_id": 124,
},
]
2. Бронирование
Так же для каждого квеста нужно создать URL, на который мы будем отправлять бронирования POST запросом.
На этот URL вам придут следующие поля:
first_name: имя клиента
family_name: фамилия клиента
phone: телефон клиента
email: email клиента
comment: комментарий от клиента (необязательно)
source: название нашего сервиса (по-умолчанию, 'mir-kvestov.ru')
md5: md5 код от строки ИмяФамилияТелефонEmailMd5code. Наличие этого поля позволяет проверять вам, что именно мы отправили вам бронирование. После завершения создания скриптов не забудьте прислать md5code. Если вы не будете делать подобную проверку, просто пропустите этот пунк, он необязательный.
date: дата игры
time: время игры
price: цена игры
Так же мы можем вернуть дополнительные параметры, которые передали нам в запросе из первого пункта, например your_slot_id.
В случае успешной обработки вернуть json ответ: {"success": true}.
В случае неудачи, вернуть: {"success":false, "message": "error message"}
Пример
Request
POST http://YOUR_WEBSITE/api/quests/1/order
Parameters: {
"first_name"=>"Петров",
"family_name"=>"Иван",
"phone"=>"+7 (926) 111-11-11",
"email"=>"[email protected]",
"comment"=>"Комментарий",
"source"=>"mir-kvestov.ru",
"md5"=>"33c9e75ccf6d84e4cd9fe9ac982de249",
"date"=>"2016-05-05",
"time"=>"20:00",
"price"=>3500,
"your_slot_id"=>"124"
}
Response:
{"success": true}
или
{"success": false, "message": "Указанное время занято" }