first commit
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
<?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)
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user