Запрошуємо до співпраці розробників додатків під Android та iPhone для створення спільних програмних продуктів. За детальною інформацією звертайтеся в службу підтримки.
В даному розділі публікується опис роботи серверного API. Про всі помилки або неточності в описі повідомляйте будь ласка в службу підтримки. Документація може періодично поповнюватися описами нових методів.
Для здійснення доступу до даних акаунта особистого гаманця використовуються POST-запити типу «application/json» з json-вмістом. Для роботи з даними облікового запису можливе використання https. Всі запити повинні направлятися на адресу [PROTOCOL]://mypurse.pp.ua/api/data/
У відповіді сервера міститься рядок з JSON-даними, види та формат переданих даних розглянуті нижче.
Загальна структура запитів та відповідей
Усі запити до сервера повинні передавати JSON-об'єкт такого вигляду:
{
"id":ID_REQUEST,
"mail":USER_MAIL,
"pass":USER_PASSWORD,
"lang":LANGUAGE,
"service":SERVICE_NAME,
"params":[]
}
Поле id є ідентифікатором і генерується вашим додатком, який буде повернений сервером у відповіді на зопрос. Поля mail та pass передають реєстраційний e-mail та пароль користувача для авторизації в проекті. Запит може мати порожні значення при запиті на реєстрацію. Поле lang передає мову встановленої програми (має наступні значення: 0 - російську мову; 1 - українська мова; 2 - англійська мова). Поле service має назву службового зумовленого значення. Поле params використовується для передачі параметрів.
Зміст успішної відповіді сервера буде таким:
{
"id":ID_REQUEST,
"servertime":TIME(),
"result":DATA
}
TIME() - Повертає поточну мітку часу Unix по серверу.
Зміст відповіді з помилкою - таким:
{
"id":ID_REQUEST,
"error":
{
"message":ERROR_TEXT,
"code":ERROR_CODE
}
}
ERROR_CODE - один з ідентифікаторів помилки, може набувати таких значень:
- 10 - Невірний e-mail та/або пароль
- 11 - Не введений e-mail
- 12 - Не введений пароль
- 13 - E-mail містить більше 50 символів
- 14 - Введений e-mail вже є в базі
- 15 - Загальна помилка на стороні сервера
Реєстрація та авторизації в системі
Для реєстрації в системі необхідно відправити запит на сервер з такою структурою поля params:
{
"mail":E-MAIL,
"pass":PASSWORD
}
У разі успішної реєстрації, поле result відповіді буде наступним:
{
"userId":ID_USER
}
- E-MAIL — реєстраційний E-mail користувача;
- PASSWORD — пароль користувача;
- ID_USER — унікальний ID користувача в системі, який призначає сервер при реєстрації;
Приклад запиту на реєстрацію:
{
"id":1,
"mail":"",
"pass":"",
"lang":0,
"service":"register",
"params":[
{
"mail":"demo@mypurse.org",
"pass":"123456"
}
]
}
Приклад відповіді на запит:
{
"id":1,
"servertime":1451727159,
"result":
{
"userId":1
}
}
При успішній авторизації в сервісі, поле result відповіді буде наступним:
{
"userId":ID_USER,
"balance":BALANCE,
"curId":CURRENCY
}
- ID_USER — унікальний ID користувача в системі, який призначає сервер при реєстрації;
- BALANCE — загальний баланс користувача;
- CURRENCY — валюта користувача (має наступні значення: 1 - не вказана; 2 - долари США; 3 - Євро; 4 - Російські рублі; 5 - Українські гривні).
Синхронізація даних
Для синхронізації даних вашого додатку з сервером використовується наступний метод роботи: на запит даних, наш сервер передає інформацію в поле last_update з міткою часу по Unix, останнього оновлення даних. Поле del повертає 0 або 1, якщо встановлена 1-ца, тоді даний запис видалено. Також наш сервер передає завжди в полі zid унікальний ідентифікатор запису в базі даних на сервері.
Ви можете також передавати дані last_update, del та zid до нашого сервера, для порівняння актуальності даних. Також, якщо ви передали поле zid з нулем, дану запис буде додано в нашу базу даних та буде повернутий його ідентифікатор, який необходмо привласнити до цього запису в локальній базі даних та в подальшому передавати його до нашого сервера для оновлення даних , якщо це необхідно.
