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) ]); } }