54 lines
1.7 KiB
PHP
Executable File
54 lines
1.7 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Helpers\RedirectLinkHelper;
|
|
use App\Models\Transaction;
|
|
use App\Modules\Gateway\Digipay\DigiPayApi;
|
|
use Illuminate\Http\Request;
|
|
|
|
class DigiPayController extends Controller
|
|
{
|
|
public function checkTransaction(Request $request)
|
|
{
|
|
$data = $request->validate([
|
|
'providerId' => 'string|required',
|
|
'result' => 'string|required',
|
|
'trackingCode' => 'string|required',
|
|
'amount' => 'string|required',
|
|
]);
|
|
|
|
if (!$transaction = Transaction::with(['product.packageName', 'user'])->where('uuid', $data['providerId'])->first()) {
|
|
return view('status', [
|
|
'status' => false,
|
|
'redirect_link' => '#'
|
|
]);
|
|
}
|
|
|
|
if ($data['result'] != 'SUCCESS') {
|
|
return view('status', [
|
|
'status' => false,
|
|
'redirect_link' => RedirectLinkHelper::get($transaction->product->packageName->name)
|
|
]);
|
|
}
|
|
|
|
$response = DigiPayApi::checkTransaction($data['trackingCode']);
|
|
|
|
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)
|
|
]);
|
|
}
|
|
}
|