Skip to main content

Враппер для платёжного API VK Coin

Project description

vkcoin

Билиотека для платёжного API VK Coin. Оффициальная документация: https://vk.com/@hs-marchant-api

После обновления 2.0 множество функций и классов изменило свой прежний вид. Миграция. Старая документация.

PyPI version Month downloads Чат ВКонтакте

Установка

  • Скачайте и установите Python версии 3.6 и выше, если он не установлен
  • Введите следующую команду в командную строку:
pip install vkcoin

Если вы любите приключения, можно установить библиотеку с GitHub. В таком случае она может работать нестабильно:

pip install git+git://github.com/crinny/vkcoin.git
  • Вы прекрасны!

Начало работы

Для начала разработки, необходимо создать исполняемый файл с расширением .py, например test.py. Вы не можете назвать файл vkcoin.py, так как это приведёт к конфликту. Теперь файл нужно открыть и импортировать библиотеку:

import vkcoin

merchant = vkcoin.VKCoin(user_id=123456789, key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
Параметр Тип Описание
user_id Integer ID аккаунта ВКонтакте
key String Ключ для взаимодействия с API
token String Токен ВКонтакте для WebSocket

Методы

Необязательные параметры при вызове функций выделены курсивом.

get_payment_url - получет ссылку на оплату VK Coin

merchant.get_payment_url(amount=10, payload=78922, free_amount=False)
>>> https://vk.com/coin#m1625cf67_1_-298c0d20
Параметр Тип Описание
amount Float Количество VK Coin для перевода
payload Integer Число от -2000000000 до 2000000000, вернется в списке транзаций
free_amount Boolean True, чтобы разрешить пользователю изменять сумму перевода

get_transactions - получает список ваших транзакций

merchant.get_transactions(tx=[2])
>>> [{'id': 1000000, 'from_id': 371576679, 'to_id': 1, 'amount': '1', 'type': 2, 'payload': 0, 'external_id': 0, 'created_at': 1557241950}]
Параметр Тип Описание
tx List Массив ID переводов для получения или [1] - 1000 последних транзакций со ссылок на оплату, [2] — 100 последних транзакций на текущий аккаунт
last_tx Integer Если указать номер последней транзакции, то будут возвращены только транзакции после указанной

send_payment - делает перевод другому пользователю

result = merchant.send_payment(to_id, amount)
>>> {'id': 1000000, 'amount': 1, 'current': 1430}
Параметр Тип Описание
amount Float Сумма перевода
to_id Integer ID аккаунта, на который будет совершён перевод

get_balance - возвращает баланс аккаунта

merchant.get_balance(123456789, 987654321)
>>> {'371576679': 1430}
Тип Описание
Integer ID аккаунтов, баланс которых нужно получить (если не указывать ничего, то возвратится баланс текущего аккаунта)

set_shop_name - устанавливает название магазина

Обратите внимание что название может быть закешированно на срок до 5 часов. Сбросить кеш никак нельзя.

merchant.set_shop_name(name='Best Shop Ever')
>>> 1
Параметр Тип Описание
name String Новое название магазина

run_longpoll - запускает LongPoll

merchant.run_longpoll(tx=[1], interval=0.05)
Параметр Тип Описание
tx List Массив ID переводов для получения или [1] - 1000 последних транзакций со ссылок на оплату, [2] — 100 последних транзакций на текущий аккаунт
interval Float Частота опроса серверов на новые платежи в секундах

Callback

Оффициальный Callback. Поднимает сервер и принимает входящие запросы от VK Coin.

set_callback_endpoint - устанавливает Endpoint

merchant.set_callback_endpoint('0.0.0.0', 80)
Параметр Тип Описание
address String Адрес, на который будет поступать информация
port Integer Порт

remove_callback_endpoint - удаляет Endpoint

merchant.remove_callback_endpoint()

run_callback - запускает сервер для Callback

merchant.run_callback()

Пример использования

WebSocket

VKCoin для взаимодействия между клиентом и сервером использует протокол WebSocket. Данный класс реализован для получения обратных вызовов при входящих транзакциях на аккаунт, доступ к которому должен быть предоставлен токеном в классе VKCoin:

Для получения токена - перейдите по ссылке, нажмите "Разрешить" и скопируйте часть адресной строки после access_token= и до &expires_in (85 символов)

Если при использовании способа выше вы получаете ошибку, перейдите по ссылке: https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=LOGIN&password=PASSWORD, перед этим заменив login и password на ваш логин и пароль. После перехода по этой ссылке вам будет выдан расширенный токен.

После инициализации объекта необходимо зарегистрировать функцию, которая будет обрабатывать входящие платежи. Для этого используется декоратор payment_handler

@merchant.payment_handler(handler_type='websocket')
def your_func(data):
	pass

При получении обратного вызова - входящей транзакции - в зарегестрированную функцию возвращается словарь, который является абстракцией входящего перевода и содержит следующие параметры:

data['to_id']  # ваш ID
data['from_id']  # ID отправителя (инициатор входящей транзакции)
data['amount']  # количество полученных коинов
data['payload']  # Payload

Пример использования

Longpoll

Постоянно опрашивает сервер на наличие новых платежей и при поступлении таковых, оповещает об этом через декоратор.

После инициализации объекта необходимо зарегистрировать функцию, которая будет обрабатывать входящие платежи. Для этого используется декоратор payment_handler

@merchant.payment_handler(handler_type='longpoll')
def your_func(data):
	pass

При получении обратного вызова - входящей транзакции - в зарегестрированную функцию возвращается словарь, который является абстракцией входящего перевода и содержит следующие параметры:

data['to_id']  # ваш ID
data['id']  # ID платежа
data['balance']  # баланс вашего аккаунта 
data['from_id']  # ID отправителя (инициатор входящей транзакции)
data['amount']  # количество полученных коинов
data['created_at']  # Unix Timestamp, когда был совершён перевод

Пример использования

Примеры

Примеры расположены в отдельной папке репозитория.

Где меня можно найти

Я готов ответить на ваши вопросы, связанные с библиотекой.

Project details


Download files

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

Files for vkcoin, version 2.0.4
Filename, size File type Python version Upload date Hashes
Filename, size vkcoin-2.0.4.tar.gz (7.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page