Личный кабинет

Получение списка полей для регистрации

Осуществляется на экране восстановления.

Пример запроса на списк полей для регистрации

GET {regFields_url}

Данный запрос ДОЛЖЕН осуществляться успешно и возвращать JSON-объект следующего формата:

Пример ответа на запрос списка полей (поля title не должны иметь пустых значений!)

{  
   "status":"ok",
   "data":{  
      "fields":[  
         {  
            "id":"name",
            "type":"text",
            "title":"Имя",
            "required":true,
            "need_verification":false,
            "isLogin":false
         },
         {  
            "id":"email",
            "type":"email",
            "title":"Электронная почта",
            "required":true,
            "need_verification":false,
            "isLogin":true
         },
         {  
            "id":"phone",
            "type":"phone",
            "title":"Телефон",
            "required":true,
            "need_verification":true,
            "time":120,
            "text":"Введите код из SMS",
            "editable":true,
            "code_input_type":"number",
            "isLogin":false
         },
         {  
            "id":"password",
            "type":"password",
            "title":"Пароль",
            "required":true,
            "need_verification":false,
            "isLogin":false
         }
      ]
   }
}


НазваниеОписание
fields


Массив, каждый объект которого описывает поле, доступное к заполнению при регистрации
idУникальный идентификатор поля
type

Тип поля:

  • text — простое поле для ввода текста
  • password — поле для ввода пароля
  • email — поле для ввода адреса электронной почты
  • phone — поле для ввода телефона
  • number — поле для ввода числа
titleЗаголовок поля
requiredОбязательно ли данное поле к заполнению
need_verificationНужна ли верификация поля
timeВремя для обратного отсчета в секундах для перезапроса кода
textТекст для экрана верификации. Значение не может быть пустым.
editableИзменяемое ли поле
code_input_typeТип поля для ввода кода, аналогичен type
isLoginЯвляется ли поле логином, для использования SmartLock (Android 2.5.8)

Регистрация

Пример запроса регистрации

POST {registration_url}
{ "appId":"appId", "platform":"platform", "locale":"locale", "field1":"value1", "field2":"value2", "field3":"value3",
"pushToken": "fahjkaslkh123hkjsdalkl",
"regionId": "spb",
"savedPhone": "+78885533",
"savedEmail": "example@example.com"
}


Название
Описание
appIdУникальный идентификатор приложения пользователя
platform

Идентификатор платформы,ios/android

localeISO (ru_RU,en_US,...)
pushTokenТокен для push-уведомлений
regionIdИдентификатор региона, выбранного пользователем
savedPhoneТелефон, заполненный при оформлении заказа
savedEmailЭлектронная почта, заполненная при оформлении заказа

field1,

field2 ...

Значения полей, присланных для регистрации

В случае удачной регистрации происходит автоматически авторизация и возвращаемое значение аналогично оному при авторизации.

В случае неудачной регистрации возвращается следующий JSON-блок:

Пример ответа на неудавшийся запрос регистрации

{
  "status" : "error",
  "data" : {
    "errors" : [
      {
        "fieldId" : "id поля, в котором произошла ошибка",
        "errorMessage" : "текстовое описание ошибки"
      },
      {
        "fieldId" : "id другого поля, в котором произошла ошибка",
        "errorMessage" : "текстовое описание этой ошибки"
      }
    ]
  }
}
НазваниеОписание
errors

field_idИдентификатор поля
errorMessageТекст ошибки

 Для всех таких действий определён особый тип ошибки на случай, если представленный accessToken не является валидным, не позволяет получить доступ к API:

Пример ответа на неудавшийся запрос

{
  "status" : "auth_error"
}

Если требуется верификация: 

Пример ответа при необходимости верификации

{  
   "status":"verification"
}
НазваниеОписание
status
  • error - ошибка в поле (-ях) необходимых для регистрации
  • auth_error - accessToken невалидный
  • verification - требуется верификация полей


Авторизация

Запросом является JSON-объект следующего формата: 

Пример запроса на авторизацию по логину и паролю

POST {auth_url}
 
{
    "login":"login",
    "password":"password",
    "appId":"appId",
    "platform":"ios",
    "locale":"ru_RU",
"pushToken": "fahjkaslkh123hkjsdalkl",
"regionId": "spb",
"savedPhone": "+78885533",
"savedEmail": "example@example.com" }

Пример запроса на авторизацию через соц. сети

POST {auth_url}
 {  
   "accessToken":"dvdxfbdfb",
   "type":"vkontakte",
   "internal_id":"id",
   "appId":"appId",
   "platform":"ios",
   "locale":"ru_RU",
   "pushToken":"fahjkaslkh123hkjsdalkl",
   "regionId":"spb",
   "savedPhone":"+78885533",
   "savedEmail":"example@example.com"
}

 

Название
Описание
loginЛогин пользователя
passwordПароль пользователя
appIdУникальный идентификатор приложения пользователя
platform

Идентификатор платформы,ios/android

localeISO (ru_RU,en_US,...)
pushTokenТокен для push-уведомлений
regionIdИдентификатор региона, выбранного пользователем
savedPhoneТелефон, заполненный при оформлении заказа
savedEmailЭлектронная почта, заполненная при оформлении заказа
accessTokenКлюч авторизации, полученный от соц сети
type

Название социальной сети:

  • vkontakte
  • ok
  • facebook
  • instagram
internal_idИдентификатор пользователя, полученный соц от сети (может не быть)

Ответом на запрос в случае успешной авторизации является JSON-объект следующего формата:

Пример ответа

{
  "status" : "ok",
  "data" : {
    "accessToken" : "ключ, используемый для доступа к методам API"
  }
}


В случае провалившейся авторизации возвращается JSON-объект следующего формата:

Пример ответа на неудавшийся запрос

{
  "status" : "error",
  "data" : {
    "errorMessage" : "Текстовое описание произошедшей ошибки"
  }
}
 
Название Описание
status 
  • error - ошибка с текстовым полем
  • ok - успешная авторизация


Верификация

Пример запроса верификации 

POST {verification_url}
{  
   "appId":"appId",
   "code":"value",
   "field_id":"идентификатор поля",
   "value":"значение поля"
}


НазваниеОписание
appIdУникальный идентификатор приложения пользователя
codeЗначение кода
field_idИдентификатор поля
valueНовое значение поля

 Пример ответа

{  
  "status":"ok",
  "data":{  
    "accessToken":"ключ, используемый для доступа к методам API"
  }
}

Пример ответа на неудавшийся запрос

{
  "status" : "error",
  "data" : {
    "errorMessage" : "Текстовое описание произошедшей ошибки"
  }
}


Название Описание
status 
  • error - ошибка с текстовым полем
  • ok - успешная авторизация


Повторное получение данных (смс, e-mail) для верификации

Получает новое смс (письмо) с кодом для верификации учётной записи.

Пример запроса повторного получения данных 

POST {verification_repeat_url}
{  
   "appId":"appId",
   "field_id":"идентификатор верифицируемого поля",
   "value":"значение поля"
}


НазваниеОписание
appIdУникальный идентификатор приложения пользователя
field_idИдентификатор поля
valueНовое значение поля


Возвращается объект следующего формата:

Пример ответа

{
  "status" : "ok"
}

Пример ответа на неудавшийся запрос

{
  "status" : "error",
  "data" : {
    "errorMessage" : "Текстовое описание произошедшей ошибки"
  }
}


Название Описание
status 
  • error - ошибка с текстовым полем
  • ok - успешная авторизация


Обновление ключа авторизации

Отправляет новый ключ авторизации, при получении такого от соц сети.

Пример запроса повторного получения данных

POST {verification_repeat_url}
Authorization: accessToken
{  
   "accessToken":"новый ключ авторизации",
   "type":"facebook",
   "internal_id":"49539579"
}
Название
Описание
accessTokenКлюч авторизации, полученный от соц сети
type

Название социальной сети:

  • vkontakte
  • ok
  • facebook
  • instagram
internal_idИдентификатор пользователя, полученный соц от сети (может не быть)

Возвращается объект следующего формата:

Пример ответа

{
  "status" : "ok"
}


Название Описание
status 
  • ok - успешное обновление


Выход

Происходит для уничтожения accessToken и отвязки устройства от учётной записи.

Пример запроса выхода 

DELETE {auth_url(MUST MATSH WITH POST METHOD)}
Authorization: accessToken


Получение списка полей для восстановления пароля

Осуществляется перед отображением экрана восстановления пароля.

Пример запроса списка полей для регистрации

GET {regFields_url}

Данный запрос не может провалиться и возвращает JSON-объект следующего формата:

Пример ответа на запрос списка полей

{
  "status" : "ok",
  "data" : {
    "fields" : [
      {
        "id" : "name",
        "type" : "text",
        "title" : "ФИО"
      },
      {
        "id" : "email",
        "type" : "email",
        "title" : "Электронная почта"
      }
    ]
  }
}


НазваниеОписание
status
  • ok
fields
Массив, каждый объект которого описывает поле, доступное к заполнению при восстановлении пароля
idУникальный идентификатор поля
type

Тип поля:

  • text — простое поле для ввода текста
  • email — поле для ввода адреса электронной почти
  • phone — поле для ввода телефона
titleЗаголовок поля


Восстановление пароля

Пример запроса восстановления пароля

POST {registration_url}
{ "appId":"appId", "platform":"platform", "locale":"locale", "field1":"value1", "field2":"value2", "field3":"value3",
"pushToken": "fahjkaslkh123hkjsdalkl",
"regionId": "spb"
}


Название
Описание
appIdУникальный идентификатор приложения пользователя
platform

Идентификатор платформы,ios/android

localeISO (ru_RU,en_US,...)
pushTokenТокен для push-уведомлений
regionIdИдентификатор региона, выбранного пользователем

field1,

field2 ...

Значения полей, присланных для восстановления пароля

В случае удачного восстановления пароля выводится сообщение из ответа.

Пример ответа на удавшийся запрос восстановления пароля

{
  "status": "ok",
  "data": {
    "message": "Письмо отправлено Вам на email! или другое сообщение для пользователя"
  }

В случае не удачного восстановления пароля выводится сообщение из ответа.

Пример ответа на неудавшийся запрос восстановления пароля

{
  "status" : "error",
  "data" : {
    "errors" : [
      {
        "fieldId" : "id поля, в котором произошла ошибка",
        "errorMessage" : "текстовое описание ошибки"
      },
      {
        "fieldId" : "id другого поля, в котором произошла ошибка",
        "errorMessage" : "текстовое описание этой ошибки"
      }
    ]
  }
}


Название Описание
status 
  • ok
  • error - ошибка в поле (-ях) необходимых для восстановления пароля
errorsfield_idИдентификатор поля
errorMessageТекст ошибки


Получение сведений о профиле пользователя

Получает информацию о пользователе.

Пример запроса получения сведений о профиле

GET {profile_url}
Authorization: accessToken

Возвращает блок следующего формата:

Кастомизируемый личный кабинет

{  
  "status":"ok",
  "data":{  
    "fields":[  
      {  
        "cabinet_field_type":"name_field",
        "editable":true,
        "id":"идентификатор поля",
        "value":"значение",
        "image":"https"
      },
      {  
        "cabinet_field_type":"image_action_field",
        "action":{  
          "type":"openUrl",
          "param":"https"
        },
        "image":"https"
      },
      {  
        "cabinet_field_type":"title_text_field",
        "time":2,
        "text":"информационный текст для окна верификации",
        "editable":true,
        "id":"идентификатор поля",
        "title":"заголовок",
        "value":"текущее значение",
        "need_verification":true,
        "verified":false,
        "type":"тип клавиатуры для редактирования поля",
        "code_input_type":"тип клавиатуры для кода верификации"
      },
      {  
        "cabinet_field_type":"text_field",
        "value":"текст"
      },
      {  
        "cabinet_field_type":"action_field",
        "action":{  
          "type":"openUrl",
          "param":"https"
        },
        "value":"текст",
        "image":"https"
      },
      {  
        "cabinet_field_type":"bonus_field",
        "title":"заголовок",
        "value":"количество бонусов"
      },
      {  
        "cabinet_field_type":"barcode_field",
        "image":"https"
      }
    ],
    "bonus":{  
      "amount":300.0,
      "available_proportion":0.2
    },
"discount":{
"value":0.14
}
  }
}
Название Описание
fields
Массив полей отображаемых на странице личного кабинета.
cabinet_field_type

Тип поля. Поля будут отображены в переданном порядке.

  • name_field - поле с данными об имени
  • image_action_field - поле с изображением и действием
  • title_text_field - поле с заголовком и значением
  • text_field - поле с текстом
  • action_field - поле с действием
  • bonus_field - поле с бонусами
  • barcode_field - поле для отображения штихкода
timeВремя для обратного отсчета в секундах (Необходимо, если поле может быть верифицировано).
textТекст для поля верификации (обязательно), например, «Укажите код из SMS».
editableИзменяемое ли поле.
idИдентификатор поля.
titleНазвание поля (используется как заголовок).
valueТекущее значение поля.
need_verificationНужна ли верификация. Если значение false, следующий флаг не учитывается, но должен быть передан как false.
verifiedВерифицировано ли поле.
sizeРазмер поля с типом separator
imageКартинка для поля (опционально)
type Тип поля:
  • text — простое поле для ввода текста
  • password — поле для ввода пароля
  • email — поле для ввода адреса электронной почты
  • phone — поле для ввода телефона
  • number — поле для ввода числа
code_input_type Тип поля для ввода кода, аналогичен type

Объект bonus:

  • amount - количество доступных пользователю бонусов, число с точкой
  • available_proportion - какую часть заказа можно погасить баллами, число с плавающей точкой (20% - 0.2). Если отсутствует, то считается 1.0 (100%)

Объект discount

  • value - величина скидки

При наличии бонусов, при заказе появляется поле, позволяющее оплатить часть заказа бонусами.

 Объект Action:

  • type - тип действия
  • param - параметр для действия

Типы действия

IDОписаниеОписание параметраПараметр
openCategoryОткрыть категориюID категории"id1572"
openCatalogОткрыть каталог--
openProductОткрыть товарID товара"id1572"
openSearchОткрыть поиск с запросомТекст запроса"Футболки"
openUrlОткрыть url в приложенииURL"https://google.com"
openUrlExternalОткрыть url в браузереURL"https://google.com"
doCallЗвонок на указанный номерНомер телефона"8 (800) 707-52-57"
openCartОткрыть корзину--
openMainScreenОткрыть главный экран-
openShopsОткрыть адреса магазинов
openHistoryОткрыть историю заказов -
openArticlesОткрыть новости -
openFavouritesОткрыть избранное -
openFormОткрыть форму обратной связи -
openGalleryОткрыть галерею -
openProfileОткрыть личный кабинет -
openContentОткрыть html файл  -
openMenuОткрыть меню -


Изменение полей

Изменяет поля, которые помечены флагом editable.

Пример запроса на изменение поля

POST {verification_change_url}
Authorization: accessToken
{  
   "fields":[  
      {  
         "field_id":"идентификатор поля",
         "value":"значение поля"
      },
      {  
         "field_id":"идентификатор поля",
         "value":"значение поля"
      }
   ]
}
НазваниеОписание
field_idИдентификатор поля
valueНовое значение поля


Пример ответа

{  
   "status":"ok"
}

 Пример ответа на неудавшийся запрос

{
  "status" : "error",
  "data" : {
    "errorMessage" : "Текстовое описание произошедшей ошибки"
  }
}
Название Описание
status 
  • error - ошибка с текстовым полем
  • ok


Получение списка заказов

Получает список идентификаторов заказов, связанных с данной учётной записью.

Пример запроса получения списка заказов 

GET {order_list_url}
Authorization: accessToken
 
Для Android клиента начиная с версии 2.5.4
Для iOS клиента начиная с версии 2.2.4
Обязательна поддержка пагинации истории заказов. Для этого добавляются параметры, например https://mobiumapps.com/api/mobium.php?method=userOrderHistory&offset=0&limit=50
Если данных заказов не существует, должен возвращаться пустой массив заказов "orders": [ ]

Возвращается объект следующего формата:

Пример списка заказов

{  
  "status":"ok",
  "data":{  
    "orders":[  
      {  
        "id":"35454135",
        "status":"оплачен",
        "total":1590,
        "deliveryType":"самовывоз",
        "created_at":"20 марта 2018",
        "contact":{  
          "fildName1":"fieldValue1",
          "fildName2":"fieldValue2"
        },
        "payment":{  
          "title":"Наличные",
          "total_cost":2500,
          "delivery_cost":500,
          "status":"Оплачено"
        },
        "bonuses_used":0,
        "delivery":{  
          "type":"самовывоз"
        },
        "items":[  
          {  
            "id":"546543",
            "count":5,
            "price":582
          }
        ]
      }
    ]
  }
}

Order (заказ):

НазваниеОписание
idуникальный идентификатор заказа
statusстатус заказа
totalсуммарная стоимость заказа
deliveryTypeтип доставки (старый вариант)
created_atдата создания заказа 
 contact

 Контактная информация. Например:

{  
  "ФИО":"Иванов Иван",
  "Телефон":"+70000000000"
}

payment

 информация об оплате

bonuses_used

 количество использованных баллов

delivery.type

информация о доставке 

Payment (информация об оплате):

НазваниеОписание
titleназвание оплаты
total_costполная сумма заказа
delivery_costсумма доставки
status статус оплаты

Items (единица заказа):

НазваниеОписание
idуникальный идентификатор товара
countколичество товаров данного типа в заказе
priceцена на момент заказа