Stripe dashbaord показывает 400, хотя stripe listen cli возвращает 200

<<<Как вы можете видеть на скриншотах ниже, мой клиент говорит, что все в порядке и возвращает 200 обратно на stripe, но в моем дашборде я получаю статус 400. Это для приложения django. Имеет ли вообще значение ответ на приборной панели, если его принимает cli? Мы создали четный

@method_decorator(csrf_exempt, name='dispatch')
class StripeWebhook(APIView):
    def post(self, request, *args, **kwargs):
        return HttpResponse({status: "success"},status=200)
        #all the code below is our normal logic. we are just trying to do a sanity test
        #to see if the dashboard picks up the 200
        print('received payment. in webhook')
        stripe.api_key = settings.STRIPE_TEST_SECRET
        event = None
        payload = request.body        
        sig_header = request.META["HTTP_STRIPE_SIGNATURE"]
        try:
            event = stripe.Webhook.construct_event(
                payload, sig_header, 'settings.WEBHOOK_SECRET'
            )
        except ValueError as e: 
            print("aaa")
            print(e)
            return HttpResponse(status=400)
        except stripe.error.SignatureVerificationError as e:
            print('bbb')
            print(e)
            return HttpResponse(status=400)
        
        
        if event['type'] == 'checkout.session.completed':
            print('payment success')
        elif event['type'] == 'payment_intent.payment_failed':
            # Handle failed payment intent event
            print('payment failed')
            return HttpResponse('something went wrong', status=400)
        return HttpResponse({'status': 'success'})


(https://i.sstatic.net/BUgJsnzu.png) #stipe cli logs

(https://i.sstatic.net/itoTZ4bj.png) #stipe dashboard

мы попробовали сразу вернуть статус 200 на stripe.

Вы всегда должны возвращать Stripe значение 200 при успешном получении веб-хука. Это означает, что HTTP-запрос был получен, а не то, что произошла ошибка при разборе самого вебхука. Любые ошибки, которые вам нужно обработать, должны быть обработаны в обработчике вебхука после того, как вы вернете 200.

Вернуться на верх