changed webhook
This commit is contained in:
@@ -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),
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user