From 0e970d7e235a3c83469e71c387f5b00ea9af76f2 Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Sun, 28 Jan 2024 20:11:32 +0500 Subject: [PATCH] wip --- .../Controllers/OnlinePaymentController.php | 3 +- app/Nova/Resources/Branch/Branch.php | 1 - app/Nova/Resources/Order/Card/CardOrder.php | 20 ++------ app/Repos/Payment/OnlinePaymentRepo.php | 51 +++++++++---------- 4 files changed, 29 insertions(+), 46 deletions(-) diff --git a/app/Http/Controllers/OnlinePaymentController.php b/app/Http/Controllers/OnlinePaymentController.php index b71d64e..d3e3246 100644 --- a/app/Http/Controllers/OnlinePaymentController.php +++ b/app/Http/Controllers/OnlinePaymentController.php @@ -8,7 +8,8 @@ class OnlinePaymentController extends Controller { /** * Online pa - * @param Request $request [description] + * + * @param Request $request [description] */ public function store(Request $request) { diff --git a/app/Nova/Resources/Branch/Branch.php b/app/Nova/Resources/Branch/Branch.php index 4fc02e7..a9f5a47 100644 --- a/app/Nova/Resources/Branch/Branch.php +++ b/app/Nova/Resources/Branch/Branch.php @@ -9,7 +9,6 @@ use App\Repos\System\Nova\NovaRepo; use App\Repos\System\Settings\Location\RegionRepo; use Illuminate\Http\Request; use Laravel\Nova\Fields\ID; -use Laravel\Nova\Fields\Password; use Laravel\Nova\Fields\Select; use Laravel\Nova\Fields\Text; use Laravel\Nova\Fields\Textarea; diff --git a/app/Nova/Resources/Order/Card/CardOrder.php b/app/Nova/Resources/Order/Card/CardOrder.php index d5e0dd6..3bdb9f2 100644 --- a/app/Nova/Resources/Order/Card/CardOrder.php +++ b/app/Nova/Resources/Order/Card/CardOrder.php @@ -129,33 +129,19 @@ class CardOrder extends Resource /** * After resource created - * @param Laravel\Nova\Http\Requests\NovaRequest $request - * @param Illuminate\Database\Eloquent\Model $model + * + * @param Laravel\Nova\Http\Requests\NovaRequest $request + * @param Illuminate\Database\Eloquent\Model $model */ public static function afterCreate(NovaRequest $request, Model $model): void { CardOrderRepo::created()($model); } - /** - * Return the location to redirect the user after creation. - * - * @param \Laravel\Nova\Resource $resource - */ - public static function redirectAfterCreate(NovaRequest $request, $resource): URL|string - { - $payment = (new OnlinePaymentRepo())->payCardOrder($resource); - - return $payment['status'] === 'success' - ? URL::remote($payment['url']) - : sprintf('resources/%s/%s', static::uriKey(), $resource->getKey()); - } - /** * Return the location to redirect the user after update. * * @param \Laravel\Nova\Resource $resource - * @return \Laravel\Nova\URL|string */ public static function redirectAfterUpdate(NovaRequest $request, $resource): URL|string { diff --git a/app/Repos/Payment/OnlinePaymentRepo.php b/app/Repos/Payment/OnlinePaymentRepo.php index 1fbd0fe..868dc6b 100644 --- a/app/Repos/Payment/OnlinePaymentRepo.php +++ b/app/Repos/Payment/OnlinePaymentRepo.php @@ -13,39 +13,36 @@ class OnlinePaymentRepo { /** * Pay card order + * * @param [type] $resource */ public function payCardOrder($resource): array { $orderNumber = $this->generateOrderNumber($resource); - try { - $paymentResponse = Http::get('https://mpi.gov.tm/payment/rest/register.do', [ - 'orderNumber' => $orderNumber, - 'amount' => "00" . $resource->priceAmount(), - 'currency' => 934, - 'language' => 'ru', - 'userName' => $resource->branch->billing_username, - 'password' => $resource->branch->billing_password, - 'returnUrl' => urlencode(route('online-payment-store')), - 'pageView' => 'DESKTOP', - 'description' => urlencode('Kart tölegi'), - ]); - } catch(Exception $exception) { - Log::channel('halkbank_payment_error')->error('Payment error', [ - 'response' => [ - 'body' => $paymentResponse->body(), - ], - 'exception' => [ - 'file' => $exception->getFile(), - 'line' => $exception->getLine(), - 'message' => $exception->getMessage(), - ] - ]); + $paymentResponse = Http::get('https://mpi.gov.tm/payment/rest/register.do', [ + 'orderNumber' => $orderNumber, + 'amount' => '00'.$resource->priceAmount(), + 'currency' => 934, + 'language' => 'ru', + 'userName' => $resource->branch->billing_username, + 'password' => $resource->branch->billing_password, + 'returnUrl' => urlencode(route('online-payment-store')), + 'pageView' => 'DESKTOP', + 'description' => urlencode('Kart tölegi'), + ])->onError(function ($response) { + Log::channel('halkbank_payment_error') + ->error('Payment error', [ + 'response' => [ + 'body' => $response->body(), + ], + ]); + }); + if ($paymentResponse->failed()) { return [ - 'status' => 'success', - 'url' => '' + 'status' => 'failed', + 'url' => '', ]; } @@ -61,12 +58,12 @@ class OnlinePaymentRepo 'errorUrl' => route('online-payment-store'), 'api_client' => config('app.url'), 'username' => $resource->branch->billing_username, - 'paymentStatus' => OrderRepo::PENDING + 'paymentStatus' => OrderRepo::PENDING, ]); return [ 'status' => 'success', - 'url' => $paymentResponse['formUrl'] + 'url' => $paymentResponse['formUrl'], ]; }