Обертка над VK Coin API


Keywords
api, coin, vk, vk-api, vkapi, vkcoin
License
MIT
Install
pip install vkcoinapi==1.2.7

Documentation

vkcoinapi

Обертка над VK Coin API на Python

Установка

pip3 install vkcoinapi

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

Перед началом необходимо создать экземпляр класса VKCoin. Он принимает 2 аргумента:

Аргумент Тип Обязательный Описание
key

str

+

Ключ доступа к VK Coin, полученный здесь: vk.com/coin#create_merchant
merchantId

int

+

ID пользователя ВКонтакте, для которого получен ключ
token

str

Токен, полученный из URL адреса здесь. Необходим только при использовании longPoll() и getTop().
from vkcoinapi import *
coin = VKCoin(key = 'ваш_ключ', merchantId = ваш_id)

После этого становятся доступны следующие методы, которые возвращают JSON словарь:

getPaymentURL()

Возвращает ссылку на перевод вида https://vk.com/coin#xВАШID_СУММА_PAYLOAD.
Если необходимо, чтобы пользователь мог изменить сумму перевода, то в конец добавляется _1.

Аргумент Тип Обязательный Описание
amount

int

+

Сумма перевода.
payload

int

Любое число от -2000000000 до 2000000000, вернется вам в списке транзаций. Если не указано, отправляется случайное число.
free

bool

Может ли пользователь изменять сумму перевода. По умолчанию False.
coin.getPaymentURL(1000)
>>> 'https://vk.com/coin#xВАШID_1000_PAYLOAD'

Обратите внимание, что сумма указывается в тысячных долях.
В примере выше 1000 = 1 VK Coin. Т.е., для того, чтобы отправить 0,001 VK Coin, нужно указать 1.

getTransactions()

Возвращает список транзакций.

Аргумент Тип Обязательный Описание
type

int

1 — вернутся 1000 последних транзакций со ссылки на оплату
2 — вернутся 100 последних транзакций
По умолчанию 2.
coin.getTransactions()
>>> {'response': [
                  {'id': 1370037,
                   'from_id': 1,
                   'to_id': 2,
                   'amount': '100',
                   'type': 3,
                   'payload': 1,
                   'external_id': 0,
                   'created_at': 1555369262},
                  {'id': 1369973,
                   'from_id': 2,
                   'to_id': 1,
                   'amount': '100',
                   'type': 3,
                   'payload': 1,
                   'external_id': 0,
                   'created_at': 1555369272}
                  ]}

sendPayment()

Отправляет перевод.

Аргумент Тип Обязательный Описание
to

int

+

ID пользователя, кому отправляем перевод.
amount

int

+

Сумма перевода.
coin.sendPayment(1, 100)
>>> {'response': {'id': 1400290, 'amount': 100, 'current': 578637358}}

getBalance()

Позволяет получить баланс пользователей.

Аргумент Тип Обязательный Описание
user_ids

list

ID пользователей, для которых нужно узнать баланс.
По умолчанию — наш ID.
coin.getBalance()
>>> {'response': {'165275777': 578637358}}

coin.getBalance([1, 1324639])
>>> {'response': {'1': 92697214157, '1324639': 6935662916530}}

getTop()

Возвращает список текущего топа.

Аргумент Тип Обязательный Описание
type

str

Тип возвращаемого топа (group или user).
По умолчанию — group.
coin.getTop()
>>> [
     {'id': 67580761,
      'score': 473553513081870,
      'name': 'КБ',
      'screen_name': 'countryballs_re',
      'is_closed': 0,
      'type': 'page',
      'photo_200': 'https://sun9-18.userapi.com/c850420/v850420990/ff275/6svrAL6jtME.jpg?ava=1',
      'link': 'https://vk.com/club67580761'},
     {'id': 98699940,
     'score': 473550301524363,
     'name': "Bratishkin's Stream",
     'screen_name': 'bratishkinoff',
     'is_closed': 0,
     'type': 'page',
     'photo_200': 'https://sun9-9.userapi.com/c851416/v851416466/fcfa5/LZGnlIJVEBw.jpg?ava=1',
     'link': 'https://vk.com/club98699940'}
    ]

longPoll()

Блокирующий «longpoll». Не принимает аргументов.
При появлении новой входящей транзакции возвращает следующий словарь:

Ключ Тип Описание
from

str

ID пользователя, от которого пришел платеж.
amount

int

Сумма платежа.
payload

int

Payload для нахождения платежа в истории.
coin.longPoll()
>>> {'response': {'from': 165275777, 'amount': 1, 'payload': 1624215}}

setShopName()

Изменяет название магазина.

Аргумент Тип Обязательный Описание
name

str

+

Новое название магазина.
coin.setShopName('My Shop')
>>> {'response': '1'}

setCallback()

Изменяет адрес для callback запросов.

Аргумент Тип Обязательный Описание
callback

str

Адрес для callback запросов.
Если не передан, callback выключается (передается none).
coin.setCallback('https://example.com/callback')
>>> {'response': 'ON'}

coin.setCallback()
>>> {'response': 'OFF'}

Ссылки