- Как настроить Webhook‑уведомления в Payeer для автоматической обработки заказов
- Что тебе нужно, чтобы начать
- Как настроить Webhook в Payeer — пошагово
- Как написать простой обработчик (для тех, кто не программист)
- Почему важен Secret Key и как его использовать
- Что Payeer отправляет в уведомлении
- Частые ошибки — и как их избежать
- Когда что выбрать — сценарии
- Как лучше сделать — практические рекомендации
- Итог — что делать прямо сейчас
Как настроить Webhook‑уведомления в Payeer для автоматической обработки заказов
Если ты ведёшь онлайн-бизнес — продажи цифровых товаров, подписок, услуг или даже физических товаров через Payeer — ты знаешь, как утомительно вручную проверять поступления. Клиент заплатил, ты ждёшь уведомление, заходишь в личный кабинет, сверяешь сумму, и только потом высылаешь товар. Это не масштабируется. И если ты хочешь, чтобы система работала сама — без твоего участия — Webhook в Payeer это то, что тебе нужно.
Я не буду рассказывать, что такое Webhook в теории. Скажу просто: это автоматический сигнал от Payeer, который приходит на твой сервер, как только клиент платит. Ты настраиваешь его один раз — и дальше всё делает система: проверяет платёж, активирует доступ, отправляет ключ, обновляет статус заказа. Никаких ручных проверок. Ни утренних звонков клиентам с вопросом «вы оплатили?». Ни пропущенных платежей. Ни ошибок из-за усталости.
Что тебе нужно, чтобы начать
Ты не обязан быть программистом, но должен понимать базовые вещи:
- У тебя есть сайт или сервис, где принимаются заказы (даже простой WordPress с WooCommerce или Telegram-бот).
- У тебя есть хостинг с доступом к PHP, Node.js или другому серверному языку (даже бесплатный хостинг вроде Glitch или Render подойдёт).
- Ты можешь открыть порт на сервере (обычно 80 или 443) и дать Payeer доступ к твоему URL — это не сложнее, чем настроить DNS.
- Ты умеешь копировать и вставлять ссылку в форму.
Если ты не умеешь писать код — не беда. Я покажу, как сделать это с минимальными техническими знаниями. Главное — ты должен быть готов к тому, что нужно будет вставить 10–15 строк кода. Или использовать готовый плагин, если ты на WordPress.
Как настроить Webhook в Payeer — пошагово
- Зайди в свой аккаунт Payeer → «Настройки» → «Webhook».
- Нажми «Добавить Webhook».
- В поле «URL» введи адрес своего сервера, где будет принимать уведомления. Пример:
https://tvoysait.ru/payeer-webhook. Это должен быть HTTPS-адрес. Без SSL — Payeer не примет. - Выбери событие: “Payment received” — именно оно тебе нужно для обработки заказов.
- Оставь поле «Secret key» пустым — пока. Мы добавим его позже, чтобы убедиться, что уведомление пришло от Payeer, а не от хакера.
- Нажми «Сохранить».
Теперь Payeer будет слать POST-запрос на твой URL всякий раз, когда кто-то оплатит. Но твой сервер пока не знает, что с этим делать. Нужно написать обработчик.
Как написать простой обработчик (для тех, кто не программист)
Допустим, ты используешь PHP. Создай файл payeer-webhook.php на своём сервере и вставь туда это:
<?php
// Получаем данные от Payeer
$data = file_get_contents('php://input');
payload = json_decode(data, true);
// Проверяем, что это реальный платёж от Payeer
if (payload['status'] == 'success' &&payload['currency'] == 'USD' && $payload['amount'] > 0) {
// Сохраняем ID платежа — это твой ключ к заказу
paymentId =payload['m_orderid'];
amount =payload['amount'];
payer =payload['payer'];
// Тут ты связываешь платёж с заказом в своей БД
// Например: если $paymentId = 'order_12345', то активируй доступ к товару для клиента
// Это может быть: отправка email, выдача ключа, открытие доступа к курсу
file_put_contents('log.txt', date('Y-m-d H:i:s') . ' - Платёж ' . paymentId . ' на ' .amount . ' USD от ' . $payer . PHP_EOL, FILE_APPEND);
// Отвечаем Payeer, что всё ок — иначе он будет пытаться отправить уведомление снова
http_response_code(200);
echo 'OK';
} else {
// Если что-то не так — возвращаем ошибку, чтобы Payeer не считал, что всё прошло успешно
http_response_code(400);
echo 'Invalid payment';
}
?> Этот код:
- Принимает данные от Payeer в формате JSON.
- Проверяет, что платёж успешный, в USD и сумма больше нуля — это базовая фильтрация.
- Извлекает ID заказа (это поле
m_orderid— ты его задаёшь сам, когда формируешь платёж). - Записывает лог в файл — чтобы ты мог потом проверить, что всё приходило.
- Отправляет ответ
200 OK— это важно. Payeer будет повторять отправку, если не получит ответ 200 в течение 10 минут.
Теперь — как ты связываешь этот платёж с заказом?
Когда клиент нажимает «Оплатить» на твоём сайте — ты формируешь платёж в Payeer и передаёшь в параметре m_orderid уникальный ID заказа из твоей системы. Например:
<form action="https://payeer.com/merchant/" method="POST">
<input type="hidden" name="m_shop" value="1234567">
<input type="hidden" name="m_orderid" value="order_789012"> <!-- это твой заказ в БД -->
<input type="hidden" name="m_amount" value="29.99">
<input type="hidden" name="m_curr" value="USD">
<input type="hidden" name="m_desc" value="Доступ к курсу "Автоматизация"">
<input type="submit" value="Оплатить 29.99 USD">
</form> Когда Payeer пришлёт уведомление — ты получаешь m_orderid = order_789012 и знаешь: «Этот платёж — это заказ №789012 в моей базе. Нужно выдать доступ».
Почему важен Secret Key и как его использовать
Без ключа твой Webhook уязвим. Любой может подделать запрос и отправить ложное уведомление: «Оплата прошла! Выдайте ключ!» — и твой сервер повеселится, выдавая товары за бесплатно.
В Payeer есть поле «Secret key». Введи туда длинную случайную строку — например: 7xK9#pL2$qR6!nM8@vB4.
Теперь модифицируй свой код — добавь проверку подписи:
<?php
secretKey = '7xK9#pL2qR6!nM8@vB4'; // Твой секретный ключ из Payeer
$data = file_get_contents('php://input');
payload = json_decode(data, true);
// Генерируем хеш, который Payeer должен был отправить
hash = hash_hmac('sha256',data, $secretKey);
// Сравниваем с заголовком X-Payeer-Signature
signature =_SERVER['HTTP_X_PAYEER_SIGNATURE'] ?? '';
if (hash !==signature) {
http_response_code(401);
exit('Invalid signature');
}
// Только после проверки подписи — обрабатываем платёж
if (payload['status'] == 'success' &&payload['amount'] > 0) {
// ... твоя логика обработки заказа
http_response_code(200);
echo 'OK';
} else {
http_response_code(400);
echo 'Invalid payment';
}
?> Это необязательно для старта — но если ты хочешь, чтобы система была безопасной — обязательно добавь это. Без подписи — ты рискуешь, что кто-то подменит платёж и получит доступ к твоим товарам без оплаты.
Что Payeer отправляет в уведомлении
Вот основные поля, которые приходят в JSON-ответе:
| Поле | Что значит | Почему важно |
|---|---|---|
m_orderid | Твой уникальный ID заказа | Связывает платёж с заказом в твоей системе |
amount | Сумма платежа | Проверяй, чтобы она совпадала с ценой товара |
currency | Валюта (USD, EUR, RUB и т.д.) | Если клиент оплатил в RUB, а ты ждал USD — это может быть ошибка |
status | «success» или «fail» | Только «success» — обрабатывай. «fail» — игнорируй |
payer | Счёт плательщика (например, P1234567) | Полезно для аналитики — кто платил |
payment_id | ID платежа в Payeer | Нужен для отслеживания в кабинете Payeer |
timestamp | Время платежа в Unix-формате | Можно использовать для проверки, не старый ли запрос |
Список всех полей — в официальной документации Payeer. Но для старта тебе хватит этих шести.
Частые ошибки — и как их избежать
- Не используешь HTTPS. Payeer не принимает Webhook на HTTP. Даже если твой сайт на HTTPS, а обработчик на HTTP — он не сработает. Убедись, что твой URL начинается с
https://. - Не отвечаешь 200 OK. Если твой сервер возвращает 500, 404 или вообще ничего — Payeer будет пытаться отправить уведомление ещё 5 раз в течение 10 минут. Это создаёт дубли. И если твой код не проверяет, был ли этот заказ уже обработан — ты можешь выдать товар 5 раз.
- Не проверяешь сумму. Клиент платит 1 USD, а ты выдаёшь доступ к курсу за 50 USD. Добавь проверку:
if ($amount == 29.99)— только тогда выдавай товар. - Не проверяешь подпись. Без
X-Payeer-Signatureлюбой может подделать платёж. Даже если ты не ведёшь крупный бизнес — это не повод игнорировать безопасность. - Используешь один и тот же m_orderid для всех заказов. Если ты вручную вставляешь
m_orderid=order_1— Payeer будет считать, что это один и тот же платёж. Каждый заказ должен иметь уникальный ID:order_12345,order_12346и т.д. - Не логируешь. Без логов ты не поймёшь, почему что-то не сработало. Пиши в файл или базу: когда пришёл платёж, что пришло, что сделано.
Когда что выбрать — сценарии
Ты не один. У тебя может быть разная ситуация. Вот как действовать в разных случаях:
- Ты просто продаёшь PDF-файлы и не хочешь вникать в код → Используй плагин для WordPress. Он настроен на Webhook, проверяет подписи, обрабатывает оплаты. Тебе нужно только ввести ключ и настроить продукт.
- Ты продаёшь подписки и нужно автоматически продлевать доступ → Payeer не поддерживает регулярные платежи. Используй его только для первоначальной оплаты. Для продлений — переходи на Stripe или Paddle.
- Ты продаёшь цифровые товары через Telegram → Сделай простой бот на Python (aiogram). Принимай Webhook на ngrok (временный HTTPS-туннель) → обрабатывай платёж → отправляй ключ в чат.
- Ты продаёшь физические товары → Webhook можно использовать для автоматической отправки уведомления на почту менеджеру: «Поступил платёж на 1500 RUB — клиент Иванов, заказ №123». Но физические товары всё равно нужно отгружать вручную — Webhook тут только помогает не забыть.
Как лучше сделать — практические рекомендации
- Всегда используй уникальные m_orderid. Генерируй их автоматически:
order_+ timestamp + случайные 4 цифры. - Пиши логи. Даже если ты думаешь, что всё работает — логи спасут тебя, когда что-то сломается. Сохраняй в файл или базу: дата, сумма, ID заказа, статус, IP клиента.
- Тестируй перед запуском. Используй Payeer Sandbox (тестовый аккаунт) или просто отправь платёж на 0.01 USD. Проверь, приходит ли уведомление, и что твой сервер его обрабатывает.
- Не забывай про дубли. Payeer может отправить одно и то же уведомление дважды. Проверяй: был ли этот
m_orderidуже обработан? Если да — просто отвечай 200 и не делай ничего. - Следи за сроком действия. Payeer не хранит Webhook-уведомления. Если твой сервер был недоступен 3 часа — платёж не придёт повторно. Убедись, что твой сервер работает 24/7.
Итог — что делать прямо сейчас
Если ты хочешь, чтобы Payeer автоматически обрабатывал заказы — сделай это:
- Включи Webhook в настройках Payeer → введи HTTPS-адрес своего сервера.
- Создай простой PHP-файл (или используй плагин), который принимает уведомление и проверяет
m_orderid. - Добавь Secret Key и проверку подписи — это не сложно, но критично важно.
- Свяжи
m_orderidс заказом в твоей системе — и выдавай товар автоматически. - Запусти тестовый платёж на 0.01 USD — проверь, приходит ли уведомление и работает ли логика.
- Включи логирование — и забудь про ручную проверку платежей.
Это не «надо сделать когда-нибудь». Это — то, что сделает твой бизнес масштабируемым. Даже если ты сейчас продаёшь 5 товаров в неделю — через полгода это станет 50. И ты не захочешь тратить 3 часа в день на проверку оплат.
Webhook — это не про технологии. Это про твоё время. И твоё спокойствие.
Информация в статье носит ознакомительный характер. Настройка автоматических платежей требует понимания безопасности и обработки данных. Перед внедрением в продакшен проконсультируйся с разработчиком или специалистом по онлайн-платежам.



