Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 17, 2022 20:30:02

SwanAvs
Зарегистрирован: 2022-01-07
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Платеж на сайте Django

Я пытаюсь подключить систему оплаты для приема платежей. Но моя проблема и задача состоит в том, чтобы сделать проверку - провел ли пользователь оплату для дальнейших с ним действий.

Система оплаты - Fondy. Их github

Вот код, который успешно проводит оплату:

 api = Api(merchant_id=123, secret_key='key')
checkout = Checkout(api=api)
data = {
    "currency": "RUB",
    "amount": 100,
    "order_desc": "Описание платежа",
    "order_id": str(time.time())
}
url = checkout.url(data).get('checkout_url')

Однако, мне ведь нужно сделать проверку для оплаты.
Идея такова:
если статус заказа = оплачено:
выполнить нужные действия с пользователем.

Как мне получить статус заказа, и будет ли такой принцип верно работать? Если будет, то как это прописать? Помогите ине пожалуйста

И еще, могу ли я писать один вопрос на этом форуме несколько раз, но в разные категории?

Отредактировано SwanAvs (Янв. 17, 2022 20:31:03)

Офлайн

#2 Фев. 2, 2022 13:13:37

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Платеж на сайте Django

обычно это делается через callback ф–цию, адрес которой задается в админке платежки
https://docs.fondy.eu/ru/docs/page/28/ видимо, код в оф. репе - гавно

Офлайн

#3 Июль 13, 2023 06:38:12

efrenwynn
Зарегистрирован: 2023-07-13
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Платеж на сайте Django

Для того, чтобы проверить статус заказа в системе Fondy, вам необходимо использовать API методы, которые позволяют получить информацию о заказе. Для этого можно использовать метод order_status() из библиотеки fondy.

Пример кода для получения статуса заказа:

scheme
api = Api(merchant_id=123, secret_key='key')
response = api.order_status(order_id='your_order_id')
status = response['response']['order_status']
В этом коде вы создаете объект api с помощью своего merchant_id и secret_key. Затем вызываете метод order_status() и передаете в него идентификатор вашего заказа в параметре order_id. В ответе на запрос вы получите словарь, в котором будет содержаться информация о статусе заказа (order_status).
После получения статуса заказа, вы можете проверить его значение и выполнить нужные действия с пользователем, если статус заказа равен “оплачен”. Например:
bloxd io
if status == 'approved':
# выполнить нужные действия с пользователем
else:
# обработать другие статусы заказа
Обратите внимание, что в зависимости от того, какую информацию вы запрашиваете, вам может потребоваться дополнительно указать другие параметры при вызове метода order_status(). Например, если вы хотите получить подробную информацию о заказе, вам может потребоваться указать параметр params={'general': True, ‘transactions’: True}. Дополнительную информацию можно найти в документации к API Fondy.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version