@@ -56,8 +56,9 @@ def post(self, request):
5656
5757# DRF view to verify transaction (optional if using webhook)
5858class PaystackVerifyAPIView (APIView ):
59- def get (self , request ):
60- reference = request .query_params .get ('reference' )
59+ def get (self , request , reference ):
60+ # reference = request.query_params.get('reference')
61+ # reference = reference
6162
6263 if not reference :
6364 return Response ({"error" : "No transaction reference provided." }, status = status .HTTP_400_BAD_REQUEST )
@@ -68,6 +69,7 @@ def get(self, request):
6869 }
6970 response = requests .get (url , headers = headers )
7071 result = response .json ()
72+ print (result )
7173
7274 if result .get ("status" ) and result ["data" ]["status" ] == "success" :
7375 # Here you would normally mark order/transaction as paid in your DB
@@ -77,6 +79,14 @@ def get(self, request):
7779 "amount" : result ["data" ]["amount" ] / 100 , # convert back to NGN
7880 "email" : result ["data" ]["customer" ]["email" ]
7981 }, status = status .HTTP_200_OK )
82+ elif result .get ("status" ) and result ["data" ]["status" ] == "abandoned" :
83+ # Here you would normally mark order/transaction as paid in your DB
84+ return Response ({
85+ "status" : "abandoned" ,
86+ "reference" : result ["data" ]["reference" ],
87+ "amount" : result ["data" ]["amount" ] / 100 , # convert back to NGN
88+ "email" : result ["data" ]["customer" ]["email" ]
89+ }, status = status .HTTP_200_OK )
8090 else :
8191 return Response ({
8292 "status" : "failed" ,
0 commit comments