Сервер 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г.
Нет комментариев