Metadata-Version: 2.1
Name: aiopayAPI
Version: 0.1.3.2
Summary: Асинхронный API для работы с платежной системой Payok.io.
Home-page: https://github.com/xllebbSQ/aiopay
Author: xllebbSQ
Author-email: 090504opo@gmail.com
Keywords: python PayOk payok api API asyncio payok api
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown


<p align="center">
  <img src="https://ic.wampi.ru/2023/10/04/LOGO.png" alt="Image"/>
</p>


<h1 align='center'><b> aiopayAPI </b>
<h2 align="center"> Асинхронное API для работы с сайтом Payok.io</h2></h1>


![Static Badge](https://img.shields.io/badge/author-xllebbSQ-blue) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/aiopayAPI) ![PyPI - Downloads](https://img.shields.io/pypi/dm/aiopayAPI) 
![PyPI - License](https://img.shields.io/pypi/l/aiopayAPI)



 

## Возможности
--------
- [Получение баланса](https://pypi.org/project/aiopayAPI/#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0:~:text=(data)-,%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0,-%D0%97%D0%B0%D0%BF%D1%80%D0%B0%D1%88%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5)
- [Получение транзакций](https://pypi.org/project/aiopayAPI/#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0:~:text=examples/get_balance.py-,%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B9,-%D0%97%D0%B0%D0%BF%D1%80%D0%B0%D1%88%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5)
- [Создание выплат (переводов)](https://pypi.org/project/aiopayAPI/#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0:~:text=0%0A%20%20%7D%0A%7D-,%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B2%D1%8B%D0%BF%D0%BB%D0%B0%D1%82%20(%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4%D0%BE%D0%B2),-%D0%97%D0%B0%D0%BF%D1%80%D0%B0%D1%88%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B)
  - [Методы выплат](https://pypi.org/project/aiopayAPI/#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0:~:text=examples/create_payout.py-,%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B%20%D0%BE%D0%BF%D0%BB%D0%B0%D1%82%D1%8B,-(Method))
- [Получение выплат](https://pypi.org/project/aiopayAPI/#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0:~:text=examples/get_transaction.py-,%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B2%D1%8B%D0%BF%D0%BB%D0%B0%D1%82,-%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B%3A)
- [Создание ссылки для оплаты](https://pypi.org/project/aiopayAPI/#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B0:~:text=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8%20%D0%B4%D0%BB%D1%8F%20%D0%BE%D0%BF%D0%BB%D0%B0%D1%82%D1%8B)
- [Возможные ошибки](https://pypi.org/project/aiopayAPI/#:~:text=sign%3Dec5b7c446ce43d32c0afc79d31cc4686-,%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8,-%D0%9F%D0%BE%D0%BC%D0%BE%D1%89%D1%8C)

# **Что нового?**
- Изменена функция инициализации класса **`PayOk`**. Теперь вместо `dict` объекта нужно указать параметры.
- Теперь чтобы создать ссылку для оплаты, нужно использовать класс **`QuickPay`**
- Добавлен параметр `processing_error` в классе **`PayOk`**. Данный параметр отвечает за обработку ошибок, которые могут возникнуть 

# **Функции**
## Инициализация класса PayOk
```python
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:` Метод выплаты (class **`Method`**), изначально равно **Method.card**
\
`receiver:` Реквизиты получателя выплаты
\
`sbp_bank:` Банк для выплаты по СБП
\
`comission_type:` Тип расчета комиссии (class **`Comission.balance`** | **`Comission.payment`**)
\
`url:` URL для отправки Webhook при смене статуса выплаты
\
`json_file:` JSON файл в который будут записываться все ответы из запросов
\
`processing_error`: boolean значение, если True то будут обрабатываться все доступные ошибки






Пример использования:
```python
data = {
    "API_ID": 1111 # Все эти данные берем отсюда: https://payok.io/cabinet/api.php
    "API_KEY": "xxxxxxx"
}
pay = PayOk(data)
```
---

## Получение баланса
### *Запрашиваемые данные*

<img src="https://ic.wampi.ru/2023/10/04/browser_ibkMt3FSHn.png" at="browser_ibkMt3FSHn.png" border="0" />

Использование
```python

# Предварительно нужно указать класс PayOk со всеми данными
balance = await pay.get_balance()

>>> {"balance":"339.44", "ref_balance":"6063.60"}
```
Возвращается `dict` объект с данными.

Пример использования в папке [**`examples/get_balance.py`**](https://github.com/xllebbSQ/aiopayAPI)

---
## Получение транзакций
### *Запрашиваемые данные*
<img src="https://ic.wampi.ru/2023/10/04/browser_vi7nRQKhFU.png" alt="browser_vi7nRQKhFU.png" border="0" />


Пример:

```python

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`**](https://github.com/xllebbSQ/aiopayAPI)

---
## Получение выплат
### *Параметры:*

<img src="https://im.wampi.ru/2023/10/04/browser_W7DtQlhnOV.png" alt="browser_W7DtQlhnOV.png" border="0" />

Код:
```python
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
  }
}
```
---
## Создание выплат (переводов)
### *Запрашиваемые параметры*

<img src="https://i.imgur.com/FDalqyW.png"> 


Как использовать:

```python
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`**](https://github.com/xllebbSQ/aiopayAPI)

## Методы оплаты (`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

## Генерация ссылки для оплаты
<img src="https://im.wampi.ru/2023/10/04/browser_P9IK4dYjVJ.png" alt="browser_P9IK4dYjVJ.png" border="0" />

## В таблице не сказано, но одним из важных элементов является `secret` (секретный ключ) 
![здесь](https://i.imgur.com/RCGqaJ7.png)

Его нужно ОБЯЗЯТАТЕЛЬНО указать (как, см. пример: [**`examples/paylink.py`**](https://github.com/xllebbSQ/aiopayAPI)) 

Использование:
```python

link = quick.create_pay_link() 


>>> https://payok.io/pay?amount=15&currency=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`
