HTTP Callback#
Чтобы воспользоваться сервисом HTTP Callback, вам потребуется сообщить нам адрес и порт вашего сервера, на который будут приходить статусы.
Сервис HTTP Callback периодически проверяет доступность вашего сервера, отправляя GET-запрос на адрес <host>/ping. Если ваш сервер доступен и возвращает ответ с кодом 200 OK, вам будут отправлены доступные на текущий момент статусы.
Пример запроса#
curl --location --request GET 'https://app.sms.by/remote-api/viber/ping' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic MzM3MTY6VXRoOWp1aGE=' \
--header 'Cookie: XSRF-TOKEN=eyJpdiI6IjF4QUF5RENyUjF3YmlzZFF3Q3ZwSEE9PSIsInZhbHVlIjoiN0U2UUN3R2p0NThoWTF3QXU1VlJBa3h6clp0djdkamtUQWU4TDdDbU40NldndXlrcGhReVRpZkZCbm52aXdscjdaVWliY1NXaGtDUEFnMU5IbG9rMUE9PSIsIm1hYyI6IjQwNjUxZmYxMmY0MTMyYjkyMDMwODYzY2I2ZWY3NWVmODVjYTBmMDdlOWZhNGY1NzQ5ZDNiNzE4MmYxZTg5MDYifQ%3D%3D; laravel_session=eyJpdiI6InRwVkFqU2FcL200ZHBxWGczOEthQ1RBPT0iLCJ2YWx1ZSI6IlQ2UnpydnJ0SFhIemlMWFd2ZHBKWEJcLzlBSjhndUpGY3B6dktMSjNESXNQRVpaZWorRU9pR28wOHJrb0o0V0c2djZKSDJ5MkloNzJOQ1lLR0VDc1g4UT09IiwibWFjIjoiYzMzYWVjN2EyZDA5YjMzZTkxMmYyZWUyNjE4NjJmNGYxOWU4NWUzYjdmZTcxYzg3OTMwM2Q4NjYzYmIxYTYyYyJ9' \
--data-raw ''
Статусы будут передаваться на ваш сервер в запросе, который имеет следующую структуру:
тип запроса - POST;
URL:<host>:<port>/states;
Authorization: Basic base64(login:pass)
Content-Type - application/json
В качестве значений параметров <host> и <port> вам потребуется указать адрес и порт вашего сервера.
По умолчанию эндпоинт для получения статусов /states. Вы можете задать кастомное значение эндпоинта для получения статусов. Для этого необходимо вместе с адресом и портом вашего сервера указать необходимое название эндпоинта.
В теле запроса передаётся точно такой же JSON-объект, как в ответе на запрос статусов:
{"timestamp":"1551106300857","states":[{"@type":"state","msid":"43000aa1-1111-1111-0000-aa0007777777","status":"UNDELIVERED","creationDate":"1551106273415","errorCode":"6969","final":true}]}
В ответ на запрос ваш сервер должен вернуть код 200 OK или 202 (Accepted). Если ваш сервер вернёт другой код, будет предпринята повторная попытка отправки согласно заданным правилам. Для всех клиентов применяется правило переотправки и выглядит следующим образом: 10:100:1000 (10с - первая попытка, 100с - вторая, 1000 сек - 3 попытка).