Получение статуса отправления
Модуль оповещения внешних клиентов об изменении статуса заказов. На стороне внешней системы разрабатывается сервис приема сообщений от модуля. Модуль отправляет два типа сообщений:
- уведомление об изменении статуса отправления
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
| desc | type | |
|---|---|---|
authorization | Ключ авторизации | string |
Content-Type | Со начением application/json | string |
Request body
| desc | type | |
|---|---|---|
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
| desc | type | |
|---|---|---|
authorization | Ключ авторизации | string |
Content-Type | Со начением application/json | string |
Request body
| desc | type | |
|---|---|---|
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
| desc | type | |
|---|---|---|
authorization | Ключ авторизации | string |
Content-Type | Со начением application/json | string |
Request body
| desc | type | |
|---|---|---|
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"
}]Требование к кодам ответов
На стороне внешней системы в ответе от сервисов должны быть реализованы следующие коды ответов:
| HTTP | desc |
|---|---|
200 | Успешный ответ сервиса (уведомление уходит из очереди) |
400 | Некорректный запрос |
401 | Ошибка авторизации |
500 | Ошибка сервиса |
