Враппер для платёжного API VK Coin
Project description
vkcoin
Билиотека для платёжного API VK Coin. Оффициальная документация: https://vk.com/@hs-marchant-api
Установка
- Скачайте и установите Python версии 3.6 и выше, если он не установлен
- Введите следующую команду в командную строку:
pip install vkcoin
Если вы любите приключения, можно установить библиотеку с GitHub. В таком случае она может работать нестабильно:
pip install git+git://github.com/crinny/vkcoin.git
- Вы прекрасны!
Начало работы
Для начала разработки, необходимо создать исполняемый файл с расширением .py, например test.py. Вы не можете назвать файл vkcoin.py, так как это приведёт к конфликту. Теперь файл нужно открыть и импортировать библиотеку:
import vkcoin
Библиотека содержит в себе 2 класса:
- VKCoinApi - для работы с VKCoin API
- VKCoinWS - для получения CallBack сообщений о зачислении коинов
VKCoinApi
merchant = vkcoin.VKCoinApi(user_id=123456789, key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
Параметр | Тип | Описание |
---|---|---|
user_id | Integer | ID аккаунта ВКонтакте |
key | String | Ключ для взаимодействия с API |
Методы
Необязательные параметры при вызове функций выделены курсивом.
get_payment_url
- получет ссылку на оплату VK Coin
result = merchant.get_payment_url(amount=10, payload=78922, free_amount=False)
print(result)
Параметр | Тип | Описание |
---|---|---|
amount | Float | Количество VK Coin для перевода |
payload | Integer | Число от -2000000000 до 2000000000, вернется в списке транзаций |
free_amount | Boolean | True, чтобы разрешить пользователю изменять сумму перевода |
get_transactions
- получает список ваших транзакций
result = merchant.get_transactions(tx=[2])
print(result)
Параметр | Тип | Описание |
---|---|---|
tx | List | Массив ID переводов для получения или [1] - 1000 последних транзакций со ссылок на оплату, [2] — 100 последних транзакций на текущий аккаунт |
last_tx | Integer | Если указать номер последней транзакции, то будут возвращены только транзакции после указанной |
send_coins
- делает перевод другому пользователю
result = merchant.send_coins(to_id, amount)
print(result)
Параметр | Тип | Описание |
---|---|---|
amount | Float | Сумма перевода |
to_id | Integer | ID аккаунта, на который будет совершён перевод |
get_user_balance
- возвращает баланс аккаунта
result = merchant.get_user_balance(123456789, 987654321)
print(result)
Тип | Описание |
---|---|
Integer | ID аккаунтов, баланс которых нужно получить |
get_my_balance
- возвращает ваш баланс
result = merchant.get_my_balance()
print(result)
set_shop_name
- устанавливает название магазина
Обратите внимание что название может быть закешированно на срок до 5 часов. Сбросить кеш никак нельзя.
merchant.set_shop_name(name='Best Shop Ever')
Параметр | Тип | Описание |
---|---|---|
name | String | Новое название магазина |
longpoll_start
- запускает LongPoll
merchant.longpoll_start(tx=[1], interval=0.05)
Параметр | Тип | Описание |
---|---|---|
tx | List | Массив ID переводов для получения или [1] - 1000 последних транзакций со ссылок на оплату, [2] — 100 последних транзакций на текущий аккаунт |
interval | Integer | Частота опроса серверов на новые платежи в секундах |
Callback
Оффициальный Callback. Поднимает сервер и принимает входящие запросы от VK Coin. Все приведённые ниже функции находятся в классе VKCoinApi
set_callback_endpoint
- устанавливает Endpoint
merchant.set_callback_endpoint()
Параметр | Тип | Описание |
---|---|---|
address | String | Адрес, на который будет поступать информация |
port | Integer | Порт |
remove_callback_endpoint
- удаляет Endpoint
merchant.remove_callback_endpoint()
callback_start
- запускает сервер для Callback
merchant.callback_start()
VKCoinWS (CallBack)
Рекомендуется использовать новый Сallback
VKCoin для взаимодействия между клиентом и сервером использует протокол WebSocket. Данный класс реализован для получения обратных вызовов при входящих транзакциях на аккаунт, доступ к которому может быть предоставлен одним из следующих параметров при создании объекта класса:
callback = vkcoin.VKCoinWS(token, iframe_link)
Параметр | Тип | Описание |
---|---|---|
token | String | acces_token вашего аккаунта * |
iframe_link | String | ссылка на iframe сервиса 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 на ваш логин и пароль. После перехода по этой ссылке вам будет выдан расширенный токен.
** эту ссылку можно получить в коде страницы vk.com/coin
- Перейдите на vk.com/coin
- Используйте сочетание клавиш
Ctrl + U
для просмотра исходного кода страницы - Откройте поиск, введите
sign=
- Скопируйте найденную ссылку, содержащую параметр
sign
После инициализации объекта необходимо зарегистрировать функцию, которая будет обрабатывать входящие платежи. Для этого используется декоратор handler
@callback.handler
def your_func(data):
do_something...
При получении обратного вызова - входящей транзакции - в зарегестрированную функцию возвращается объект класса Entity
, который является абстракцией входящего перевода и содержит следующие параметры:
data.user_id # ваш ID
data.balance # баланс вашего аккаунта
data.user_from # ID отправителя (инициатор входящей транзакции)
data.amount # количество полученных коинов
Longpoll
Постоянно опрашивает сервер на наличие новых платежей и при поступлении таковых, оповещает об этом через декоратор. Все приведённые ниже функции находятся в классе VKCoinApi
После инициализации объекта необходимо зарегистрировать функцию, которая будет обрабатывать входящие платежи. Для этого используется декоратор lp_handler
@callback.lp_handler
def your_func(data):
do_something...
При получении обратного вызова - входящей транзакции - в зарегестрированную функцию возвращается объект класса Entity
, который является абстракцией входящего перевода и содержит следующие параметры:
data.id # ID платежа
data.to_id # Ваш ID
data.balance # баланс вашего аккаунта
data.from_id # ID отправителя (инициатор входящей транзакции)
data.amount # количество полученных коинов
data.created_at # Unix Timestamp, когда был совершён перевод
Примеры
Примеры расположены в отдельной папке репозитория.
Где меня можно найти
Я готов ответить на ваши вопросы, связанные с библиотекой.
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.