first(); $result = getSberCredentials($orderItem); if (isset($result['error'])) { $this->handleError($result); } /** @var \App\Models\Payment\OnlinePaymentHistory $onlinePaymentResource */ $onlinePaymentResource = $result['onlinePaymentResource']; /** @var \App\Modules\SberPaymentOrder\Models\SberPaymentOrder $sberPaymentOrder */ $sberPaymentOrder = $result['relatedResource']; $response = checkOnlinePayment($onlinePaymentResource->orderId, $result['username'], $result['password']); if ($response['errorCode'] != 0) { return Action::modal('modal-response', [ 'title' => 'HALKBANK API', 'body' => $response['errorMessage'], ]); } $systemRawResponse = syncWithBankSystem( online_payment_order_uuid: $onlinePaymentResource->orderId, bank_unique_code: $sberPaymentOrder->branch->unique_code, online_payment_terminal_id: $response['terminalId'], user_deposit_account: number_format($sberPaymentOrder->sender_deposit_account, 0, '', ''), online_payment_auth_ref_num: $response['authRefNum'], online_payment_tmt_amount: $orderItem->tmt_payment_amount, pay_purpose: $orderItem->created_at->translatedFormat('F').' '.$orderItem->created_at->format('Y') ); info(['response' => $systemRawResponse]); return ActionResponse::message('Sync with system success'); // $systemResponse = json_decode($systemRawResponse); // if (is_object($systemResponse)) { // $success = $systemResponse->errCode == 0; // } else { // $success = $systemResponse['errCode'] == 0; // } // if ($success) { // $orderItem->update([ // 'synced_with_system' => true, // ]); // } else { // $orderItem->update([ // 'synced_with_system' => false, // ]); // } // return Action::modal('modal-response', [ // 'html' => $success ? "Success" : "Fail", // 'title' => $success ? "Success" : "Fail", // ]); } /** * Get the fields available on the action. * * @param \Laravel\Nova\Http\Requests\NovaRequest $request * @return array */ public function fields(NovaRequest $request) { return []; } /** * Handle error * * @param array $result */ private function handleError(array $result): mixed { if ($result['type'] === 'modal') { return Action::modal('modal-response', [ 'title' => 'HALKBANK API', 'body' => $result['error'], ]); } return ActionResponse::danger($result['error']); } }