Не могу настроить сервер Cherrypy python для приема уведомлений от юmoney
Хотел написать для себя телеграм бота, который оповещает об успешном переводе на мой кошелёк юmoney.
Бот сформирован, все хорошо работает, вебхук исправен и отзывается. Но вот в чём проблема: при получении POST запроса от юmoney я получаю 415 или 500 ошибку HTTP, я новичок, использовав возможности всемогущего Google я понял что вся проблема в том что я не смог правильно настроить сервер cherrypy на прием application/x-www-form-urlencoded по этому прошу помощи, т.к. ни в официальной литературе ни в поиске Google ничего не нашёл для решения своей проблемы.
Описание запроса от юmoney:
метод — POST;
каждый параметр уведомления указывается парой ключ/значение в виде параметра POST-запроса;
MIME-тип — application/x-www-form-urlencoded;
кодировка символов — UTF‑8.
Буду благодарен за помощь. В коде присуцтвуют:
cherrypy.response.headers['Content-Type'] = 'application/x-www-form-urlencoded'
Функция для обработки входящего запроса:
@cherrypy.expose
@cherrypy.config(**{'tools.cors.on': True,
'tools.decode.on': True,
'tools.decode.default_encoding': ['utf-8'],
})
@cherrypy.tools.json_in()
def test(self):
tempData = self.data
print(tempData)
return ''
В таком случае ответ:
HTTP Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/cherrypy/_cprequest.py", line 638, in respond
self._do_respond(path_info)
File "/usr/local/lib/python3.6/dist-packages/cherrypy/_cprequest.py", line 674, in _do_respond
self.namespaces(self.config)
File "/usr/local/lib/python3.6/dist-packages/cherrypy/lib/reprconf.py", line 89, in __call__
exit(None, None, None)
File "/usr/local/lib/python3.6/dist-packages/cherrypy/_cptools.py", line 453, in __exit__
tool = getattr(self, name)
AttributeError: 'Toolbox' object has no attribute 'cors'
[28/Feb/2021:12:45:12] HTTP
Request Headers:
Remote-Addr: 77.75.153.75
HOST: мой.хост
ACCEPT: */*
USER-AGENT: AHC/2.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 262
77.75.153.75 - - [28/Feb/2021:12:45:12] "POST /1653147044:AAGIOIThReiNVimGU5aUvObD96lC-OH3RCM/test HTTP/1.1" 500 1416 "" "AHC/2.1"
Ответ от моего сервера если убрать 'tools.cors.on': True,:
"POST my.adress HTTP/1.1" 415 1544 "" "AHC/2.1"