Начать новую тему

Инструкция по Webhook

Добрый день.

Есть ли где то более наглядная и подробная инструкция по вебхукам чем представленные ниже?

1. https://docs.google.com/document/d/1__C_8sRJ1pvVJ2yjcV5ajsyeWViE3WXUZhC-ygJmOLs


2. https://docs.google.com/document/d/1FtwxZBRCZ1EBMPVHf6PZwSH0Mvmq7UjXMrR_LiuT6uk


Находил еще вот такую тему 

https://help.merchium.com/support/discussions/topics/1000068839

но суть так же не уловил.


Понял, что в Администрирование -> Веб-хуки можно создать саму подписку на определённые события (что в инструкциях описывается на curl), а вот дальше что делать не совсем ясно.


Не поможете ли простым примерчиком? К примеру по событию отправляется письмо на тестовый мэйл или что-нибудь подобное.


Заранее очень благодарен за любую полезную информацию. 

Здравствуйте.


Вам необходимо создать приложение в Маркете Мерчиума и получить ключи. Далее с помощью ключа зарегистрируйте вебхук через API. По наступлению события из этого вебхука вызывается URL и туда передаются данные о событии. В данном URL вы можете написать необходимую логику. Пример доступен здесь:


https://github.com/merchium/merchium-advanced-app


Спасибо.

Тестовый магазин и тестовое приложение есть, но вот обработка хуков остаётся неясной.


"Далее с помощью ключа зарегистрируйте вебхук через API." - не совсем понятно, разве веб-хук не создаётся просто во вкладке Администрирование -> Веб-хуки? Или мы говорим о разных вещах?


"В данном URL вы можете написать необходимую логику. Пример доступен здесь:

https://github.com/merchium/merchium-advanced-app" - не нашёл пример файла с кодом веб-хука. Подскажите, пожалуйста, название файла или папку с хуками.


Спасибо. 

Так же при тестировании простого файла без какого либо кода, возвращается статус 403.

Я так понимаю, что надо как то дать Мерчиуму доступ к файлу на сервере?

>"Далее  с помощью ключа зарегистрируйте вебхук через API." - не совсем понятно,  разве веб-хук не создаётся просто во вкладке Администрирование ->  Веб-хуки? Или мы говорим о разных вещах?


Сначала вам нужно создать веб-хук (т.е. API-запрос) с ключами вашего приложения, а затем на странице Администрирование > Веб-хуки подписаться на этот веб-хук. 



>"В данном URL вы можете написать необходимую логику. Пример доступен здесь:

https://github.com/merchium/merchium-advanced-app" - не нашёл пример файла с кодом веб-хука. Подскажите, пожалуйста, название файла или папку с хуками.


Пример вы можете найти в файле behaviors/WebhookBehavior.php.



>Так же при тестировании простого файла без какого либо кода, возвращается статус 403.

Я так понимаю, что надо как то дать Мерчиуму доступ к файлу на сервере?


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


Спасибо.

Добрый день. Продолжаю разбираться с созданием веб-хука.


В документации не совсем верно оформлены операции по взаимодействию с веб-хуками через curl (по крайней мере для cmd). Дело в том что необходимы двойные кавычки, заместо одинарных вокруг текста выделенного зелёным цветом (подсветил синим маркером). 


curl --header 'X-Merchium-Access-Token: ACCESS_TOKEN' \

--header 'Content-Type: application/json;' \

-X POST 'http://STORE_NAME.mymerchium.ru/api/webhooks' \

-d '{"event":"add_to_cart","url":"http://example.com/webhook_listener"}'


Текст выделенный красной заливкой. Правильно ли я понимаю, что в данном поле указывается непосредственно файл на внешнем ресурсе где и будет написана вся логика связанная с веб-хуком?


И еще момент. При регистрации веб-хука выдаёт вот такую ошибку. 


{"message":"Bad Request: Синтаксическая ошибка, некорректный JSON","status":400}


Не подскажете, где искать проблему?


Спасибо.

Здравствуйте.


>В документации не совсем верно оформлены операции по взаимодействию с веб-хуками через curl (по крайней мере для cmd). Дело в том что необходимы двойные кавычки, заместо одинарных вокруг текста выделенного зелёным цветом (подсветил синим маркером).


Примеры в нашей документации рассчитаны на Linux-системы, поэтому, возможно, вам нужно адаптировать их под используемую вами систему. 



>Текст выделенный красной заливкой. Правильно ли я понимаю, что в данном поле указывается непосредственно файл на внешнем ресурсе где и будет написана вся логика связанная с веб-хуком?


Здесь вам нужно указать адрес, на который будет отправляться запрос при срабатывании веб-хука.



>И еще момент. При регистрации веб-хука выдаёт вот такую ошибку.

{"message":"Bad Request: Синтаксическая ошибка, некорректный JSON","status":400}

Не подскажете, где искать проблему?


Пожалуйста, убедитесь, что в JSON вашего запроса нет ошибок.


Спасибо.

Добрый день. Ваша помощь по моменту запроса через API очень помогла. Был создан веб-хук через API. Он появился в Администрирование -> Веб-Хуки. 

Но если зайти в него и и нажать кнопку "Тест", то возвращает следующее:

Статус ответа: 403

<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx-reuseport/1.13.4</center>
</body>
</html>

 


На хостинге дал доступ ко всем файлам и папкам chmod 777, приложение имеет всевозможные привилегии. Как быть? Что я делаю неправильно?


Спасибо. 

Пожалуйста, укажите URL, который вы используете для веб-хука.


Спасибо.

Добрый день.


https://ribalisa.ru/merch_app/wh/test.php

Исходный код файла:

<?php
echo "ok";
?>

 

Здравствуйте.


Мы предоставим вам ответ немного позднее.


Спасибо.

Здравствуйте.


Как мы видим, веб-хук уходит POST запросом. Возможно проблема вызвана настройками на вашем сервере. К сожалению, мы не можем предоставить вам больше информации, так как необходимо изучить проблему на вашей стороне.


Спасибо.

Благодарю за информацию. 

Проверил на другом хостинге, ответ пришёл. Будем разбираться дальше.


Спасибо.

Всегда пожалуйста. Были рады помочь вам.


Войдите, чтобы опубликовать свой комментарий