orderId)->first(); // Find related resource $resource = VisaMasterPaymentOrderItem::where('online_payment_history_id', $paymentHistory->id)->first(); // If resource could not be found or does not exist, then inform it via logs if (! $resource) { static::logResourceNotFound($request, $paymentHistory); return static::resourceNotFound(); } $bank_branch = $resource->parent->branch; $returnURL = url('/work-place/resources/nova-visa-master-payment-orders/'.$resource->visa_master_payment_order_id); $response = Http::asForm()->post('https://mpi.gov.tm/payment/rest/getOrderStatusExtended.do', [ 'language' => 'ru', 'orderId' => $request->orderId, 'userName' => $bank_branch->billing_visa_master_username, 'password' => $bank_branch->billing_visa_master_password, ]); if ($response->failed()) { return static::failedPaymentResponse($paymentHistory, $bank_branch, $resource, $returnURL); } $payment_status = $response['paymentAmountInfo']['depositedAmount'] > 0; $cardholderName = $response['cardAuthInfo']['cardholder§§Name'] ?? '-'; $cardPan = $response['cardAuthInfo']['Pan'] ?? '-'; if ($payment_status) { $resource->update([ 'payer_name' => $cardholderName, 'payer_card' => $cardPan, 'paid' => true, ]); $paymentHistory->update([ 'paymentStatus' => OnlinePaymentRepo::PAID, 'cardholderName' => $cardholderName, 'pan' => $cardPan, 'api_response' => $response->body(), ]); return static::successfulPaymentResponse($paymentHistory, $bank_branch, $resource, $returnURL); } $resource->update([ 'payer_name' => $cardholderName, 'payer_card' => $cardPan, ]); $paymentHistory->update([ 'paymentStatus' => OnlinePaymentRepo::FAILED, 'cardholderName' => $cardholderName, 'pan' => $cardPan, 'api_response' => $response->body(), ]); return static::failedPaymentResponse($paymentHistory, $bank_branch, $resource, $returnURL); } }