Ошибка: JSONDecodeError Expecting value: line 1 column 1 (char 0)

Domohod45

Новичок
Пользователь
Дек 7, 2021
68
3
8
Получаю ошибку при подключении Webhook-уведомлений.

Python:
def pay(request): 
  .  .  .
    event_jason = json.loads(request.body)
    try:
        # Создание объекта класса уведомлений в зависимости от события
        notification_object = WebhookNotificationFactory().create(event_jason)
        response_object = notification_object.object
        if notification_object.event == WebhookNotificationEventType.PAYMENT_SUCCEEDED:
            some_data = {
                'paymentId': response_object.id,
                'paymentStatus': response_object.status,
            }

        else:
            # Обработка ошибок
            return HttpResponse(status=400)  # Сообщаем кассе об ошибке

        # Специфичная логика
        # ...
        Configuration.configure_auth_token('123')
        # Получим актуальную информацию о платеже
        payment_info = Payment.find_one(some_data['paymentId'])
        if payment_info:
            payment_status = payment_info.status
            return render(request, 'registration/random.html')
        else:
            # Обработка ошибок
            return HttpResponse(status=400)  # Сообщаем кассе об ошибке

    except Exception:
        # Обработка ошибок
        return HttpResponse(status=400)

Если платеж успешен, то должна выводиться определенная страница. Однако происходит ошибка на моменте в event_jason = json.loads(request.body). Почему?
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
932
208
43
20
Москва
1) Если используешь requests, попробуй заменить request.body на request.json
2) выведи в терминал requests.body, возможно там вообще не json
 
  • Мне нравится
Реакции: Domohod45

Domohod45

Новичок
Пользователь
Дек 7, 2021
68
3
8
Попробовал.
1) Если используешь requests, попробуй заменить request.body на request.json
'WSGIRequest' object has no attribute 'json'
2) выведи в терминал requests.body, возможно там вообще не json
Похоже, что так:
Код:
bbe1e22a-f90d-44fc-8c72-80af310677e1
b''
Что же тогда делать?
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
932
208
43
20
Москва
Не могу сказать, я как-то django не пользовался... Из того что я почитал, я так понял, что ваша функция вызывается, когда на страницу делается запрос, и объект 'WSGIRequest' содержит параметры этого запроса. Чтобы получить эти параметры надо использовать request.POST и request.GET, можно попробовать вывести их в терминал, вдруг это то, что надо
Брал отсюда: https://russianblogs.com/article/27791167630/
 

Domohod45

Новичок
Пользователь
Дек 7, 2021
68
3
8
Чтобы получить эти параметры надо использовать request.POST и request.GET, можно попробовать вывести их в терминал
Брал отсюда: https://russianblogs.com/article/27791167630/
Они оба возвращают <QueryDict: {}>
Это значит, что никакие данные не отправляются?
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
932
208
43
20
Москва
Они оба возвращают <QueryDict: {}>
Это значит, что никакие данные не отправляются?
Думаю да, попробуй сделать запрос отправив данные
 

Форум IT Специалистов