From 457df41c9c2827fd4844552d96f4de93cb87669c Mon Sep 17 00:00:00 2001 From: Djery-Tom Date: Mon, 3 Jul 2023 09:06:53 +0100 Subject: [PATCH] feat(cinetpay payout): convert incoming status to internal status --- app/Http/Controllers/CinetpayController.php | 26 +++++++++++++-------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/CinetpayController.php b/app/Http/Controllers/CinetpayController.php index fd073b3..c70c727 100644 --- a/app/Http/Controllers/CinetpayController.php +++ b/app/Http/Controllers/CinetpayController.php @@ -302,14 +302,11 @@ class CinetpayController extends Controller $responseData = json_decode($transfertResponse->getBody()->getContents()); $responseCode = $transfertResponse->getStatusCode(); - Log::info("Pay out cinietpay"); - Log::info(json_encode($responseData)); - if ($responseCode == 200) { $transaction->update([ - 'aggregator_payment_ref' => $responseData->data[0]?->transaction_id, - 'status' => $responseData->data[0]?->treatment_status, + 'aggregator_payment_ref' => $responseData->data[0][0]?->transaction_id, + 'status' => $this->convertTransfertStatus($responseData->data[0][0]?->treatment_status) , ]); return $this->successResponse([ @@ -326,6 +323,7 @@ class CinetpayController extends Controller }catch (Throwable $e){ Log::error("Error CinetPay transfert payment"); $errorMessage = $e->getMessage(); + Log::error("Response data :: ".json_encode($responseData ?? '')); Log::error($errorMessage); } @@ -370,15 +368,11 @@ class CinetpayController extends Controller $responseData = json_decode($response->getBody()->getContents()); $responseCode = $response->getStatusCode(); - - Log::info("Pay out check result"); - Log::info(json_encode($responseData)); - if ($responseCode == 200) { $transaction->update([ 'aggregator_payment_ref' => $responseData->data[0]?->transaction_id, - 'status' => $responseData->data[0]?->treatment_status, + 'status' => $this->convertTransfertStatus($responseData->data[0]?->treatment_status), ]); } @@ -387,6 +381,7 @@ class CinetpayController extends Controller } catch (Throwable $e) { Log::info("Get Cinetpay Transfert Status Error"); $errorMessage = $e->getMessage(); + Log::error("Response data :: ".json_encode($responseData ?? '')); Log::info($errorMessage); $transaction->update([ 'status' => PaymentTransactionStatus::REFUSED @@ -399,6 +394,17 @@ class CinetpayController extends Controller } } + private function convertTransfertStatus($incomingStatus): string { + return match ($incomingStatus) { + 'NEW', 'REC' => PaymentTransactionStatus::PENDING, + 'VAL' => PaymentTransactionStatus::ACCEPTED, + 'REJ' => PaymentTransactionStatus::REFUSED, + 'NOS' => PaymentTransactionStatus::PENDING_OTP, + default => PaymentTransactionStatus::INITIATED, + }; + + } + public function capturePaymentResult(Request $request) {