WhiteApfel / pyQiwiP2P

Simple wrapper for comfortable work with the API of payment system for individuals QiwiP2P
Mozilla Public License 2.0
54 stars 12 forks source link

KeyError: 'email' #35

Closed json1c closed 2 years ago

json1c commented 2 years ago

Код: bill = await p2p.check(bill_id=bill_id)

Traceback:

  File "/home/the_best_bot_in_the_world_yes/bot/handlers/payments.py", line 156, in check_invoice
    bill = await p2p.check(bill_id=bill_id)
  File "/usr/local/lib/python3.10/dist-packages/pyqiwip2p/AioQiwip2p.py", line 259, in check
    qiwi_response = Bill(qiwi_raw_response, self.alt)
  File "/usr/local/lib/python3.10/dist-packages/pyqiwip2p/p2p_types/responses.py", line 87, in __init__
    QiwiCustomer(json_data=self.r_json["customer"])
  File "/usr/local/lib/python3.10/dist-packages/pyqiwip2p/p2p_types/customer.py", line 50, in __init__
    self.email = json_data["email"]
KeyError: 'email'

В чём заключается суть проблемы и как её воспроизвести:

Создаём счёт через метод AioQiwiP2P.bill, оплачиваем, и вызываем метод AioQiwiP2P.check, естественно с bill_id, которое вернул нам первый метод. После чего ловим такую ошибку. При неоплаченном счёте никаких ошибок нет, но если он оплачен, то собственно видим то, что я описал. Похоже, киви что-то изменил в своём API, нужно обновить библиотеку под это.

json1c commented 2 years ago

Ошибка, кстати, вылезает только при оплате с кошелька Qiwi. Если оплачивать с карты, то её не будет.

WhiteApfel commented 2 years ago

Надо заменить на json_data.get("field_name", None) все три строчки в файле, из которого вызывается ошибка. Кидай pr

json1c commented 2 years ago

кинул PR.

json_data.get("field_name", None)

None необязательно указывать, потому что он является optional, то есть даже если его не передать, будет None

WhiteApfel commented 2 years ago

Исправлено в версии 2.0.3

qu0ta commented 2 years ago

Подскажите, как решить проблему? Не понимаю(

WhiteApfel commented 2 years ago

@qu0ta, ну даже не знаю, может, обновить пакет, раз написано, что проблема исправлена в такой-то версии?