Приглашаем к сотрудничеству разработчиков приложений под 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 с нулем, данная запись будет добавлена в нашу базу данных и будет возвращен его идентификатор, который необходмо присвоить данной записи в локальной базе данных и в дальнейшем передавать его нашему серверу для обновления данных, если это необходимо.