Для организации рекуррентных платежей на Yii2 через Robokassa, вам понадобится следовать нескольким шагам:
1. Установите пакет "yiisoft/yii2-robokassa", введя следующую команду в терминале:
composer require yiisoft/yii2-robokassa
2. В файле конфигурации вашего приложения (common/config/main.php или frontend/config/main.php) добавьте компонент Robokassа:
'components' => [ 'robokassa' => [ 'class' => 'robokassaRobokassa', 'baseUrl' => 'https://auth.robokassa.ru/Merchant/Index.aspx', 'login' => 'ВАШ_ЛОГИН', 'password1' => 'ВАШ ПАРОЛЬ1', 'password2' => 'ВАШ ПАРОЛЬ2', ], ],
Замените ВАШ_ЛОГИН на ваш логин в системе Robokassa и ВАШ ПАРОЛЬ1 и ВАШ ПАРОЛЬ2 на ваши пароли.
3. Создайте модель для хранения информации о рекуррентных платежах. Например, в папке models создайте файл RecurrentPayment.php:
namespace appmodels; use Yii; use yiibaseModel; class RecurrentPayment extends Model { public $amount; public $description; public $email; }
4. Создайте экшн в контроллере для обработки запроса на создание нового рекуррентного платежа. В вашем контроллере (например, SiteController) создайте следующий экшн:
public function actionCreateRecurrentPayment() { $model = new RecurrentPayment(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { // Получаем экземпляр компонента Robokassa $robokassa = Yii::$app->robokassa; // Создаем новый платеж с помощью Robokassa API $payment = $robokassa->api->createRecurrentPayment($model->amount, $model->description, $model->email); if ($payment['Success']) { // Рекуррентный платеж успешно создан // Действия после успешного создания платежа } else { // Ошибка при создании платежа // Действия при возникновении ошибки } } return $this->render('createRecurrentPayment', [ 'model' => $model, ]); }
Обратите внимание, что вам также потребуется создать соответствующий view - createRecurrentPayment.php.
5. Создайте форму в вашем view файле (createRecurrentPayment.php), чтобы пользователь мог указать необходимую информацию для создания рекуррентного платежа:
<?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'amount')->textInput() ?> <?= $form->field($model, 'description')->textInput() ?> <?= $form->field($model, 'email')->textInput() ?> <div class="form-group"> <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::end(); ?>
6. Наконец, добавьте ссылку на вашу форму в виде кнопки, так что пользователь сможет перейти к созданию рекуррентного платежа. Например, в вашем view файле (site/index.php):
<?= Html::a('Create Recurrent Payment', ['site/create-recurrent-payment'], ['class' => 'btn btn-success']) ?>
После выполнения всех этих шагов у вас будет создана форма, которая позволит пользователю указать необходимую информацию для создания рекуррентного платежа через Robokassa. После отправки формы данные будут переданы в экшн, где будет создан новый рекуррентный платеж с использованием API Robokassa. Вы можете выполнить дополнительные действия после успешного создания платежа или при возникновении ошибки, в зависимости от ваших потребностей.