(20241217) Payment callback ready for Safaricom M-Pesa Express.

This commit is contained in:
2024-12-17 13:27:15 +05:30
parent b6ba54abd4
commit 9de9542fda
12 changed files with 632 additions and 52 deletions
@@ -353,9 +353,11 @@ class SafaricomMPesaExpress:
# If the call failed:
if api_response.httpCode in [200]:
api_json = await api_response.get_json()
success = True if str(api_json.get("ResponseCode")) == "0" else False
api_response.message = api_json.get("ResponseDescription", "N/A")
api_response.data = api_json
api_response.success = True if str(api_json.get("ResponseCode")) == "0" else False
api_response.success = success
api_response.referenceId = str(api_json["CheckoutRequestID"])
# Done here:
return api_response
@@ -82,6 +82,7 @@ class MPesaExpressApiResponse(BaseModel):
success: bool = False
message: str = None
data: Any = None
referenceId: str = None
exception: Any = None
@@ -105,6 +106,7 @@ class MPesaExpressApiResponse(BaseModel):
message += f"*METHOD:*\n`{self.method}`\n\n"
message += f"*RESPONSE:*\n`{self.response}`\n\n"
message += f"*SUCCESS:*\n`{self.success}`\n\n"
message += f"*REFERENCE ID:*\n`{self.referenceId}`\n\n"
message += f"*MESSAGE:*\n`{self.message}`\n\n"
message += f"*EXCEPTION:*\n`{self.exception.__class__.__name__}: {str(self.exception)}`\n\n"
return message