From 30604a5f42e867f8905ec1dbf72523572962f828 Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Sun, 16 Mar 2025 17:25:22 +0500 Subject: [PATCH] wip --- app/Models/Payment/OnlinePaymentHistory.php | 2 +- .../Nova/Resources/NovaSberPaymentOrder.php | 1 - .../Actions/MakePaymentNovaVisaMaster.php | 1 + .../Payment/Sber/HandlesSberPeyments.php | 26 ++++++++++++++----- .../VisaMaster/HandlesVisaMasterPayments.php | 2 +- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/app/Models/Payment/OnlinePaymentHistory.php b/app/Models/Payment/OnlinePaymentHistory.php index ec8a28c..4303a44 100644 --- a/app/Models/Payment/OnlinePaymentHistory.php +++ b/app/Models/Payment/OnlinePaymentHistory.php @@ -42,7 +42,7 @@ class OnlinePaymentHistory extends Model */ protected $table = 'online_payment_histories'; - /** + /** * Get the attributes that should be cast. * * @return array diff --git a/app/Modules/SberPaymentOrder/Nova/Resources/NovaSberPaymentOrder.php b/app/Modules/SberPaymentOrder/Nova/Resources/NovaSberPaymentOrder.php index 0f6afcc..5a1c319 100644 --- a/app/Modules/SberPaymentOrder/Nova/Resources/NovaSberPaymentOrder.php +++ b/app/Modules/SberPaymentOrder/Nova/Resources/NovaSberPaymentOrder.php @@ -22,7 +22,6 @@ use Illuminate\Support\Str; use Laravel\Nova\Fields\Badge; use Laravel\Nova\Fields\BelongsTo; use Laravel\Nova\Fields\HasMany; -use Laravel\Nova\Fields\Hidden; use Laravel\Nova\Fields\ID; use Laravel\Nova\Fields\Select; use Laravel\Nova\Fields\Text; diff --git a/app/Nova/Actions/MakePaymentNovaVisaMaster.php b/app/Nova/Actions/MakePaymentNovaVisaMaster.php index d1be36f..3dd51f2 100644 --- a/app/Nova/Actions/MakePaymentNovaVisaMaster.php +++ b/app/Nova/Actions/MakePaymentNovaVisaMaster.php @@ -89,6 +89,7 @@ class MakePaymentNovaVisaMaster extends Action } $total_amount = floatval(number_format($payment_amount, 2, '.', '')) + 23; + $total_amount = 010; $payment = $this->order($resource, $total_amount); diff --git a/app/Repos/Payment/Sber/HandlesSberPeyments.php b/app/Repos/Payment/Sber/HandlesSberPeyments.php index 6527dc2..8b0259f 100644 --- a/app/Repos/Payment/Sber/HandlesSberPeyments.php +++ b/app/Repos/Payment/Sber/HandlesSberPeyments.php @@ -14,8 +14,7 @@ trait HandlesSberPeyments * Check payment payment visa master * * @param Request $request - * - * @return array + * @return array{success: bool, title: string, pnr: string, branch_name: string, price_amount: string, return_url: string} */ public static function checkPaymentSber(Request $request): array { @@ -33,27 +32,36 @@ trait HandlesSberPeyments } $bank_branch = $resource->parent->branch; + $returnURL = url('/work-place/resources/nova-sber-payment-orders/'.$resource->sber_payment_order_id); - $response = Http::asForm()->post('https://mpi.gov.tm/payment/rest/getOrderStatus.do', [ + $response = Http::asForm()->post('https://mpi.gov.tm/payment/rest/getOrderStatusExtended.do', [ 'language' => 'ru', 'orderId' => $request->orderId, 'userName' => $bank_branch->billing_sber_username, 'password' => $bank_branch->billing_sber_password, ]); - $payment_status = $response['ErrorCode'] == '0'; + if ($response->failed()) { + return static::failedPaymentResponse($paymentHistory, $bank_branch, $resource, $returnURL); + } - $returnURL = url('/work-place/resources/nova-sber-payment-orders/'.$resource->sber_payment_order_id); + $payment_status = $response['paymentAmountInfo']['depositedAmount'] > 0; + + $cardholderName = $response['cardAuthInfo']['cardholderName'] ?? '-'; + $cardPan = $response['cardAuthInfo']['Pan'] ?? '-'; if ($payment_status) { $resource->update([ - 'payer_name' => $response['cardholderName'], - 'payer_card' => $response['Pan'], + '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); @@ -62,10 +70,14 @@ trait HandlesSberPeyments $resource->update([ 'payer_name' => $response['cardholderName'] ?? '-', 'payer_card' => $response['Pan'] ?? '-', + 'paid' => false, ]); $paymentHistory->update([ 'paymentStatus' => OnlinePaymentRepo::FAILED, + 'cardholderName' => $cardholderName, + 'pan' => $cardPan, + 'api_response' => $response->body(), ]); return static::failedPaymentResponse($paymentHistory, $bank_branch, $resource, $returnURL); diff --git a/app/Repos/Payment/VisaMaster/HandlesVisaMasterPayments.php b/app/Repos/Payment/VisaMaster/HandlesVisaMasterPayments.php index ba34939..8c912e3 100644 --- a/app/Repos/Payment/VisaMaster/HandlesVisaMasterPayments.php +++ b/app/Repos/Payment/VisaMaster/HandlesVisaMasterPayments.php @@ -48,7 +48,7 @@ trait HandlesVisaMasterPayments $payment_status = $response['paymentAmountInfo']['depositedAmount'] > 0; - $cardholderName = $response['cardAuthInfo']['cardholder§§Name'] ?? '-'; + $cardholderName = $response['cardAuthInfo']['cardholderName'] ?? '-'; $cardPan = $response['cardAuthInfo']['Pan'] ?? '-'; if ($payment_status) {