/
alexey92
/
test
Обзор
Документация
Войти
/
alexey92
/
test
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app/Http/Controllers/PayController.php
73 строки
3 KB
alexeylavrentev
new test
07 ноя 2024, 14:33
07 ноя 2024, 14:33
8de66b9
Код
Авторство
О чём код?
<?php namespace App\Http\Controllers; use App\Models\Deposit; use App\Models\Transaction; use Illuminate\Http\Request; use Illuminate\Support\Carbon; use Inertia\Inertia; class PayController extends Controller { public function paysbp(Request $request) { if($request->has('sum') && !empty($request->sum)) { $sum = preg_replace("#[^0-9\.]+#i", '', $request->sum); $user = auth()->user(); $dateTime = now()->toDateTimeString(); $dateTimeWithoutSpaces = str_replace(' ', '', $dateTime); $carbonDateTime = Carbon::createFromFormat('Y-m-d H:i:s', $dateTimeWithoutSpaces); $timestamp = $carbonDateTime->timestamp; $orderId = $user->id . '_' . $timestamp; $amount = number_format($sum, 2, '.', ''); $currency = 'RUB'; $description = base64_encode("Пополнение баланса аккаунта " . $user->login); // Создаем новую транзакцию $transaction = new Transaction([ 'user_id' => $user->id, 'amount' => '+'.$amount, // Сумма 'status' => 'Не завершён', // Или 'successful', если транзакция уже обработана 'type' => 'Пополнение личного кабинета', // Тип транзакции 'order_id' => $orderId, ]); // Сохраняем транзакцию $transaction->save(); // После выполнения всех условий, отображаем страницу с заполненными данными return Inertia::render('Freekassa', [ 'orderId' => $orderId, 'amount' => $amount, 'currency' => $currency, 'description' => $description, ]); } else { // Handle the case when 'sum' is not set or empty return response()->json(['message' => 'Вы не ввели сумму!'], 400); } } public function deposit(Request $request) { // Получаем сумму из запроса и очищаем её от ненужных символов $summa = preg_replace("#[^0-9\.]+#i", '', $request->sum); $orderId = $request->orderId; $fio = $request->fio; // Получаем текущего пользователя через параметр метода контроллера $user = auth()->user(); $deposit = new Deposit([ 'user_id' => $user->id, 'amount' => $summa, 'name' => $fio, 'status' => 'Ожидает', 'order_id' => $orderId, ]); $deposit->save(); return redirect()->route('wallet'); } }