changed webhook

This commit is contained in:
rizwanisready
2024-04-24 15:54:05 +05:30
parent cbc02cf2cc
commit dca5ed5f7e

View File

@@ -177,20 +177,21 @@ class StripeWebhookTest(APIView):
event = stripe.Event.construct_from(json.loads(payload), stripe.api_key)
event_id = event["id"]
event_type = event["type"]
# Check if the event has been processed already
if WebhookEvent.objects.filter(event_id=event_id, status="processed").exists():
webhook_event, created = WebhookEvent.objects.get_or_create(
event_id=event_id,
defaults={
"event_type": event_type,
"event_payload": json.loads(payload),
},
)
if not created and webhook_event.status == "processed":
return ApiResponse.success(
status=status.HTTP_208_ALREADY_REPORTED,
message="Event already processed",
)
# Log event processing
WebhookEvent.objects.create(
event_id=event_id,
event_type=event_type,
event_payload=json.loads(payload), # optional
)
payment_service = services.PaymentProcessingService(webhook_data=event)
payment_service.process_event()
webhook_event = WebhookEvent.objects.get(event_id=event_id)
@@ -226,12 +227,12 @@ class StripeWebhookTest(APIView):
event_id=event_id,
status="failed",
error_message=str(e),
event_payload=json.loads(payload) # Optionally store payload for audit
event_payload=json.loads(payload), # Optionally store payload for audit
)
return ApiResponse.error(
status=status.HTTP_500_INTERNAL_SERVER_ERROR,
message="Error processing event",
errors=str(e)
errors=str(e),
)