<form method="POST" action="https://yoomoney.ru/quickpay/confirm.xml">
<!-- Номер кошелька ЮMoney, на который нужно зачислять деньги отправителей -->
<input type="hidden" name="receiver" value="410000000000000">
<!-- Название перевода в истории отправителя (для переводов из кошелька или с привязанной карты). Отображается в кошельке отправителя.
Удобнее всего формировать его из названий магазина и товара. Например: Мой магазин: валенки белые (длина до 50 символов)-->
<input type="hidden" name="formcomment" value="Проект «Железный человек»: реактор холодного ядерного синтеза">
<!-- Название перевода на странице подтверждения. Рекомендуем делать его таким же, как formcomment -->
<input type="hidden" name="short-dest" value="Проект «Железный человек»: реактор холодного ядерного синтеза"/>
<!-- Метка, которую сайт или приложение присваивает конкретному переводу.
Например, в качестве метки можно указывать код или идентификатор заказа (длина до 64 символа) -->
<input type="hidden" name="label" value="$order_id">
<!-- Тип формы, возможные значения:
shop — для универсальной формы;
small — для кнопки;
donate — для «благотворительной» формы -->
<input type="hidden" name="quickpay-form" value="shop">
<!-- Назначение платежа, это покупатель видит на сайте ЮMoney при вводе платежного пароля (длина до 150 символов) -->
<input type="hidden" name="targets" value="Покупка на сайте">
<!-- Сумма перевода (спишется с отправителя), валюта - рубли по умолчанию -->
<input type="hidden" name="sum" value="400.00" data-type="number">
<!-- Должен ли ЮMoney запрашивать ФИО покупателя-->
<input type="hidden" name="need-fio" value="false">
<!-- Должен ли ЮMoney запрашивать email покупателя-->
<input type="hidden" name="need-email" value="true">
<!-- Должен ли ЮMoney запрашивать телефон покупателя-->
<input type="hidden" name="need-phone" value="false">
<!-- Должен ли ЮMoney запрашивать адрес покупателя-->
<input type="hidden" name="need-address" value="false">
<!-- Метод оплаты, возможные значения:
PC — оплата из кошелька ЮMoney;
AC — с банковской карты;
MC — с баланса мобильного -->
<input type="hidden" name="paymentType" value="AC" />
<!-- Куда перенаправлять пользователя после успешной оплаты платежа -->
<input type="hidden" name="successURL" value="http://websait/thankyou">
<button>Оплатить</button>
</form>
Сейчас нужно будет сделать небольшую настройку на сайте ЮMoney. Для этого переходим по адресу https://yoomoney.ru/myservices/online.xml
Перед тем, как у вас отобразится следующая страница, ЮMoney попросит вас ввести платёжный пароль.
Указываем URL скрипта, который будет обрабатывать уведомления (мы его создадим в следующем шаге), жмём кнопку «Показать секрет» и копируем его, так как он тоже понадобится нам в следующем шаге. В заверешении отмечаем галочку «Показать уведомления» и жмём кнопку «Сохранить».
Также в данном случае следует обратить внимание на защищенный протокол https:// адреса получения обновлений. Если ваш сайт поддерживает https://, то вы сможете получать личную информацию пользователей в уведомлении (email, адрес, фио), если же использовать незащищенный http://, то эти параметры будут пустыми.
В соответствии с предыдущим шагом создаем файл receive.php
в корне сайта. Содержимое файла будет зависеть от того, какие действия вы будете предпринимать после получения уведомления.
Сейчас мы рассмотрим только то, как получить параметры платежа и сделать проверку того, что все полученные данные верны.
$secret_key = 'PLzJI0SgyuqPW2kdjuoLOKKP'; // секретное слово, которое мы получили в предыдущем шаге.
// возможно некоторые из нижеперечисленных параметров вам пригодятся
// $_POST['operation_id'] - номер операция
// $_POST['amount'] - количество денег, которые поступят на счет получателя
// $_POST['withdraw_amount'] - количество денег, которые будут списаны со счета покупателя
// $_POST['datetime'] - тут понятно, дата и время оплаты
// $_POST['sender'] - если оплата производится через ЮMoney, то этот параметр содержит номер кошелька покупателя
// $_POST['label'] - лейбл, который мы указывали в форме оплаты
// $_POST['email'] - email покупателя (доступен только при использовании https://)
$sha1 = sha1( $_POST['notification_type'] . '&'. $_POST['operation_id']. '&' . $_POST['amount'] . '&643&' . $_POST['datetime'] . '&'. $_POST['sender'] . '&' . $_POST['codepro'] . '&' . $secret_key. '&' . $_POST['label'] );
if ($sha1 != $_POST['sha1_hash'] ) {
// тут содержится код на случай, если верификация не пройдена
exit();
}
// тут код на случай, если проверка прошла успешно
exit();
Полный список параметров уведомлений вы найдёте в документации ЮMoney.