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

возникает ошибка UnicodeEncodeError #32

Open prtolem opened 2 years ago

prtolem commented 2 years ago

когда на дедике запускаю бота то при создании счета возникает ошибка UnicodeEncodeError: 'charmap' codec can't encode characters in position 83-90: character maps to <undefined>

полный трейсбек

ERROR:asyncio:Task exception was never retrieved
future: <Task finished name='Task-27' coro=<Dispatcher._process_polling_updates() done, defined at C:\Users\admin\AppData\Roaming\Python\Python39\site-packages\aiogram\dispatcher\dispatcher.py:407> exception=UnicodeEncodeError('charmap', '{"serviceName":"payin-invoicing-api","errorCode":"validation.error","description":"Неверные параметры, измените запрос согласно документации API; Cause: unknown","userMessage":"Неверные параметры, измените запрос согласно документации API; Cause: unknown","dateTime":"2022-07-18T23:37:44.061+03:00","traceId":"1ef2ed275a8597e1","cause":{"expirationDateTime":["должно содержать дату, которая еще не наступила"]}}\r\n', 83, 91, 'character maps to <undefined>')>
Traceback (most recent call last):
  File "C:\Users\admin\AppData\Roaming\Python\Python39\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates
    for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
  File "C:\Users\admin\AppData\Roaming\Python\Python39\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates
    return await asyncio.gather(*tasks)
  File "C:\Users\admin\AppData\Roaming\Python\Python39\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "C:\Users\admin\AppData\Roaming\Python\Python39\site-packages\aiogram\dispatcher\dispatcher.py", line 283, in process_update
    return await self.callback_query_handlers.notify(update.callback_query)
  File "C:\Users\admin\AppData\Roaming\Python\Python39\site-packages\aiogram\dispatcher\handler.py", line 116, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "C:\Users\admin\Desktop\bot\main.py", line 252, in gen_payment
    bill = p2p.bill(amount=amount, comment='Пополнение баланса')
  File "C:\Users\admin\AppData\Roaming\Python\Python39\site-packages\pyqiwip2p\Qiwip2p.py", line 225, in bill
    qiwi_response = Bill(qiwi_raw_response, self.alt)
  File "C:\Users\admin\AppData\Roaming\Python\Python39\site-packages\pyqiwip2p\p2p_types\responses.py", line 73, in __init__
    Reporter(response).save(fn)
  File "C:\Users\admin\AppData\Roaming\Python\Python39\site-packages\response_report\reporter.py", line 79, in save
    rf.writelines(self.lines)
  File "C:\Program Files\Python39\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 83-90: character maps to <undefined>

сделал все согласно документации, ничего не менял кроме комментария

prtolem commented 2 years ago

почитал что написано сверху и пришел к выводу что либа что то путает с датой окончания жизни счета но потом зашел в файл QiwiCrash и увидел что время то он ставит верно image и как теперь жить

ring0jke commented 2 years ago

Столкнулся с той же проблемой, думал я где накосячил, а оказалось нет. Помогиииииитееееее ;(

WhiteApfel commented 2 years ago

Юзайте utf-8 для .py файлов

WhiteApfel commented 2 years ago

пишут на винде, а потом удивляются, что что-то не работает

ring0jke commented 2 years ago

Эт да. А вообще @prtolem в моем случае проблема была в другом, я использовал не тот ключ API. Нужен именно приватный ключ полученный на: p2p.qiwi.com Я же использовал ключ который выдается на главном сайте киви. (qiwi.com) Сразу все заработало.

WhiteApfel commented 2 years ago

@ring0jke, а разве валидатор не поругался на неправильный ключ?

ring0jke commented 2 years ago

@WhiteApfel он поругался именно на кодировку,что не смог декодировать ключ. Ключ был такой примерно : 6fcsda112c499fyt231a8653ddbf15z

prtolem commented 2 years ago

Эт да. А вообще @prtolem в моем случае проблема была в другом, я использовал не тот ключ API. Нужен именно приватный ключ полученный на: p2p.qiwi.com Я же использовал ключ который выдается на главном сайте киви. (qiwi.com) Сразу все заработало.

нет, токен взял с сайта p2p.qiwi.com проблему с данной библиотекой вроде не решил, но библиотека glQiwiApi не выдавала такую ошибку так что использовал ее

Artem468 commented 2 years ago

Столкнулся с такой же проблемой, в чем все таки может быть причина?

WhiteApfel commented 2 years ago

@Artem468 , предполагаю, что причина в windows, ибо я не могу воспроизвести в линуксе. Файл с кивикрашем что содержит?

Artem468 commented 2 years ago

@WhiteApfel Я тоже решил что причина в винде ведь на основном пк все работает, а на дедике нет, в кивикраш содержится хедерсы и параметры запроса и хедерсы ответа самого ответа нет

#################################################### ###################### STEP 1 ###################### ####################################################

R-URL: https://api.qiwi.com/partner/bill/v1/bills/WhiteApfel-PyQiwiP2P-34839724-154 URL: https://api.qiwi.com/partner/bill/v1/bills/WhiteApfel-PyQiwiP2P-34839724-154 Code: 400 Bad Request Method: PUT

##################### REQUEST ###################### Headers:

Host: api.qiwi.com Accept-Encoding: gzip, deflate Connection: keep-alive User-Agent: python-httpx/0.23.0 Accept: application/json Content-Type: application/json Authorization: Bearer ТУТ БЫЛ КЛЮЧ Content-Length: 156

########### CONTENT ############ { "amount": { "currency": "RUB", "value": "1.00" }, "comment": "refill", "customFields": {}, "customer": {}, "expirationDateTime": "2022-08-01T13:21:37+03:00" } ######### END CONTENT ##########

##################### RESPONSE #####################

Headers:

Server: nginx Date: Mon, 01 Aug 2022 13:06:38 GMT Content-Type: application/json Content-Length: 353 Connection: keep-alive Cache-Control: no-cache, no-store X-B3-SpanId: a35741e9e17677 X-B3-SpanId: 1f8789a7de9136f2 X-Edge-Proxied-Response: true Expires: Thu, 01 Jan 1970 00:00:00 GMT X-B3-ParentSpanId: 194a35a06a72dfca X-B3-TraceId: efb87256b69f4876 content-encoding: gzip Strict-Transport-Security: max-age=31536000 X-Content-Type-Options: nosniff

########### CONTENT ############

WhiteApfel commented 2 years ago

Кажется, что приходит одна кодировка, а он пытается записать в другую. Ничего не понятно и не особо интересно\

Artem468 commented 2 years ago

@WhiteApfel а как это можно исправить?

prtolem commented 2 years ago

думаю это может быть связано с тем то что время на пк или дедике не верно указано. У кого возникает данная проблема, попробуйте изменить время на московское, должно помочь