From 7aea7e027004919755ca4a3e15d4f7f5fa1893f3 Mon Sep 17 00:00:00 2001 From: khushal Date: Tue, 25 Feb 2025 17:53:33 +0530 Subject: [PATCH] (20250225) --- api/blueprints/finstitutions/payments/request_v2.py | 3 ++- .../finstitutions/payments/safaricom_mpesa_express.py | 1 + models/api/finstitutions/payments/request.py | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/api/blueprints/finstitutions/payments/request_v2.py b/api/blueprints/finstitutions/payments/request_v2.py index c9981eb..d9c5517 100644 --- a/api/blueprints/finstitutions/payments/request_v2.py +++ b/api/blueprints/finstitutions/payments/request_v2.py @@ -206,7 +206,8 @@ async def request_payment( return ResponseModel( status_code = StatusCodes.OK if response.success else StatusCodes.FAILED, http_code = HttpCodes.SUCCESS if response.success else HttpCodes.INTERNAL_SERVER_ERROR, - message = response.message + message = response.message, + data = {"paymentId": str(response.paymentId)} ) diff --git a/controllers_v2/finstitutions/payments/safaricom_mpesa_express.py b/controllers_v2/finstitutions/payments/safaricom_mpesa_express.py index d956209..5a60c90 100644 --- a/controllers_v2/finstitutions/payments/safaricom_mpesa_express.py +++ b/controllers_v2/finstitutions/payments/safaricom_mpesa_express.py @@ -198,6 +198,7 @@ class SafaricomMPesaExpressPaymentsController(PaymentsController): payment_request = payment_request, tags = ["Payment", "Safaricom", "M-Pesa Express", "Kenya"] ) + result.paymentId = payment_id # Initialize the third-party client: client_auth = MPesaExpressAuthorization( diff --git a/models/api/finstitutions/payments/request.py b/models/api/finstitutions/payments/request.py index 83d0ec0..4dbc051 100644 --- a/models/api/finstitutions/payments/request.py +++ b/models/api/finstitutions/payments/request.py @@ -263,6 +263,11 @@ class PGPaymentRequestData(BaseModel): class PaymentRequestOneResult(BaseModel): + paymentId: ObjectId | None = Field( + description = "the id of this payment's record", + default = None + ) + success: bool = Field( description = "whether, or not, the payment was successfully requested", default = False @@ -280,6 +285,7 @@ class PaymentRequestOneResult(BaseModel): class Config: extra = "forbid" + arbitrary_types_allowed = True # ---------------------------------------------------------------------------------------------------------------------