Сервер CourierApp API

Мобильное приложение курьера

Авторизация курьера

/api/v1/auth Поиск курьера по имени и паролю в Юпитере. Если находит, то возвращает его UID

/api/v1/auth_сod Поиск курьера по коду и паролю в Юпитере. Если находит, то возвращает его UID

/api/v1/auth_pwdсodе Поиск курьера по строке код+пароль Если находит, то возвращает его UID

2020-06-25 Теперь в ответе возвращает tz_uid. Определяется по основной торговой точке сотрудника
2023-08-29 /api/v1/auth и /api/v1/auth_сod упразднены, используется /api/v1/auth_pwdсodе

POST запрос:

{
    "pwdсodе" : "20331"
}

Ответ успех:

{
    "name": "Борисов Артем",
    "tz_uid": "4:3:0:299094",
    "uid": "4:1:0:531"
}

Ответ ошибка:

{
    "desc": "Не правильное имя пользователя или пароль",
    "result": "error"
}

Получить список заказов по курьеру

/api/v1/get_orders Возвращает список заказов на доставку (только заказы с координатами) по указанному курьеру, которые находятся в состоянии "В работе" и статусе "Назначен курьеру".

2023-08-07 Теперь возвращает даже те заказы, у которых нет координат

2023-08-10 Добавлены параметры: build_number (string) - Номер сборки; cashless (boolean) - Если 1 значит безнал, если 0 значит наличные. Если в заказе не определен вид оплаты, то примет значение 0; prepayment (boolean) - Если 1 значит оплата уже была получена на сайте/приложении/агрегаторе, если 0 значит оплату нужно получить с клиента. Если в заказе не определен вид оплаты, то примет значение 0. Значение определяется в соответствии с новым параметром вида оплаты "Онлайн оплата".

POST запрос:

{
  "courier_uid": "4:3:0:298972",
  "get_type": "courier_orders"
}

Ответ успех:

[{
        "address": "Москва, ул. Авангардная улица, д. 1, под. 1, дмф. 52, эт. 5, кв. 52",
        "client": {
            "name": "Олеся",
            "phone": "8 (909) 321-12-22"
        },
        "coordinates": ["55.843121", "37.491072"],
        "lines": [{
            "ID": "6:1:0:272681",
            "NAME": "ПИРОЖОК С КАПУСТОЙ",
            "PRICE_FACT": 22.0,
            "QTY": 1.0,
            "SUM_FACT": 22.0,
            "modifiers": [{
                "ID": "6:1:0:272684",
                "NAME": "ДОП. ГРИБЫ",
                "PRICE_FACT": 51.0,
                "QTY": 1.0,
                "SUM_FACT": 51.0
            }, {
                "ID": "6:1:0:272682",
                "NAME": "ДОП. СЫР",
                "PRICE_FACT": 34.0,
                "QTY": 1.0,
                "SUM_FACT": 34.0
            }, {
                "ID": "6:1:0:272683",
                "NAME": "ДОП. ЛУК",
                "PRICE_FACT": 42.0,
                "QTY": 1.0,
                "SUM_FACT": 42.0
            }]
        }, {
            "ID": "6:1:0:272645",
            "NAME": "КАРТОФЕЛЬ ПО-ДЕРЕВЕНСКИ",
            "PRICE_FACT": 60.0,
            "QTY": 1.0,
            "SUM_FACT": 60.0
        }],
        "max_time": 110,
        "open_date": "2019-06-18 13:30:13",
        "order_num": "9-1-79-4",
        "sum_fact": 389.0,
        "uid": "5:1:0:116862",
        "urgent": 2,
        "deliver_at": "14:30",
"delivering_time": 35, "tz": "ТЗ Москва",
"build_number": "1",
"cashless": 1,
"prepayment": 1 }, { "address": "Москва, ул. Главная, д. 151, кв. 334", "client": { "name": "Кристина", "phone": "8 (967) 135-25-85" }, "coordinates": ["55.752587", "37.702346"], "lines": [{ "ID": "6:1:0:272685", "NAME": "ПИРОЖОК С КАПУСТОЙ", "PRICE_FACT": 22.0, "QTY": 1.0, "SUM_FACT": 22.0, "modifiers": [{ "ID": "6:1:0:272686", "NAME": "ДОП. СЫР", "PRICE_FACT": 34.0, "QTY": 1.0, "SUM_FACT": 34.0 }, { "ID": "6:1:0:272687", "NAME": "ДОП. ЛУК", "PRICE_FACT": 42.0, "QTY": 1.0, "SUM_FACT": 42.0 }] }], "max_time": 110, "open_date": "2019-06-18 14:18:12", "order_num": "9-1-79-5", "sum_fact": 98.0, "uid": "5:1:0:116881", "urgent": 1, "deliver_at": "14:30",
"delivering_time": 30, "tz": "ТЗ Москва",
"build_number": "2",
"cashless": 0,
"prepayment": 0 }]

Ответ ошибка:

{
    "desc": "Ошибка, не передан параметр get_type",
    "result": "error"
}

Получить список всех заказов

/api/v1/get_orders Возвращаем список заказов (только заказы с координатами) в состоянии "В работе" и статусах "Выполняется", "Готов" 

2020-03-20 Добавлен обязательный параметр tz_uid в него нужно передавать UID торгового зала из Юпитера. Возвращает заказы только этого ТЗ.

2021-02-08 Теперь возвращает заказы еще и в статусе "Готов"

POST запрос:

{
  "get_type": "all_orders",
  "tz_uid": "4:3:0:299094"
}

Ответ точно такой же как в предыдущей команде "Получить список заказов по курьеру"

Получить список готовых заказов

/api/v1/get_orders Возвращаем список заказов (только заказы с координатами) в состоянии "В работе" и статусе "Готов"

POST запрос:

{
  "get_type": "ready_orders",
  "timestamp": "2020-07-02 10:23:21",
  "tz_uid": "4:3:0:299094"
}

Ответ успех:

{
  "new": 1,
  "timestamp": "2020-07-02 11:23:21",
  "orders": [{
    "address": "Москва, ул. Авангардная улица, д. 1, под. 1, дмф. 52, эт. 5, кв. 52",
    "coordinates": ["55.843121", "37.491072"],
    "uid": "5:1:0:116862",
    "urgent": 2,
    "deliver_at": "14:30",
"delivering_time": 35, "new": 0 }, { "address": "Москва, ул. Главная, д. 151, кв. 334", "coordinates": ["55.752587", "37.702346"], "uid": "5:1:0:116881", "urgent": 1, "deliver_at": "14:30",
"delivering_time": 30, "new": 1 }] }

Ответ ошибка:

{
    "desc": "Ошибка, не передан параметр get_type",
    "result": "error"
}

Отметить, что заказ доставлен

/api/v1/order_is_delivered Изменяет статус заказа на "Заказ доставлен"

2023-08-10 Добавлен параметр pay_is_changed (boolean). Сохраняет в заказ признак, что вид оплаты изменился. Значение параметра можно увидеть в разделе "Все заказы (только просмотр)", колонка "Была смена вида оплаты" 

POST запрос:

{
    "order_uid" : "5:1:0:323",
"pay_is_changed": 0 }

Ответ успех:

{
    "result": "success"
}

Ответ ошибка:

{
    "desc": "Ошибка, не удалось подключиться к БД",
    "result": "error"
}

Подтвердить, что курьер будет выполнять заказ

/api/v1/courier_confirmed Изменяет признак в заказе, что заказ подтверждён курьером (т.е. курьер заказ увидел, и готов его выполнить)

POST запрос:

{
    "order_uid" : "5:1:0:323"
}

Ответ успех:

{
    "result": "success"
}

Ответ ошибка:

{
    "desc": "Ошибка, не удалось подключиться к БД",
    "result": "error"
}

Установить текущее местоположение курьера

/api/v1/set_current_location_couriers Данные о местоположении хранятся в памяти. Для каждого курьера сохраняется только последнее местоположение, без истории

POST запрос:

{
  "courier_uid": "4:3:0:298972",
  "coordinates": "54.123122,55.2312111"
}

Ответ успех:

{
    "result": "success"
}

Ответ ошибка:

{
    "desc": "Ошибка, не удалось подключиться к БД",
    "result": "error"
}

Установить текущий статус курьера

/api/v1/set_courier_status Курьер в течении дня может менять свой статус активен\не активен Если курьер не активен, то не показываем его в списке назначения курьера на заказ (в Юпитере)

POST запрос:

{
  "courier_uid": "4:3:0:298972",
  "satus": "active"    // active - активен, not_active - не актвиен
}

Ответ успех:

{
    "result": "success"
}

Ответ ошибка:

{
    "desc": "Ошибка, не удалось подключиться к БД",
    "result": "error"
}

Получить список курьеров

/api/v1/get_couriers Возвращает список курьеров у которых открыта смена в Юпитере. Если курьер использует мобильное приложение, то возвращает его последнее местоположение (параметр "coordinates"). Если у курьера есть заказы в статусе "Назначен курьеру", то возвращает признак, что курьера занят (параметр "courier_is_free")

2020-03-20 Добавлен обязательный параметр tz_uid в него нужно передавать UID торгового зала из Юпитера. Ищем открытую смену только по этому ТЗ.

POST запрос:

{
    "tz_uid": "4:3:0:299094"
}

Ответ успех:

[
   {
      "coordinates": "54.123122,55.2312111",
      "courier_is_free": true,
      "name": "Борисов Артем",
      "uid": "4:1:0:531"
   },
   {
      "coordinates": "",
      "courier_is_free": false,
      "name": "Мишин Филат",
      "uid": "4:1:0:932"
   }
]

Ответ ошибка:

{
    "desc": "Ошибка, не удалось подключиться к БД",
    "result": "error"
}

Назначить курьера на заказы

/api/v1/appoint_courier Отправляет в Юпитер команду назначения курьера на несколько заказов

2020-03-20 Добавлен обязательный параметр tz_uid в него нужно передавать UID торгового зала из Юпитера.

2020-06-25 В массиве orders можно вместо UIDов можно передать номер сборки. Например "orders": ["1","2"]

2021-11-16 Теперь в массиве orders нужно передавать объекты. Каждый объект состоит из uid (uid или номер сборки заказа) и delivering_time (сколько времени нужно, что отвезти заказ в минутах)

2021-12-02 Теперь Юпитер сам считает время необходимое для доставки. Изменение от 2021-11-16 упразднено.

POST запрос:

{
  "courier_uid": "4:1:0:932",
  "tz_uid": "4:3:0:299094"
  "orders": [
    "5:1:0:115982",
    "5:1:0:115983"
  ]
}

Ответ успех:

{
  "result": "success"
}

Ответ ошибка:

{
    "desc": "Ошибка, не удалось подключиться к БД",
    "result": "error"
}

Тестовый запрос

/api/v1/logmsg Запрос для отладки мобильного приложения. Записывает тело полученного запроса в лог файл путь к папке HOME/courierapp_ДАТА.log

POST запрос:

{}

Ответ успех:

{}

 

 


Система JUPITER                                 www.jupiter.systems                                 (с) 2023г.