Files
moonwell-web/app/Http/Controllers/PaymentController.php
T

43 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Services\RobokassaService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\Rule;
use Illuminate\View\View;
class PaymentController extends Controller
{
public function create(Request $request, RobokassaService $robokassa): View
{
$validated = $request->validate([
'amount' => [
'required',
'numeric',
'decimal:0,2',
Rule::numeric()->min((float) config('services.robokassa.minimum_amount'))->max((float) config('services.robokassa.maximum_amount')),
],
]);
$user = $request->user();
$invoice = $robokassa->createInvoice($user->id, (string) $validated['amount']);
return view('payments.redirect', [
'paymentUrl' => config('services.robokassa.payment_url'),
'parameters' => $robokassa->paymentParameters($invoice, $user->email),
]);
}
public function success(): RedirectResponse
{
return redirect()->route('cabinet.index')->with('status', 'Пополнение принято. Слёзы Элуны скоро появятся на счёте.');
}
public function fail(): RedirectResponse
{
return redirect()->route('cabinet.index')->with('error', 'Оплата отменена или не была завершена.');
}
}