Передача данных по всем уведомлениям в системе через API
Система по умолчанию может отправлять запросы вовне по API при возникновении уведмолений в системе. При этом всегда есть возможность для отдельных случаев сделать дополнительно свои методы API для дополнительных выгрузок.
Эта статья для программистов.
Функция dbo.srv_getNotifications управляет выдачей уведомлений пользователяем. Здесь же и вызывается отправка АПИ методов вовне.
Для этого в /settings необходимо указать следующие настройки:
- enableNotificationWebhook - если 1, то будет работать отправка во внешние АПИ уведомлений.
- notificationWebhook - URL адрес, куда идет отправка данных по уведомлениям.
Физически внутри вызывается Внешнее действие notificationWebhook, которое передает все параметры созданного уведомления во внешнюю систему по указанному адресу. Какие это параметры: code, itemID, username, clientID, data, text, url.
По умолчанию это Post запрос и данные передаются как параметры формы.
CREATE PROCEDURE [dbo].[api_notificationWebhook_request]
@parameters ExtendedDictionaryParameter READONLY,
@username nvarchar(32)
AS
BEGIN
declare @url nvarchar(max) = dbo.as_setting('notificationWebhook', '')
if(isnull(@url,'') = '') begin
select 'Wrong URL', 0 Result, '' Url
return
end
-- SELECT 1
select '' Msg, 1 Result, @url Url
-- SELECT 2 PARAMETERS
select [key] name, value2 value, 'form' [type]
from @parameters
END
--------
На принимающей стороне мы получаем данные и выводим из для примера в базу таким образом (создали Входящий метод АПИ на другом сайте Falcon для примера обработки):
CREATE PROCEDURE [dbo].[api_notifyFromService_notifyFromService]
@parameters ExtendedDictionaryParameter READONLY,
@username nvarchar(256)
as
begin
insert into as_trace (code, created, text)
select 'notifyFromService', getdate(),
(SELECT *
FROM @parameters
FOR JSON AUTO)
-- SELECT 1
select 'OK' Msg, 1 Result, 0 errorCode
-- SELECT 2
--select * from @parameters
end
В итоге получаем такой JSON, который можно просмотреть через https://jsoneditoronline.org/
[{"Key":"InputStream","Value":"","Value2":"//// тут большое тело в другом формате...."},{"Key":"langID","Value":"","Value2":"2"},{"Key":"falconGuid","Value":"","Value2":"141673b3-7abe-4a2b-194b-d0b19b7752e6"},{"Key":"falconFR","Value":"","Value2":"https:\/\/www.google.com\/"},{"Key":"falconFP","Value":"","Value2":"https:\/\/service.web-automation.ru\/"},{"Key":"userIP","Value":"","Value2":"176.212.180.9"},{"Key":"userPort","Value":"","Value2":"0"},{"Key":"domain","Value":"","Value2":"service.web-automation.ru"},{"Key":"code","Value":"","Value2":"changeOrderStatus"},{"Key":"itemID","Value":"","Value2":"2499"},{"Key":"username","Value":"","Value2":"pointdirector1010240955"},{"Key":"clientID","Value":"","Value2":"2256"},{"Key":"data","Value":"","Value2":"В обработке"},{"Key":"text","Value":"","Value2":"Изменился статус заказа №2499 на \"В обработке\""},{"Key":"url","Value":"","Value2":"\/myorder\/2862"},{"Key":"Connection","Value":"","Value2":"Keep-Alive"},{"Key":"Content-Length","Value":"","Value2":"1452"},{"Key":"Content-Type","Value":"","Value2":"multipart\/form-data; boundary=----------8dcec89dcdad7ef"},{"Key":"Accept","Value":"","Value2":"text\/html, application\/xhtml+xml, application\/xml; q=0.9, *\/*; q=0.8"},{"Key":"Accept-Encoding","Value":"","Value2":"gzip, deflate"},{"Key":"Host","Value":"","Value2":"falconspace.ru"},{"Key":"Request-Id","Value":"","Value2":"|b13bd3ca-47c1c769a4420d40.1."},{"Key":"remoteIP","Value":"","Value2":"188.227.75.146"},{"Key":"FalconApiGuid","Value":"09641f71-023d-4400-9e5d-a59bacb8569f","Value2":"09641f71-023d-4400-9e5d-a59bacb8569f"}]
Подсказка по демо
Это база знаний по основным возможностям решения Service.Механизм в дальнейшем можно использовать как базу знаний для менеджеров точек.
- ВВЕДЕНИЕ
- HOWTO СИСТЕМА Как посмотреть текущую статистику по посещаемости Как установить Favicon/лого Как установить ключ техподдержки по умолчанию (виджет внизу справа) Как редактировать статичные страницы (Главная, Правила, Конфиденциальность) Как добавить счетчики аналитики, свои стили CSS или некий JS скрипты Как проверить в системе целостность данных (например, найти менеджеров или клиентов без точки) Как изменить подвал(footer) сервиса Как изменить разметку страницы товара Как создавать значок сайта на экране телефона. Поддержка PWA технологии Управление заказами и услугами Передача данных по всем уведомлениям в системе через API
- HOWTO ТОЧКИ (филиалы, подразделения)
- HOWTO ЗАКАЗЫ
- HOWTO УСЛУГИ
- HOWTO КОНТЕНТ
- HOWTO ПОЛЬЗОВАТЕЛИ
- HOWTO Баланс, кешбек, реф система