Files
approagency/app/Http/Controllers/ZarinpalController.php
T
2025-09-10 15:28:46 +03:30

53 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Helpers\RedirectLinkHelper;
use App\Models\Transaction;
use App\Modules\Gateway\Zarinpal\ZarinpalApi;
use Illuminate\Http\Request;
class ZarinpalController extends Controller
{
public function checkTransaction(Request $request)
{
$data = $request->validate([
'Authority' => 'string|required',
'Status' => 'string|required',
]);
if (!$transaction = Transaction::with(['product.packageName', 'user'])->where('authority', $data['Authority'])->first()) {
return view('status', [
'status' => false,
'redirect_link' => '#'
]);
}
if ($data['Status'] != 'OK') {
return view('status', [
'status' => false,
'redirect_link' => RedirectLinkHelper::get($transaction->product->packageName->name)
]);
}
$response = ZarinpalApi::checkTransaction($transaction);
if (!$response['status']) {
return view('status', [
'status' => false,
'redirect_link' => RedirectLinkHelper::get($transaction->product->packageName->name)
]);
}
$transaction->update(['status' => Transaction::STATUSES['success']]);
$transaction->product->buy($transaction->user, $transaction['authority'], Transaction::GATEWAYS['asanpardakht']);
return view('status', [
'status' => true,
'redirect_link' => RedirectLinkHelper::get($transaction->product->packageName->name)
]);
}
}