From a622f7651aa184d82be76e13bf0a2bbe2d8ed3f6 Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Wed, 10 Sep 2025 16:44:46 +0500 Subject: [PATCH] wip --- app/Helpers/helpers.php | 59 +++++++++++++++++++ app/Jobs/SendSberToSystem.php | 11 ++-- .../Concerns/NovaSberPaymentOrderAuth.php | 1 - app/Nova/Actions/Sber/SyncWithSystem.php | 54 +---------------- 4 files changed, 67 insertions(+), 58 deletions(-) diff --git a/app/Helpers/helpers.php b/app/Helpers/helpers.php index 583d816..fdf2296 100644 --- a/app/Helpers/helpers.php +++ b/app/Helpers/helpers.php @@ -520,3 +520,62 @@ function getSberCredentials(SberPaymentOrderItem $item): array 'relatedResource' => $relatedResource, ]; } + +function syncWithAzatAPI(SberPaymentOrderItem $orderItem): array +{ + $result = getSberCredentials($orderItem); + + if (isset($result['error'])) { + return $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 [ + 'error' => $response['errorMessage'], + 'type' => 'modal', + ]; + } + + $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') + ); + + if ($systemRawResponse == null) { + return [ + 'error' => 'Connection issue to SYSTEM', + 'type' => 'modal', + ]; + } + + $systemResponse = json_decode($systemRawResponse); + + $success = false; + if (is_object($systemResponse)) { + $success = $systemResponse->errCode == 0; + } else { + $success = $systemResponse['errCode'] == 0; + } + + $orderItem->update([ + 'synced_with_system' => $success ? true : false, + ]); + + return [ + 'success' => $success, + 'type' => 'modal', + ]; +} diff --git a/app/Jobs/SendSberToSystem.php b/app/Jobs/SendSberToSystem.php index a5950e4..60799e9 100644 --- a/app/Jobs/SendSberToSystem.php +++ b/app/Jobs/SendSberToSystem.php @@ -27,15 +27,14 @@ class SendSberToSystem implements ShouldQueue public function handle(): void { $orderItem = SberPaymentOrderItem::query() - ->where('paid', true) - ->where('synced_with_system', false) - ->whereDate('created_at', '>', '2025-09-05') - ->first(); - + ->where('paid', true) + ->where('synced_with_system', false) + ->whereDate('created_at', '>', '2025-09-05') + ->first(); + if (! $orderItem) { return; } - } } diff --git a/app/Modules/SberPaymentOrder/Nova/Resources/Concerns/NovaSberPaymentOrderAuth.php b/app/Modules/SberPaymentOrder/Nova/Resources/Concerns/NovaSberPaymentOrderAuth.php index a01f8af..3ed8885 100644 --- a/app/Modules/SberPaymentOrder/Nova/Resources/Concerns/NovaSberPaymentOrderAuth.php +++ b/app/Modules/SberPaymentOrder/Nova/Resources/Concerns/NovaSberPaymentOrderAuth.php @@ -81,7 +81,6 @@ trait NovaSberPaymentOrderAuth { $user = auth()->user(); - if ($user->isSystemUser()) { return; } diff --git a/app/Nova/Actions/Sber/SyncWithSystem.php b/app/Nova/Actions/Sber/SyncWithSystem.php index 3e6f3a8..635312b 100644 --- a/app/Nova/Actions/Sber/SyncWithSystem.php +++ b/app/Nova/Actions/Sber/SyncWithSystem.php @@ -34,61 +34,13 @@ class SyncWithSystem extends Action /** @var \App\Modules\SberPaymentOrder\Models\SberPaymentOrderItem $orderItem */ $orderItem = $models->first(); - $result = getSberCredentials($orderItem); + syncWithAzatAPI($orderItem); if (isset($result['error'])) { - $this->handleError($result); + return $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') - ); - - if ($systemRawResponse == null) { - return Action::modal('modal-response', [ - 'title' => 'SYSTEM API', - 'body' => 'Connection issue to SYSTEM', - ]); - } - - $systemResponse = json_decode($systemRawResponse); - - $success = false; - if (is_object($systemResponse)) { - $success = $systemResponse->errCode == 0; - } else { - $success = $systemResponse['errCode'] == 0; - } - - $orderItem->update([ - 'synced_with_system' => $success ? true : false, - ]); - - return Action::modal('modal-response', [ - 'title' => 'SYSTEM API', - 'html' => $success ? 'Success' : 'Fail', - ]); + return ActionResponse::message('Sync with system success'); } /**