Запрошуємо до співпраці розробників додатків під 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 з нулем, дану запис буде додано в нашу базу даних та буде повернутий його ідентифікатор, який необходмо привласнити до цього запису в локальній базі даних та в подальшому передавати його до нашого сервера для оновлення даних , якщо це необхідно.