Skip to main content

Асинхронный API для работы с платежной системой Payok.io.

Project description

Image

aiopayAPI

Асинхронное API для работы с сайтом Payok.io

Static Badge PyPI - Python Version PyPI - Downloads PyPI - License

Возможности


Что нового?

  • Изменена функция инициализации класса 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: Метод выплаты (class Method), изначально равно Method.card
receiver: Реквизиты получателя выплаты
sbp_bank: Банк для выплаты по СБП
comission_type: Тип расчета комиссии (class Comission.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


Получение транзакций

Запрашиваемые данные

browser_vi7nRQKhFU.png

Пример:

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


Получение выплат

Параметры:

browser_W7DtQlhnOV.png

Код:

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

Генерация ссылки для оплаты

browser_P9IK4dYjVJ.png

В таблице не сказано, но одним из важных элементов является secret (секретный ключ)

здесь

Его нужно ОБЯЗЯТАТЕЛЬНО указать (как, см. пример: examples/paylink.py)

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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiopayAPI-0.1.3.2.tar.gz (16.6 kB view details)

Uploaded Source

File details

Details for the file aiopayAPI-0.1.3.2.tar.gz.

File metadata

  • Download URL: aiopayAPI-0.1.3.2.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for aiopayAPI-0.1.3.2.tar.gz
Algorithm Hash digest
SHA256 8ab21470b92800c8cba0f4f567a2484768eafe958c9c68053a14933a1e6001ba
MD5 de9c813c9c866f22fb8aadd4b12ba974
BLAKE2b-256 362685339c2fa3e9895641cbc85f05db9283fbaf08cb41b6e9cdcd9722288327

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page