antidasoftware / cloudpayments-python-client Goto Github PK
View Code? Open in Web Editor NEWCloudPayments Python Client Library
License: MIT License
CloudPayments Python Client Library
License: MIT License
Мне надо использовать метод topup
для выплаты по токену, однако метод _send_request
выкидывает исключение при попытке декодировать response
Ниже приведена ошибка
web_1 | Traceback (most recent call last):
web_1 | File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
web_1 | response = get_response(request)
web_1 | File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
web_1 | response = self.process_exception_by_middleware(e, request)
web_1 | File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
web_1 | response = wrapped_callback(request, *callback_args, **callback_kwargs)
web_1 | File "/usr/local/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
web_1 | return view_func(*args, **kwargs)
web_1 | File "/usr/local/lib/python3.8/site-packages/rest_framework/viewsets.py", line 114, in view
web_1 | return self.dispatch(request, *args, **kwargs)
web_1 | File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 505, in dispatch
web_1 | response = self.handle_exception(exc)
web_1 | File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 465, in handle_exception
web_1 | self.raise_uncaught_exception(exc)
web_1 | File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 476, in raise_uncaught_exception
web_1 | raise exc
web_1 | File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 502, in dispatch
web_1 | response = handler(request, *args, **kwargs)
web_1 | File "/code/apps/payment/api/viewsets.py", line 103, in pay_user
web_1 | transaction = self.client.topup(token=token,
web_1 | File "/usr/local/lib/python3.8/site-packages/cloudpayments/client.py", line 167, in topup
web_1 | response = self._send_request('payments/cards/topup', params)
web_1 | File "/usr/local/lib/python3.8/site-packages/cloudpayments/client.py", line 22, in _send_request
web_1 | return response.json(parse_float=decimal.Decimal)
web_1 | File "/usr/local/lib/python3.8/site-packages/requests/models.py", line 898, in json
web_1 | return complexjson.loads(self.text, **kwargs)
web_1 | File "/usr/local/lib/python3.8/site-packages/simplejson/__init__.py", line 542, in loads
web_1 | return cls(encoding=encoding, **kw).decode(s)
web_1 | File "/usr/local/lib/python3.8/site-packages/simplejson/decoder.py", line 370, in decode
web_1 | obj, end = self.raw_decode(s)
web_1 | File "/usr/local/lib/python3.8/site-packages/simplejson/decoder.py", line 400, in raw_decode
web_1 | return self.scan_once(s, idx=_w(s, idx).end())
web_1 | simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Ниже приведен мой код
token = serializer_topup.validated_data['token']
transaction = self.client.topup(token=token, amount=to_pay, account_id="user_"+str(request.user.id), currency="RUB")
Добрый день.
Хотелось бы показывать плательщику человеческую ошибку, как описано на странице https://cloudpayments.ru/Docs/Directory
Будет круто, если добавите.
Спасибо.
Добрый день.
Хотелось бы увидеть поддержку API кассы (описано тут https://cloudpayments.ru/docs/api/kassa)
Если планируется то можно ли узнать в какие сроки?
(Если в течении недели, то еще есть есть смысл подождать. Если дольше, то видимо тогда проще выпилить библиотеку и обращаться напрямую к API.)
Согласно документации можно добавить передачу параметра TransactionId
в объекте Receipt.
В идеале добавить реализацию обработки **kwargs
в функции create_receipt
при передаче доп. параметров чтобы не ограничиваться основными обязательными параметрами передачи чека.
В функции finish_3d_secure_authentication выбрасывается исключение CloudPaymentsError
def finish_3d_secure_authentication(self, transaction_id, pa_res):
...
raise CloudPaymentsError(response)
Однако это бессмысленно т.к. в response поле "Message" содержит null.
Логичнее тут выбрасывать PaymentError
Прошу добавить смену локализации.
Привет
мы используем вашу библиотеку и поймали проблему - при пересоздании подписки (создаем новую и копируем в StartDate дату следующего платежа) эта дата двигается на 3 часа назад.
Я покопался и обнаружил что вот здесь дата форматируется без указания таймзоны.
Возможно проблема происходит из-за интерпретации сервером cloudpayments даты без таймзоны как даты в локальной таймзоне их сервера. На это указывает и смещение - 3 часа это как раз разница между UTC и Москвой.
У себя в примере они указывают дату как 2014-08-06T16:46:29.5377246Z
, где Z указывает на время по UTC.
Я сейчас проверяю эту теорию, но вероятно это так.
Предлагаю добавить Z к формату даты, могу сделать ПР.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.