Асинхронный API для работы с платежной системой Payok.io.
Reason this release was yanked:
Ошибка с инициализацией класса
Project description
aiopayAPI
Асинхронное API для работы с сайтом Payok.io
Возможности
- Получение баланса
- Получение транзакций
- Создание выплат (переводов)
- Получение выплат
- Создание ссылки для оплаты
- Возможные ошибки
Что нового?
- Изменена функция инициализации класса
PayOk
. Теперь вместоdict
объекта нужно указать параметры. - Теперь чтобы создать ссылку для оплаты, нужно использовать класс
QuickPay
- Добавлен параметр
processing_error
в классеPayOk
. Данный параметр отвечает за обработку ошибок, которые могут возникнуть
Функции
Инициализация класса PayOk
class PayOk:
"""
Класс для работы с сайтом PayOk
"""
def __init__(self,
API_ID: int,
API_KEY: str,
shop: int,
payment: str | int | None = None,
payout_id: int | None = None,
offset: int = 0,
amount: float | None = None,
method: Method | None = None,
reciever: str | None = None,
sbp_bank: str | None = None,
commision_type: str = Commission.balance,
url: str | None = None,
json_file: str | None = None,
processing_error: bool = False)
API_ID:
ID ключа с сайта https://payok.io/cabinet/api.php
API_KEY:
API ключ
shop:
ID магазина
payment:
ID платежа в вашей системе
payout_id:
ID выплаты в системе Payok
offset:
Отступ, пропуск указанного количества строк
amount:
Сумма выплаты
method:
Метод выплаты (classMethod
), изначально равно Method.card
receiver:
Реквизиты получателя выплаты
sbp_bank:
Банк для выплаты по СБП
comission_type:
Тип расчета комиссии (classComission.balance
|Comission.payment
)
url:
URL для отправки Webhook при смене статуса выплаты
json_file:
JSON файл в который будут записываться все ответы из запросов
processing_error
: boolean значение, если True то будут обрабатываться все доступные ошибки
Пример использования:
data = {
"API_ID": 1111 # Все эти данные берем отсюда: https://payok.io/cabinet/api.php
"API_KEY": "xxxxxxx"
}
pay = PayOk(data)
Получение баланса
Запрашиваемые данные
Использование
# Предварительно нужно указать класс PayOk со всеми данными
balance = await pay.get_balance()
>>> {"balance":"339.44", "ref_balance":"6063.60"}
Возвращается dict
объект с данными.
Пример использования в папке examples/get_balance.py
Получение транзакций
Запрашиваемые данные
Пример:
trans = await pay.get_transaction()
>>> {"status":"success"
"1": {
"transaction":10000,
"email":"example@ex.com",
"amount":1065,
"currency":USD,
"currency_amount":14.26,
"comission_percent": 5 ,
"comission_fixed":"15",
"amount_profit":1000,
"method":Visa/Mastercard,
"payment_id":10500,
"description":Описание транзакции,
"date":26.09.2021 20:40:07,
"pay_date":26.09.2021 21:00:00
"transaction_status":0
"custom_fields":null
"webhook_status":1
"webhook_amount":1
}
}
Пример использования в папке examples/get_transaction.py
Получение выплат
Параметры:
Код:
payout = await pay.get_payout()
>>> {
"status":"success"
"1": {
"payout":10000,
"method":"card",
"reciever":"5000400030002000",
"type":main,
"amount":1000,
"comission_percent": 2 ,
"comission_fixed":"50",
"amount_profit":930,
"date_create":26.09.2021 20:40:07,
"date_pay":26.09.2021 20:55:01,
"status":0
}
}
Создание выплат (переводов)
Запрашиваемые параметры
Как использовать:
payout = pay.create_payout()
>>> {
"status":"success",
"remain_balance":"229.44",
"data": {
"payout_id":100,
"method":"card",
"reciever":"5000400030002000",
"amount":1000,
"comission_percent": 2 ,
"comission_fixed":"50",
"amount_profit":930,
"date":26.09.2021 20:40:07,
"payout_status_code":0,
"payout_status_text":"WAIT"
}
}
Пример использования в папкеexamples/create_payout.py
Методы оплаты (Method
)
Используйте эти сокращения в параметре method
в создании выплат
Методы оплаты | Короткие названия | Использование в aiopayAPI |
---|---|---|
Банковская карта | card | Method.card |
Банковская карта (Украина) | card_uah | Method.card_uah |
Банковская карта (Зарубежная) | card_foreign | Method.card_foreign |
Тинькофф | tinkoff | Method.tinkoff |
СБП | sbp | Method.sbp |
Qiwi | qiwi | Method.qiwi |
Yoomoney | yoomoney | Method.yoomoney |
Payeer | payeer | Method.payeer |
Advcash | advcash | Method.advcash |
Perfect Money | perfect_money | Method.perfect_money |
Webmoney | webmoney | Method.webmoney |
Bitcoin | bitcoin | Method.bitcoin |
Litecoin | litecoin | Method.litecoin |
Tether USDT | tether | Method.tether |
Tron | tron | Method.tron |
Dogecoin | dogecoin | Method.dogecoin |
Ethereum | ethereum | Method.ethereum |
Ripple | ripple | Method.ripple |
Генерация ссылки для оплаты
В таблице не сказано, но одним из важных элементов является secret
(секретный ключ)
Его нужно ОБЯЗЯТАТЕЛЬНО указать (как, см. пример: examples/paylink.py
)
Использование:
link = quick.create_pay_link()
>>> https://payok.io/pay?amount=15¤cy=RUB&payment=123456789&desc=test&shop=6335&method=cd&sign=ec5b7c446ce43d32c0afc79d31cc4686
Возможные ошибки
Код | Описание |
---|---|
1 | Не указан идентификатор API; Параметр API_ID |
2 | Не указан API-ключ; Параметр API_KEY |
3 | Не удалось идентифицировать API по этому ID |
4 | Неверный ключ API; Параметр API_KEY |
5 | IP-Адрес 'Значение' не добавлен в список разрешенных IP |
6 | У этого ключа API нет прав на выполнение этой операции. |
7 | Выплат не найдено |
8 | Не указан номер магазина; Параметр shop |
9 | Магазин не найден; Параметр shop |
10 | Транзакций не найдено |
11 | Неправильное значение суммы. Укажите сумму в числовом, либо в вещественном типе; Параметр amount |
12 | Неверное значение типа комиссии, он может только 2 значения: balance или payment; Параметр comission |
13 | Неверное значение метода, узнайте все доступные методы для выплаты в документации; Параметр method |
14 | Указан неверный URL, введите корректный URL или оставьте значение пустым; Параметр webhook_url |
15 | Возможность делать выплаты приостановлена для вашего аккаунта. Обратитесь в чат |
16 | Вам еще не одобрены моментальные выплаты. Обратитесь в чат за одобрением. Массовые выплаты не будут работать, если эта опция отключена. |
17 | Необходимо указать инициалы в личном кабинете для осуществления выводов на банковскую карту. |
18 | Отрицательное значение суммы выплаты. |
19 | Минимальная сумма к получению для способа 'Способ' - 'Количество' Рублей. (Сумма ниже минимально возможной для выплаты этим способом) |
20 | Недостаточно средств |
21 | В данный момент этот способ вывода недоступен, воспользуйтесь другим. |
23 | Статус QIWI-кошелька получателя не позволяет перевести ему деньги. |
24 | Неверный формат данных. |
24 | Неверно указан номер платежа (Параметр payment ) |
25 | Сработал лимит запросов. |
Все данные ошибки могут быть обработаны с помощью параметра processing_error
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.