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