@@ -69,19 +69,33 @@ def _handleChargeResponse(self, response, txRef, request=None, isMpesa=False):
69
69
res = self ._preliminaryResponseChecks (response , TransactionChargeError , txRef = txRef )
70
70
71
71
responseJson = res ["json" ]
72
- flwRef = responseJson ["data" ]["flwRef" ]
73
72
74
73
if isMpesa :
75
- return {"error" : False , "status" : responseJson ["status" ], "validationRequired" : True , "txRef" : txRef , "flwRef" : flwRef , "narration" : responseJson ["data" ]["narration" ]}
74
+ return {
75
+ "error" : False ,
76
+ "status" : responseJson ["status" ],
77
+ "validationRequired" : True ,
78
+ "txRef" : txRef ,
79
+ "flwRef" : responseJson ["data" ]["flwRef" ],
80
+ "narration" : responseJson ["data" ]["narration" ]
81
+ }
76
82
else :
77
83
# if all preliminary tests pass
78
84
if not (responseJson ["data" ].get ("chargeResponseCode" , None ) == "00" ):
79
- if responseJson ["data" ].get ("currency" , 'None' ) == 'UGX' :
80
- return {"error" : False , "status" : responseJson ["status" ], "validationRequired" : True , "txRef" : txRef , "flwRef" : flwRef , "chargeResponseMessage" : responseJson ["data" ]["chargeResponseMessage" ]}
81
-
82
- return {"error" : False , "status" : responseJson ["status" ],"validationRequired" : True , "txRef" : txRef , "flwRef" : flwRef , "chargeResponseMessage" : responseJson ["data" ]["chargeResponseMessage" ]}
85
+ if responseJson .get ("message" , 'None' ) == 'Momo initiated' :
86
+ return {
87
+ "error" : False ,
88
+ "status" : responseJson ["status" ],
89
+ "message" : responseJson ["message" ],
90
+ "code" : responseJson ["data" ]["code" ],
91
+ "transaction status" : responseJson ["data" ]["status" ],
92
+ "ts" : responseJson ["data" ]["ts" ],
93
+ "link" : responseJson ["data" ]["link" ]
94
+ }
95
+
96
+ return {"error" : False , "status" : responseJson ["status" ],"validationRequired" : True , "txRef" : txRef , "flwRef" : responseJson ["data" ]["flwRef" ], "chargeResponseMessage" : responseJson ["data" ]["chargeResponseMessage" ]}
83
97
else :
84
- return {"error" : True , "validationRequired" : False , "txRef" : txRef , "flwRef" : flwRef }
98
+ return {"error" : True , "validationRequired" : False , "txRef" : txRef , "flwRef" : responseJson [ "data" ][ " flwRef" ] }
85
99
86
100
def _handleCaptureResponse (self , response , request = None ):
87
101
""" This handles transaction charge responses """
0 commit comments