Yandex кошелек

Skip to end of metadata
Go to start of metadata

Яндекс позволяется разместить форму для приема платежей на конкретный кошелек. Рассмотрим вариант с использованием <iframe>.

<iframe src="https://money.yandex.ru/quickpay/shop-widget?writer=seller&amp;targets=Оплата за интернет &amp;targets-hint=&amp;default-sum=&amp;button-text=11&amp;payment-type-choice=on&amp;hint=&amp;successURL=&amp;quickpay=shop&amp;account=123456789012345" width="450" height="213" frameborder="0" scrolling="no"></iframe>

Этот код Вы можете разместить на странице wordpress и получите форму для оплаты.

Нам необходимы параметры:

Номер кошелька, на который будет осуществлен перевод.

account

Идентификатор платежа, по которому будет определятся кто совершил оплату.

label

Описание всех параметров, которые можно использовать в форме Вы найдете в документациии Яндекс https://tech.yandex.ru/money/doc/payment-buttons/reference/forms-docpage/.

Настройка страницы оплаты

Создаем файл в каталоге /app/asr_cabinet/var/cabinet_tmpl

touch /app/asr_cabinet/var/cabinet_tmpl/AbonentYandex.php

В него добавляем код iframe c добавленными параметрами

target=<?=$data['user_info']->contract_number?>

и

label=<?=$data['user_info']->contract_number?>

В результате форма приобретет следующий вид, записываем ее в файл.

echo '<iframe src="https://money.yandex.ru/quickpay/shop-widget?writer=seller&amp;targets=Оплата за Интернет<?=$data['user_info']->contract_number?>&amp;targets-hint=&amp;default-sum=&amp;button-text=11&amp;payment-type-choice=on&amp;hint=&amp;successURL=&amp;quickpay=shop&amp;label=<?=$data['user_info']->contract_number?>&amp;account=123456789012345" width="450" height="213" frameborder="0" scrolling="no"></iframe>' > /app/asr_cabinet/var/cabinet_tmpl/AbonentYandex.php

Для отображении формы в личном кабинете добавьте на страницу шорткод.

[cabinet_abonent_account template="AbonentYandex"]

Настройка обработки

Создаем файл обработчика для уведомлений от Яндекс.

touch /app/asr_fiscal/var/www/custom_http/money_yandex.php
<?php
include_once '/usr/local/www/include/pay_work.php';

class MONEY_YANDEX extends PayWork
{
    function print_result()
    {
        #Сначала заполняем обязательные параметры
        $this->PAY_ID = $this->params['operation_id'];
        $this->ACCOUNT = $this->params['label']; /* ip,id,login or contract o_O */
        $this->OPERATOR_DATE = $this->params['datetime'];
        $this->SUMMA = $this->params['amount']; // amount - из суммы платежа вычитается комиссия платёжной системы; withdraw_amount - абонент получает сумму без учёта комиссии. 
// amount Сумма, которая зачислена на счет получателя.
// withdraw_amount Сумма, которая списана со счета отправителя.
        $this->ACT = 'PAY';
	if ($this->params['unaccepted'] === 'true') {
           $this->ACT = 'CHECK';
        }
        #Делаем запрос в биллинг
        $obj = $this->dbwork();
        #Тут подготавливаем ответ
        $this->log->log_it('Result:' . $obj['res']);
	if($obj['res'] != 0) {
           $this->log->log_it('Response error');
	   header('HTTP/1.1 503 Service Temporarily Unavailable');
           header('Status: 503 Service Temporarily Unavailable');
	   echo 'ERROR';
        } else {
            $this->log->log_it('Response ok');
            header("HTTP/1.0 200 OK");
            header("Status: 200 OK");
            echo 'OK';
        }
    }
}

$paywork = new MONEY_YANDEX($_REQUEST, 'MONEY_YANDEX');
$paywork->print_result();

Обработчик будет доступу по адресу http://169.254.14.44:1444/custom_http/money_yandex.php
Поиск абонента в биллинге будет осуществляться по номеру договора.

Добавьте адрес, с которого будут поступать уведомления в настройки сети http://169.254.14.44:8081/settings/asr_fiscal/network/

В приведенных выше ссылках, локальный адрес 169.254.14.44 замените на внешний адрес сервера

Добавьте ip адреса 185.71.76.0/27 185.71.77.0/27 77.75.153.0/25 77.75.154.128/25 в Настройки сети.

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.