Шрифт
YooMoney Яндекс Деньги: Пошаговая настройка системы оплаты на сайте с автоматическими HTTP-уведомлениями
Play

YooMoney Яндекс Деньги: Пошаговая настройка системы оплаты на сайте с автоматическими HTTP-уведомлениями

Несмотря на то, что у Яндекса довольно обширный раздел справки и то, что в инете сейчас полно инфы практически обо всем, с настройкой оплаты через Яндекс Деньги и получением при этом HTTP-уведомлений могут возникнуть проблемы .

Для того, чтобы понять, что такое HTTP-уведомления (уверен, не все знают), я приведу два примера покупки плагина на сайте.

    Без уведомлений. Кто-то покупает плагин у вас на сайте. Вам приходит email об оплате. После того, как вы получаете этот email, вы отсылаете плагин человеку, купившему его.

В течение этого поста я буду периодически ссылаться на документацию Яндекса, так как не вижу смысла описывать у себя в статье каждый параметр.

Шаг 1. Настройка формы HTML

Для удобства я оставил комментарии непосредственно в коде формы.

Шаг 2. Настройка HTTP-уведомлений

Сейчас нужно будет сделать небольшую настройку на сайте Яндекс Денег. Для этого переходим по адресу https://yoomoney.ru/myservices/online.xml.

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

Я думаю тут особо нечего комментировать, потому что и так всё понятно — указываем URL скрипта, который будет обрабатывать уведомления (мы его создадим в следующем шаге), жмём кнопку «Показать секрет» и копируем его, так как он тоже понадобится нам в следующем шаге. В заверешении отмечаем галочку «Показать уведомления» и жмём кнопку «Сохранить».

Также в данном случае прошу вас обратить внимание на защищенный протокол https:// адреса получения обновлений. Если ваш сайт поддерживает https:// , то вы сможете получать личную информацию пользователей в уведомлении (email, адрес, фио), если же использовать незащищенный http:// , то эти параметры будут пустыми.

Хотя как вариант (плохой вариант), можно попытаться затолкать всё необходимое в label .

Шаг 3. Прием HTTP-уведомлений. PHP скрипт.

В соответствии с предыдущим шагом я создаю файл receive.php в корне сайта. Содержимое файла будет зависеть от того, какие действия вы будете предпринимать после получения уведомления.

Сейчас мы рассмотрим только то, как получить параметры платежа и сделать проверку того, что все полученные данные верны.

Полный список параметров уведомлений вы найдёте здесь, в документации YooMoney.

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 23

Здравствуйте! Возник вопрос. А как выдавать файл по ID? В форме мы указывали ID плагина. Как сделать, чтобы его выдал receive.php

Здравствуйте! Если у вас WP, то там у каждого аттачмента и каждого поста есть ID (так удобнее, но можете просто придумать любое значение).

Спасибо, полезная информация!

А как выставить сумму в долларах сша ?

Как сменить умолчания? Т.е. я хочу выставить изначальную сумму в 1доллар, а уже при переходе на страницу оплаты был конверт по курсу. Это возможно? Или нужно ручками курс высчитывать?

Есть параметр currency , но согласно документации ЯндексДенег он всегда должен быть равен коду 643, т.е. рублю. Я предполагаю, что возможности оплаты в долларах пока что не реализовано (и неизвестно, будет ли), но могу ошибаться.

Так что да, возможно придется высчитывать курс самому.

Спасибо. Да, я пробовал currency, но не сработало. Видимо придется тинькофскую апи использовать.

Защищенный протокол https:// требует выделенного ip на вашем сайте. Хорошая статья. Спасибо. У меня вопрос. Ответьте пожалуйста. Сайт с WordPress-Woocommerce. Ищу как при появлении $_POST["label"], значение которого соответствует номеру заказа, изменить статус заказа. так как при изменении статуса отправляется письмо покупателю. Я вставил ваш код перед php кодом шлюза WordPress и он замечательно работает. Однако ниже, в самом коде шлюза, переменная POST уже не видится и функция смены статуса не выполняется. Саму функцию в шлюзе, которая меняет статус товара я предельно упростил:

Однако она не работает. Как активировать ту или иную функцию WordPress при приходе уведомления?

Если сразу в обработчике инициализировать WordPress (там, где $_POST ещё есть), подгрузив файл wp_load.php , то по идее этот код должен заработать:

Внимание! При получении уведомления всегда проверяйте статус входящего перевода по значениям полей unaccepted и codepro. Если unaccepted=true, то перевод еще не зачислен на счет получателя. Чтобы его принять, получателю нужно совершить дополнительные действия. Например, освободить место на счете, если достигнут лимит доступного остатка. Или указать код протекции, если он необходим для получения перевода. Если codepro=true, то перевод защищен кодом протекции. Чтобы получить такой перевод, пользователю необходимо ввести код протекции.

Вставляю код формы, а появляется кнопка. Так и должно быть или у меня что-то не так?

А как в коде прописать, чтобы комиссию переложить на плательщика? На хабре такое писали, но не понял что убрать, что оставить в коде и работает ли это сейчас:

Яндекс вроде предлагает сейчас другую форму для юр лиц с комиссией на плательщике - 3% и не менее 30р.

С кнопкой разобрался.

А как получить уведомления о расходах (платежи, переводы, . все операции "со знаком минус" :) )?

Подскажите, а что у а функция sha1()?

Спасибо за статью, но лучше бы обновить информацию. Переходить для настройки HTTP уведомлений: https://yoomoney.ru/myservices/online.xml Форму отправлять сюда: https://yoomoney.ru/quickpay/confirm.xml

Здравствуйте! Ваша информация очень помогла. ) Единственное - мне, как чайнику, непонятно, как ссылка на скачивание должна отправляться покупателю на его почту. Подскажете?

📎📎📎📎📎📎📎📎📎📎