Skip to content

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

Модуль оповещения внешних клиентов об изменении статуса заказов. На стороне внешней системы разрабатывается сервис приема сообщений от модуля. Модуль отправляет два типа сообщений:

  • уведомление об изменении статуса отправления event_id
  • уведомление содержащее код получения для клиента access_code

Сервис приема сообщений должен работать по протоколу HTTPS и иметь действительный сертификат

При неуспешной попытке отправки оповещений (код состояния HTTP отличен от 200), модуль будет автоматически повторять попытки отправки каждые 5 минут.

Схема работы модуля оповещения Схема работы модуля

Требование к авторизации

На стороне внешней системы должна поддерживаться HTTP базовая аутентификация для методов. Ключ для аутентификации генерируется по принципу base64 (login + ':' + password) и передаётся в заголовке authorization. Пара login и password формируется и передаётся оператору платформы "Мой постамат" внешней системой и используется для обмена.

Пример заголовка

shell
curl -X 'POST' \
 'https://{SOME_URL}/order-status ' \
 -H 'authorization: Basic A11bSDFbsDFdbJRMzRXaE1NaTlOV3EyVjk5TUU3clVSZkE3Z1I=' \

Отправка статуса товара

POST /order-status

Инициатор запроса платформа "Мой постамат"

Header parameters

desctype
authorizationКлюч авторизацииstring
Content-TypeСо начением application/jsonstring

Request body

desctype
postamat_idИдентификатор постамата, где закладывается товарstring
cell_idИдентификатор ячейки, куда заложили товарint32
idИдентификатор заказа, содержащий товарstring
barcodeИдентификатор (штрих-код) товараstring
event_idСтатус товараstring
statusТекстовое описание статусаstring
dtДата операцииdatetime

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

shell
curl -X 'POST' \
  'https://{SOME_URL}/order-status ' \
  -H 'accept: */*' \
  -H 'authorization: Basic A11bSDFbsDFdbJRMzRXaE1NaTlOV3EyVjk5TUU3clVSZkE3Z1I=' \
  -H 'Content-Type: application/json' \
  -d '{
        "postamat_id":"77",
        "cell_id":2165,
        "id":"d335450e-e86a-4aa6-a047-50c0c95d24ec;3fb686ef-c90d-48c3-bf44-143c0c3dca4d",
        "event_id":"3",
        "dt":"2023-09-19T10:01:37+03:00",
        "status":"Курьер загрузил",
        "barcode":"0143b1f6fcb64117877c5acac3cb3859"
  }'

Примеры уведомлений

Размещение курьером товара в постамате

json
[{
    "postamat_id":"77",
    "cell_id":2165,
    "id":"d335450e-e86a-4aa6-a047-50c0c95d24ec;3fb686ef-c90d-48c3-bf44-143c0c3dca4d",
    "event_id":"3",
    "dt":"2023-09-19T10:01:37+03:00",
    "status":"Курьер загрузил",
    "barcode":"0143b1f6fcb64117877c5acac3cb3859"
}]

Получение посылки клиентом

json
[{
    "id":"d335450e-e86a-4aa6-a047-50c0c95d24ec;bada2cc4-19e5-4a09-a8f4-487acb9fd909",
    "event_id":"2",
    "dt":"2023-09-19T15:24:49+03:00",
    "status":"Клиент получил",
    "barcode":"00e0be30f4af4b80a52c5013d4891a5c"
}]

Истечение времени хранения заказа

json
[{
    "id":"f92fc605-6b2a-4d5c-8c9d-46caa852f36a;1123b0af-0a4e-44c8-aa22-4ed08cf9099f",
    "event_id":"7",
    "dt":"2023-09-19T15:05:16+03:00",
    "status":"Ожидает возврата",        
    "barcode":"a511a5faea624e22b8e47d56bc5817e7"
}]

Забор курьером посылки

json
[{
    "id":"aa1cc92c-41dd-4f58-bdf3-d8048ac65cca;bfe0f231-3183-4ba0-9734-de57319348cd",
    "event_id":"4",
    "dt":"2023-09-19T12:28:38+03:00",
    "status":"Курьер забрал",
    "barcode":"9050b9f0598a4bf086a489864e1c9a87"
}]

Отправка код получения для клиента

Код получения будет отправлен только в том случае, если все товары заказа, за исключением отмененных, находятся в статусе загружено курьером.

POST /user-access-code

Инициатор запроса платформа "Мой постамат"

Header parameters

desctype
authorizationКлюч авторизацииstring
Content-TypeСо начением application/jsonstring

Request body

desctype
idИдентификатор заказа, содержащий товарstring
postamat_idИдентификатор постамата, где закладывается товарstring
access_codeКод получения заказа для клиента (числовое значение от 6 до 8 символов)string

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

shell
curl -X 'POST' \
  'https://{SOME_URL}/order-status ' \
  -H 'accept: */*' \
  -H 'authorization: Basic A11bSDFbsDFdbJRMzRXaE1NaTlOV3EyVjk5TUU3clVSZkE3Z1I=' \
  -H 'Content-Type: application/json' \
  -d '{
        "id": "edf3b518-1e54-4cc6-abdf-c5d133478320;8f9be5fd-373f-4923-8952-10ee49a38542",
        "postamat_id": "26",
        "access_code": "1234567"
  }'

Примеры уведомлений

json
[{
    "id": "edf3b518-1e54-4cc6-abdf-c5d133478320;8f9be5fd-373f-4923-8952-10ee49a38542",
    "postamat_id": "26",
    "access_code": "1234567"
}]

Отправка срока хранения

При переходе заказа в статус "Заложено курьером", платформа "Мой постамат" отправит уведомление со сроком хранения заказа внешней системе

В случае, если дата окончания срока хранения заказа припадает на выходной день, платформа "Мой постамат" продлит срок хранения заказа на количество дней равное количеству выходных дней

POST /expiration-date-changes

Инициатор запроса платформа "Мой постамат"

Header parameters

desctype
authorizationКлюч авторизацииstring
Content-TypeСо начением application/jsonstring

Request body

desctype
idИдентификатор заказаstring
event_dtДата изменения срока хранения заказаstring
expire_dtДата измененного срока хранения заказаstring

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

shell
curl -X 'POST' \
  'https://{SOME_URL}/expiration-date-changes ' \
  -H 'accept: */*' \
  -H 'authorization: Basic A11bSDFbsDFdbJRMzRXaE1NaTlOV3EyVjk5TUU3clVSZkE3Z1I=' \
  -H 'Content-Type: application/json' \
  -d '{
        "id": "edf3b518-1e54-4cc6-abdf-c5d133478320;8f9be5fd-373f-4923-8952-10ee49a38542",
        "event_dt": "2023-09-19T12:28:38+03:00",
        "expire_dt": "2023-09-21T12:28:38+03:00"
  }'

Примеры уведомлений

json
[{
    "id": "edf3b518-1e54-4cc6-abdf-c5d133478320;8f9be5fd-373f-4923-8952-10ee49a38542",
    "event_dt": "2023-09-19T12:28:38+03:00",
    "expire_dt": "2023-09-21T12:28:38+03:00"
}]

Требование к кодам ответов

На стороне внешней системы в ответе от сервисов должны быть реализованы следующие коды ответов:

HTTPdesc
200Успешный ответ сервиса (уведомление уходит из очереди)
400Некорректный запрос
401Ошибка авторизации
500Ошибка сервиса