Март 12, 2026
Теги: Модули grain, Интеграция с iiko
Для модуля Интеграция с iiko.
Принудительная авторизация вебхуков по IP адресу (например, если в заголовках не приходит Authorization):
<?php
namespace Partner;
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'grain.iiko',
'OnGetWebhook',
'\Partner\WebhookAuth::onGetWebhook'
);
class WebhookAuth
{
public static function onGetWebhook(\Bitrix\Main\Event $event)
{
$restaurant = $event->getParameter('RESTAURANT'); // массив ресторана
$token = $event->getParameter('TOKEN'); // токен из настроек модуля
$headers = $event->getParameter('HEADERS'); // заголовки запроса
$webhook = $event->getParameter('WEBHOOK'); // вебхук
foreach ($event->getResults() as $eventResult) // получение данных после другого обработчика, если он был
{
if($eventResult->getType() == \Bitrix\Main\EventResult::ERROR)
continue;
if($parameters = $eventResult->getParameters())
{
if(isset($parameters['WEBHOOK']))
$webhook = $parameters['WEBHOOK'];
}
}
$forceAuth = $_SERVER['REMOTE_ADDR']=='194.67...';
if($forceAuth)
{
$result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, ['FORCE_AUTH'=>$forceAuth]);
return $result;
}
}
}