базовый курс

ГРУППА КУРСА

Приём оплаты через Яндекс Деньги

Страница оплаты

Чтобы принимать Яндекс Деньги на сайте, нужно создать страницу и разместить на ней форму, которая приведена далее. Атрибуты тега <form> должны быть такие, как в примере. Все поля являются обязательными.

+
1
2
3
4
5
6
7
<!DOCTYPE html>
<html>
<head>
<title>Страница</title>
<meta charset="utf-8">
</head>
<body>
8
9
10
11
12
13
14
15
16
<form id="pay" action="https://money.yandex.ru/quickpay/confirm.xml" method="post">
  <input type="text" name="targets">
  <input type="text" name="sum">
  <input type="hidden" name="receiver" value="435824873316172">
  <input type="hidden" name="quickpay-form" value="shop">
  <input type="hidden" name="paymentType" value="PC">
  <input type="hidden" name="successURL" value="http://mysite.ru/success.html">
  <input type="submit" value="Оплатить">
</form>

Рассмотрим поля формы.

targets - назначение платежа, например, название товара

sum - сумма платежа

reciver - номер кошелька, на который будет приходить оплата

quikpay-form - тип формы. Значения: shop - обычная форма, donate - благотворительная форма, small - кнопка

paymentType - способ оплаты. Значения: PC - с кошелька, AC - банковской картой, MC - с баланса телефона

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

Если товар и его цена известны заранее, то поля targets и sum можно сделать скрытыми и указывать значения при помощи скрипта. А информацию о них выводить обычным текстом.

В форме могут быть дополнительные поля. Они описаны в документации к форме.

Информация о платеже

Чтобы получатель узнал о платеже, система Яндекс Деньги отправляет данные о нём. Если Вы не делали настройки кошелька, то данные приходят на почту, которая привязана к кошельку. Вот самые важные данные:

amount - сумма, которая пришла на кошелёк получателя

withdraw_amount - сумма, списанная с кошелька плательшика

datetime - время платежа

sender - кошелёк плательщика

label - значение поля label на странице оплаты

codepro - содержит true, если использован код протекции

unaccepted - содержит true, если перевод не завершён из за того, что кошелёк переполнен или не введён код протекции.

Полное описание данных есть в документации в разделе Уведомления.

Если нужно, чтобы на сайте выполнялись определённые действия при получении оплаты, то данные платежа должны приходить не на почту, а на страницу сайта. Для этого нужно зайти в документацию в раздел "Уведомления" и пройти по ссылке с надписью "HTTP-уведомления".

Уведомления

Нужно будет подтвердить доступ, после чего Вы сможете указать URL, на который будут приходить данные платежа. На странице нужно создать PHP скрипт, который будет принимать данные и производить какие-то действия в соответствии с данными.

Для защиты от мошенников есть параметр sha1_hash. Он приходит с остальными данными. О его использовании рассказано в документации в разделе "Уведомления". Это достаточно сложно, но гарантирует, что платёж действительно произведён.