Package: vkcoin
vkcoinБилиотека для платёжного API VK Coin. Оффициальная документация:https://vk.com/@hs-marchant-apiПосле обновления2.0множество функций и классов изменило свой прежний вид.Миграция.Старая документация.УстановкаСкачайте и установитеPythonверсии 3.6 и выше, если он не установленВведите следующую команду вкомандную строку:pipinstallvkcoinЕсли вы любите приключения, можно установить библиотеку с GitHub. В таком случае она может работать нестабильно:pipinstallgit+git://github.com/crinny/vkcoin.gitВы прекрасны!Начало работыДля начала разработки, необходимо создать исполняемый файл с расширением .py, например test.py.Вы не можете назвать файл vkcoin.py, так как это приведёт к конфликту. Теперь файл нужно открыть и импортировать библиотеку:importvkcoinmerchant=vkcoin.VKCoin(user_id=123456789,key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')ПараметрТипОписаниеuser_idIntegerID аккаунта ВКонтактеkeyStringКлюч для взаимодействия с APItokenStringТокен ВКонтакте для WebSocketМетодыНеобязательные параметры при вызове функций выделеныкурсивом.get_payment_url- получет ссылку на оплату VK Coinmerchant.get_payment_url(amount=10,payload=78922,free_amount=False)>>>https://vk.com/coin#m1625cf67_1_-298c0d20ПараметрТипОписаниеamountFloatКоличество VK Coin для переводаpayloadIntegerЧисло от -2000000000 до 2000000000, вернется в списке транзацийfree_amountBooleanTrue, чтобы разрешить пользователю изменять сумму перевода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}]ПараметрТипОписаниеtxListМассив ID переводов для получения или [1] - 1000 последних транзакций со ссылок на оплату, [2] — 100 последних транзакций на текущий аккаунтlast_txIntegerЕсли указать номер последней транзакции, то будут возвращены только транзакции после указаннойsend_payment- делает перевод другому пользователюresult=merchant.send_payment(to_id,amount)>>>{'id':1000000,'amount':1,'current':1430}ПараметрТипОписаниеamountFloatСумма переводаto_idIntegerID аккаунта, на который будет совершён переводget_balance- возвращает баланс аккаунтаmerchant.get_balance(123456789,987654321)>>>{'371576679':1430}ТипОписаниеIntegerID аккаунтов, баланс которых нужно получить (если не указывать ничего, то возвратится баланс текущего аккаунта)set_shop_name- устанавливает название магазинаОбратите внимание что название может быть закешированно на срок до 5 часов. Сбросить кеш никак нельзя.merchant.set_shop_name(name='Best Shop Ever')>>>1ПараметрТипОписаниеnameStringНовое название магазинаrun_longpoll- запускает LongPollmerchant.run_longpoll(tx=[1],interval=0.05)ПараметрТипОписаниеtxListМассив ID переводов для получения или [1] - 1000 последних транзакций со ссылок на оплату, [2] — 100 последних транзакций на текущий аккаунтintervalFloatЧастота опроса серверов на новые платежи в секундахCallbackОффициальный Callback. Поднимает сервер и принимает входящие запросы от VK Coin.set_callback_endpoint- устанавливает Endpointmerchant.set_callback_endpoint('0.0.0.0',80)ПараметрТипОписаниеaddressStringАдрес, на который будет поступать информацияportIntegerПортremove_callback_endpoint- удаляет Endpointmerchant.remove_callback_endpoint()run_callback- запускает сервер для Callbackmerchant.run_callback()Пример использованияWebSocketVKCoinдля взаимодействия между клиентом и сервером использует протокол 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')defyour_func(data):passПри получении обратного вызова - входящей транзакции - в зарегестрированную функцию возвращается словарь, который является абстракцией входящего перевода и содержит следующие параметры:data['to_id']# ваш IDdata['from_id']# ID отправителя (инициатор входящей транзакции)data['amount']# количество полученных коиновdata['payload']# PayloadПример использованияLongpollПостоянно опрашивает сервер на наличие новых платежей и при поступлении таковых, оповещает об этом через декоратор.После инициализации объекта необходимо зарегистрировать функцию, которая будет обрабатывать входящие платежи. Для этого используется декораторpayment_handler@merchant.payment_handler(handler_type='longpoll')defyour_func(data):passПри получении обратного вызова - входящей транзакции - в зарегестрированную функцию возвращается словарь, который является абстракцией входящего перевода и содержит следующие параметры:data['to_id']# ваш IDdata['id']# ID платежаdata['balance']# баланс вашего аккаунтаdata['from_id']# ID отправителя (инициатор входящей транзакции)data['amount']# количество полученных коиновdata['created_at']# Unix Timestamp, когда был совершён переводПример использованияПримерыПримеры расположены в отдельнойпапкерепозитория.Где меня можно найтиЯ готов ответить на ваши вопросы, связанные с библиотекой.ВКонтакте CrinnyorВКонтакте SpootiTelegram CrinnyorTelegram SpootiЧат ВКонтакте по VK Coin API