This commit is contained in:
2025-09-10 16:44:46 +05:00
parent a1521ace7a
commit a622f7651a
4 changed files with 67 additions and 58 deletions

View File

@@ -520,3 +520,62 @@ function getSberCredentials(SberPaymentOrderItem $item): array
'relatedResource' => $relatedResource, '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',
];
}

View File

@@ -27,15 +27,14 @@ class SendSberToSystem implements ShouldQueue
public function handle(): void public function handle(): void
{ {
$orderItem = SberPaymentOrderItem::query() $orderItem = SberPaymentOrderItem::query()
->where('paid', true) ->where('paid', true)
->where('synced_with_system', false) ->where('synced_with_system', false)
->whereDate('created_at', '>', '2025-09-05') ->whereDate('created_at', '>', '2025-09-05')
->first(); ->first();
if (! $orderItem) { if (! $orderItem) {
return; return;
} }
} }
} }

View File

@@ -81,7 +81,6 @@ trait NovaSberPaymentOrderAuth
{ {
$user = auth()->user(); $user = auth()->user();
if ($user->isSystemUser()) { if ($user->isSystemUser()) {
return; return;
} }

View File

@@ -34,61 +34,13 @@ class SyncWithSystem extends Action
/** @var \App\Modules\SberPaymentOrder\Models\SberPaymentOrderItem $orderItem */ /** @var \App\Modules\SberPaymentOrder\Models\SberPaymentOrderItem $orderItem */
$orderItem = $models->first(); $orderItem = $models->first();
$result = getSberCredentials($orderItem); syncWithAzatAPI($orderItem);
if (isset($result['error'])) { if (isset($result['error'])) {
$this->handleError($result); return $this->handleError($result);
} }
/** @var \App\Models\Payment\OnlinePaymentHistory $onlinePaymentResource */ return ActionResponse::message('Sync with system success');
$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',
]);
} }
/** /**